CHƢƠNG 7 QUẢN Lí BỘNHỚ
7.1 Bộnhớ thực
7.1.2 Phõn bố bộnhớ liờn tục và khụng liờn tục
liờn tục
Trong cỏc mỏy tớnh đầu tiờn bộ nhớ được phõn bố liờn tục – tức là mỗi chương trỡnh phải nằm trong một vựng nhớ. Chỉ sau khi xuất hiện khỏi niệm đa chương trỡnh với phõn đoạn thay đổi (Variable Partition Multi Programming) thỡ việc phõn bố bộ nhớ khụng liờn tục mới chứng tỏ sự hiệu quả của mỡnh.
Trong phõn bố bộ nhớ khụng liờn tục, chương trỡnh được chia làm nhiều phõn đoạn (khối hay phõn đoạn), và chỳng cú thể nằm tại cỏc vựng nhớ khỏc nhau, khụng nhất thiết phải liền nhau. Về phớa hệ điều hành, việc đảm bảo phõn bố bộ nhớ khụng liờn tục là rất phức tạp, nhưng nú đem lại nhiều ưu thế: nếu bộ nhớ cú nhiều vựng nhớ trống thay vỡ một vựng lớn thỡ hệ điều hành vẫn cú thể nạp và thực hiện chương trỡnh mà trong trường hợp ngược lại sẽ phải chờ.
Phõn bố bộ nhớ liờn tục đối với một user
Trong cỏc mỏy đầu tiờn tại mỗi thời điểm chỉ cú một user (một chương trỡnh ứng dụng) và tất cả tài nguyờn đều thuộc quyền của anh ta. Và tiền sử dụng mỏy được tớnh theo nguyờn tắc đơn giản – bởi vỡ user toàn quyền sử dụng cỏc tài nguyờn do đú anh ta phải trả cho tất cả, khụng phụ thuộc việc chương trỡnh của anh ta cú sử dụng hết cỏc tài nguyờn hay khụng. Do đú cơ chế tớnh tiền thực hiện theo thời gian mỏy đó sử dụng. Trong cỏc hệ làm việc trong chế độ phõn chia thời gian thỡ việc tớnh toỏn sử dụng cỏc thuật toỏn phức tạp hơn nhiều.
Đầu tiờn mỗi user đều phải tự mỡnh viết toàn bộ chương trỡnh kể cả cỏc hàm thực hiện vào/ra bằng ngụn ngữ mỏy. Sau đú thỡ phần lệnh thực hiện cỏc thao tỏc vào/ra cơ bản được đưa vào IOCS – hệ thống điều khiển vào/ra, và người dựng khụng phải viết lại cỏc hàm vào/ra mà chỉ phải gọi cỏc hàm tương ứng của hệ thống. Điều đú làm đơn giản và tăng hiệu quả lập trỡnh và cú thể cho rằng đú là bắt đầu sự phỏt triển khỏi niệm về hệ điều hành hiện đại. Tổ chức bộ nhớ trong trường hợp phõn bố liờn tục đối với một người dựng được biểu diễn bằng hỡnh 4.1.1–2
Thụng thường thỡ kớch thước chương trỡnh phụ thuộc dung lượng bộ nhớ (hay khụng gian quản lý bởi hệ điều hành), nếu kớch thước chương trỡnh nhỏ hơn kớch thước bộ nhớ thỡ khụng cú vấn đề nảy sinh, cũn khi kớch thước chương trỡnh vượt quỏ
Bảo vệ bộ nhớ trong hệ thống đơn nhiệm
Chương trỡnh ứng dụng
OS
Trong hệ thống đơn nhiệm, user được cấp vựng nhớ liờn tục và núi chung là cú quyền điều khiển, truy cập toàn bộ bộ nhớ vật lý. Trong trường hợp này, bộ nhớ thường chia làm 3 vựng: vựng cho hệ điều hành, vựng cho chương trỡnh ứng dụng và vựng trống. Vấn đề bảo vệ bộ nhớ trong trường hợp này cũng tương đối đơn giản. Bảo vệ bộ nhớ trong trường hợp này là bảo vệ hệ điều hành để chương trỡnh ứng dụng khụng làm hỏng nú.
Nếu như chương trỡnh hoạt động khụng đỳng, điều đú cú thể dẫn tới phỏ vỡ hệ điều hành, nếu như hệ điều hành bị hỏng đến mức chương trỡnh khỏc ứng dụng khụng thể tiếp tục hoạt động thỡ người dựng ớt nhất cũng nhận thấy, sửa lỗi và chạy lại chương trỡnh. Trong trường hợp này thỡ sự cần thiết bảo vệ hệ điều hành khụng phải là rừ ràng.
Nếu trong trường hợp khỏc, chương trỡnh ứng dụng phỏ hỏng hệ điều hành một cỏch 'tinh vi'. Vớ dụ như nú 'vụ tỡnh' làm thay đổi một hàm vào/ra của hệ thống. Khi đú chương trỡnh cú thể vẫn hoạt động nhưng tất cả kết quả cú thể bị mất. Cũn cú thể xảy ra trường hợp tồi tệ hơn là hệ thống đưa ra kết quả sai mà việc phỏt hiện ra khụng dễ dàng.
Do đú rừ ràng cần phải bảo vệ hệ điều hành. Việc bảo vệ cú thể thực hiện bằng thanh ghi biờn nằm trong bộ xử lý.