Mơ hình Base & Limit

Một phần của tài liệu Hệ Điều Hành Học Viện Công Nghệ Bưu Chính Viễn Thông (Trang 103 - 104)

- Đọc/Ghi ngày, tháng, năm

b/ Sử dụng danh sách liên kết: mỗi nút của danh sách liên kết lƣu thơng tin một vùng nhớ chứa

4.2.1.2 Mơ hình Base & Limit

Giống nhƣ mơ hình Linker-Loader nhƣng phần cứng cần cung cấp hai thanh ghi, một thanh ghi nền (base register) và một thanh ghi giới hạn (limit register). Khi một tiến trình đƣợc cấp phát vùng nhớ, hệ điều hành cất vào thanh ghi nền địa chỉ bắt đầu của vùng nhớ cấp phát cho tiến trình, và cất vào thanh ghi giới hạn kích thƣớc của tiến trình.

Hình 4.5: một ví dụ về mơ hình base&limit

Khi tiến trình thực thi, mỗi địa chỉ ảo (địa chỉ ảo cũng chính là địa chỉ tƣơng đối) sẽ đƣợc MMU so sánh với thanh ghi giới hạn để bảo đảm tiến trình khơng truy xuất ngồi phạm vi vùng nhớ đƣợc cấp cho nĩ. Sau đĩ địa chỉ ảo đƣợc cộng với giá trị trong thanh ghi nền để cho ra địa chỉ tuyệt đối trong bộ nhớ.

0000 JUMP JUMP 0X5000 HĐH Bộ nhớ vật lý JUMP 0X2000 P.EXE 0X3000 (base) 0X6000 (bound) 0X3000 0X0000

Hình 4.6: cơ chế MMU trong mơ hình base&limit

Nhận xét:

+ Cĩ thể di chuyển các chƣơng trình trong bộ nhớ vì do tiến trình đƣợc nạp ở dạng địa chỉ ảo, khi tiến trình đƣợc di chuyển đến một vị trí mới, hệ điều hành chỉ cần nạp lại giá trị cho thanh ghi nền, và việc chuyển đổi địa chỉ đƣợc MMU thực hiện vào thời điểm xử lý.

+ Cĩ thể cĩ hiện tƣợng phân mảnh ngoại vi (external fragmentation ): tổng vùng nhớ trống đủ để thoả mãn yêu cầu, nhƣng các vùng nhớ này lại khơng liên tục nên khơng đủ để cấp cho một tiến trình khác. Cĩ thể áp dụng kỹ thuật “dồn bộ nhớ “ (memory compaction ) để kết hợp các mảnh bộ nhớ nhỏ rời rạc thành một vùng nhớ lớn liên tục, tuy nhiên kỹ thuật này địi hỏi nhiều thời gian xử lý. Ví dụ về sự phân mảnh ngoại vi của bộ nhớ, các tiến trình liên tục vào ra bộ nhớ, sau một thời gian sẽ để lại các vùng nhớ nhỏ mà khơng thể chứa bất kỳ tiến trình nào.

Hình 4.7: một ví dụ về sự phân mảnh ngoại vi trong mơ hình cấp phát liên tục

* Vấn đề nảy sinh khi kích thƣớc của tiến trình tăng trƣởng trong qúa trình xử lý mà khơng cịn vùng nhớ trống gần kề để mở rộng vùng nhớ cho tiến trình. Cĩ hai cách giải quyết:

+ Dời chỗ tiến trình: di chuyển tiến trình đến một vùng nhớ khác đủ lớn để thỏa mãn nhu cầu

tăng trƣởng của tiến trình.

+ Cấp phát dư vùng nhớ cho tiến trình : cấp phát dự phịng cho tiến trình một vùng nhớ lớn hơn yêu cầu ban đầu của tiến trình.

D D D D D C C

Một phần của tài liệu Hệ Điều Hành Học Viện Công Nghệ Bưu Chính Viễn Thông (Trang 103 - 104)

Tải bản đầy đủ (PDF)

(200 trang)