Tải bản đầy đủ (.ppt) (53 trang)

Chương 4 quản lý bộ nhớ trong

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (304.07 KB, 53 trang )

Chương IV

Quản lý bộ nhớ


Mục đích
• Sau chương này, sinh viên có thể hiểu được
khái niệm địa chỉ logic và địa chỉ vật lý khi thực
hiện chương trình. Nắm bắt được các cấu trúc
cơ bản của chương trình và các sơ đồ quản lý
bộ nớ của hệ điều hành. Ngoài ra sinh viên còn
biết được khái niệm về bộ nhớ ảo và nguyên tắc
hoạt động của nó.


Nội dung






Các khái niệm cơ bản.
Các cấu trúc cơ bản của chương trình.
Các sơ đồ quản lý bộ nhớ.
Bộ nhớ ảo.
Câu hỏi ôn tập.


I.


Các khái niệm cơ bản

I.1. Các yêu cầu của quản lý bộ nhớ trong
• Quản lý bộ nhớ là một trong những yêu cầu cơ
bản hàng đầu của hệ điều hành.
• Bộ nhớ được tổ chức như mảng một chiều các
từ nhớ(word), mỗi từ nhớ có một địa chỉ.
• Việc trao đổi thông tin với môi trường bên ngoài
thực hiện thông qua thao tác đọc ghi dữ liệu vào
một địa chỉ cụ thể nào đó trong bộ nhớ.


I.1. Các yêu cầu của quản lý bộ nhớ trong
Hệ điều hành chịu trách nhiệm cấp phát bộ nhớ cho
các tiến trình khi có yêu cầu dựa trên các yếu tố sau:
• Sự tương thích giữa địa chỉ logic và địa chỉ vật lý:
Cách chuyển đổi địa chỉ vật lý thành địa chỉ logic.
• QUản lý bộ nhớ vật lý bao gồm: Phân bổ và thu
hồi không gian nhớ, quản lý không gian tự do.
• Chia sẻ thông tin: cho phép các tiến trình có thể
chia sẻ không gian nhớ.
• Bảo vệ bộ nhớ: Ngăn chặn sâm phạm vùng nhớ
của tiến trình khác.


I.2. Quá trình gán địa chỉ
• Để thực hiện chương trình, hệ điều hành cần napf
nó vào bộ nhớ để tạo lập các tiến trình tương ứng
và xử lý.
• Các địa chỉ trong chương trình nguồn là địa chỉ

tương đối, khi thực hiện chương trình nó phải thực
hiện chuyển đổi về các địa chỉ tuyệt đối trong bộ
nhớ.


Các khái niệm
• Địa chỉ logic-địa chỉ tương đối: Là địa chỉ do hệ
thống tạo ra và được cấp pháp cho các biến khi
dịch chương trình.
• Địa chỉ vật lý-Địa chỉ tuyệt đối: Là địa chỉ cụ thể
trong bộ nhớ và được cấp phát cho các biến khi
thực hiện chương trình.
• Bộ nhớ logic: Là tập hợp các địa chỉ loogic được
phát sinh khi dịch chương trình.
• Bộ nhớ vật lý: là tập hợp các địa chỉ vật lý tương
ứng với địa chỉ logic khi thực hiện chương trình.


Các khái niệm
• Chế độ lập trình trong bộ nhớ thực: Cần xác
định trước kích thước bộ nhớ logic không vượt
quá kích thước bộ nhớ vật lý
• Chế độ lập trình trong bộ nhớ ảo: Kích thước bộ
nhớ ảo không phụ thuộc vào kích thước bộ nhớ
vật lý.


II. Các cấu trúc cơ bản của chương
trình
• Có nhiều phương pháp tổ chức chương trình ở

bộ nhớ trong để thực hiện. Các chương trình
này khác nhau ở kiểu định vị chương trình trong
bộ nhớ và thời điểm thực hiện ánh xạ địa chỉ
tương đối thành địa chỉ tuyệt đối.
• Cấu trúc một chương trình thể hiện cách quản lý
bộ nhớ logic và hình ảnh của nó ở bộ nhớ vật lý
khi thực hiện. Các dạng cấu trúc gồm: Cấu trúc
tuyến tính, cấu trúc động, Overlay, phân đoan,
phân trang


II.1. Cấu trúc tuyến tính
• Các modul tập hợp thành một chương trình, mọi
biến ngoài đều được gán địa chỉ cụ thể. Khi thực
hiện chỉ cần định vị chương trình một lần vào bộ
nhớ


II.1. Cấu trúc tuyến tính
• Ưu điểm: Đơn giản, dễ tổ chức biên dịch và định
vị, thời gian thực hiện nhanh, có tính lưu động
cao, dễ dàng sao chép chương trình tới một hệ
thống khác.
• Nhược điểm: Lãng phí bộ nhớ tỉ lệ với kích
thước chương trình.


II.2. Cấu trúc động
• Các modul của chương trình được tập hợp một
cách riêng biệt. Khi thực hiện hệ thống chỉ cần

định vị modul gốc. Trong quá trình thực hiện,
cần tới modul nào thì hệ thống cấp pháp không
gian nhớ và nạp tiếp modul đó. Khi xong, giải
phóng modul khỏi không gian nhớ và thu hồi bộ
nhớ.


II.2. Cấu trúc động
• Ưu điểm: Tiết kiệm được bộ nhớ, kích thước bộ
nhớ không phụ thuộc vào kích thước chương
trình.
• Nhược điểm: Việc nạp và xóa các modul do
người sử dụng đảm nhiệm, do đó câu lệnh này
phải được nêu ngay trong chương trình nguồn
dẫn đến kích thước chương trình lớn, người sử
dụng phải nắm ró cấu trúc chương trình và các
công cụ điều khiển bộ nhớ của hệ điều hành.


II.3. Cấu trúc Overlay
• Các modul chương trình sau khi biên dịch được
chia thành các mức:
– Mức 0: Chứa modul gốc để nạp chương trình.
– Mức 1: Chứa các modul được gọi bởi mức 0.
– Mức 3: Chứa các modul được gọi bởi mức 1.
– …….
– Mức i: Chứa các modul được gọi ở mức i-1.


II.3. Cấu trúc Overlay



II.3. Cấu trúc Overlay
• Ưu điểm: Cho phép sử dụng bộ nhớ nhiều hơn
phần bộ nhớ hệ thống dành cho chương trình.
Cấu trúc chương trình màng tính chất tĩnh, nó
không thay đổi trong các lần thực hiện chương
trình.
• Nhước điểm: Vẫn yêu cầu người sử dụng cung
cấp thông tin phụ. Hiệu quả tiết kiệm bộ nhớ vẫn
phụ thuộc vào các tổ chức và bố trí các modul
của chương trình.


II.4. Cấu trúc phân đoạn
• Chương trình được phân đoạn thành các modul
độc lập. Thông tin về các modul được chứa
trong một bảng điều khiển gọi là bảng quản lý
đoạn. Trong bảng quản lý đoạn còn chứa các
thông tin trợ giúp việc định vị các modul vào bộ
nhớ.
• Hệ thống sẽ dựa vào bản quản lý này để nạp
các modul cần thiết vào bộ nhớ cho tới khi hết
khả năng.


II.4. Cấu trúc phân đoạn
• Ưu điểm: Không yêu cầu người sử dụng phải
khai báo thên thông tin, mọi công việc đều do hệ
thống đảm nhiệm, khi dung lượng bồ nhớ tăng

thì tốc độ thực hiện chương trình cũng tăng.
• Nhược điểm: Hiệu quả sử dụng bộ nhớ phụ
thuộc vào cách phân chia chương trình thành
các modul độc lập.


II.5. Cấu trúc phân trang
• Chương trình được biên dịch như cấu trúc tuyến
tính, sau đó được phân chia thành các phần
bằng nhau gọi là trang. Thông tin về các trang
được chứa trong bảng điều khiển gọi là bảng
quản lý trang. Hệ thống sẽ dựa vào bảng này để
nạp các trang cần thiết khi thực hiện chương
trình.


II.5. Cấu trúc phân trang
• Ưu điểm: Phát huy tốt hiệu quả sử dụng bộ nhớ.
• Nhược điểm: Chương trình chỉ áp dụng với bộ
nhước được quản lý theo kiểu phân trang


III. Các sơ đồ quản lý bộ nhớ
III.1. Sơ đồ phân hoạch cố định
• Bộ nhớ được chia thành n phần không nhất
thiết bằng nhau và mỗi phần dược sử dụng
như một bộ nhớ độc lập gọi là một phân
hoạch. Mỗi phân hoạch có thể nạp được một
chương trình và tổ chức thực hiện một cách
độc lập.

• Để sửa lại cấu trúc các phần hoạch cần phải
nạp lại hệ điều hành và phải chờ đến khi các
chương trình kết thúc để tránh mất thông tin.


III.1. Sơ đồ phân hoạch cố
định
• Các thuật toán lựa chọn phân
hoạch để sử dụng:
– First fit: Chọn phân hoạch đầu
tiên đủ lớn để cấp phát.
– Best fit: Chọn phân hoạch nhỏ
nhất đủ để cấp phát.
– Worst fit: Chọn phân hoạch
lớn nhất để cấp phát.


III.1. Sơ đồ phân hoạch cố
định
• Ưu điểm: đơn giản, dễ tổ chức, giảm thời gian
tìm kiếm.
• Nhược điểm:
– Nếu kích thước chương trình nhở hơn kích
thước phần hoạch chứa nó thì bộ hớ còn
thừa sẽ không sử dụng được.
– Chương trình sẽ không thực hiện nếu kích
thước nó lớn hơn phân hoạch lớn nhất.


III.2. Sơ đồ phân hoạch động

• Bộ nhớ có một bảng quản lý không gian nhớ tự
do thống nhất. Khi thực hiện chương trình, hệ
thống dựa vào kích thước chương trình để phân
bổ không gian nhớ thích hợp tạo thành vùng
nhớ độc lập và tạo bảng quản lý riêng. Khi kết
thúc nó sẽ thu hồi lại.


III.2. Sơ đồ phân hoạch động
• Ưu điểm: Tận dụng được không gian nhớ tự do,
các modul điều khiển bộ nhớ không phải sao
chép nhiều nơi.
• Nhược điểm: Xuất hiện hiện tượng phân đoạn
ngoại vi, do các chương trình phải bố trí rải rác
khắp nơi và sắp xếp các chương trình vào các
đoạn có kích thước không phù hợp.


×