PHÂN ĐOẠN THEO YÊU CẦU

Một phần của tài liệu Giáo trình nguyên lý hệ điều hành phần 2 hồ đắc phương (Trang 69 - 70)

2. Ngăn xếp (Stack): Có thể sử dụng hgăn xếp luxi trữ địa chỉ ỉrang Trang bị tham chiếu được chuyển lên đinh ngăn xếp Đinh ngăn xếp

10.7.PHÂN ĐOẠN THEO YÊU CẦU

Mặc dù phân trang theo yêu cầu được đánh giá là hệ thống bộ nhớ ảo hiệu quả nhất, nhưng cần nhiều phần cứng hồ trợ. Đ ó chính là nguyên nhân ra đời phân đoạn theo yêu cầu. Kiến trúc Intel 80286 không phân trang, nhưng phân đoạn bộ nhớ. HĐH OS/2 khi chạy trên kiến trúc này sẽ dùng phần cứng phân đoạn để cài đặt phân đoạn theo yêu cầu - một cách thức gần giống phân trang theo yêu cầu. OS/2 cấp phát bộ nhớ theo đoạn và kiểm soát các đoạn thông qua bộ mô tả đoạn (segment descriptors) - chứa thông tin về kích thước, mức bảo vệ, vị trí của đoạn. Không nhất thiết phải tải tất cà các đoạn của tiến trình vào trong bộ nhớ. Trong bộ mô tả đoạn, mỗi đoạn sẽ có trường bit hợp lệ, nhằm xác định đoạn hiện có nàm trong bộ nhớ hay không. Khi tiến trình truy cập đến đoạn nào đấy, phần cứng sẽ kiểm tra mã hợp lệ. Nếu đoạn đã nằm trong bộ nhớ, tiến trình tiến hành truy cập bình thường. Nếu đoạn chưa nằm trong bộ nhớ, phần cứng tạo ra ngắt (lỗi đoạn) để HĐH nắm lấy quyền sử dụng CPU giống như phân trang theo yêu cầu. Sau đó, OS/2 hoán chuyển một đoạn sang ổ cứng và tải đoạn được yêu cầu vào bộ nhớ chính. Chi thị bị tạm dừng trước khi phát sinh lỗi đoạn được khôi phục để tiếp tục thực hiện. Để xác định đoạn nào bị thay thế trong trường hợp lỗi đoạn, OS/2 sử dụng bit truy cập (accessed bit) trong bộ mô tả đoạn. Bit truy cập giống bit tham chiếu trong phân trang theo yêu cầu, được thiết lập (nhận giá trị 1) khi bất cứ byte nào trong đoạn được đọc hoặc ghi. Sử dụng một hàng đợi duy trì chỉ mục cho mỗi đoạn trong bộ nhớ. Sau mỗi khoảng thời gian xác định, OS/2 đưa danh sách các đoạn vừa được truy cập vào đầu hàng đợi. Sau đó sẽ xóa bit truy cập của các đoạn. Hàng đợi này sắp xếp theo thứ tự thòd gian và đoạn được truy cập gần nhất nằm tại đỉnh. Bên cạnh đó, OS/2 có lời gọi hệ thống cho các tiến trình thông báo cho HĐH các đoạn không được loại bỏ, hoặc phải luôn nằm trong bộ nhớ. Thông tin này giúp cho HĐH sắp xếp thứ tự các đoạn trong hàng đợi. Khi lỗi đoạn xuất

hiện, trước tiên bộ phận quản lý bộ nhớ phải xác định xem có đù bộ nhớ trống để tải doạn vào không. Thu gọn bộ nhớ có thể được thực hiện để làm giam phân mảnh ngoài. Nếu sau khi thu gọn mà vẫn không đủ bộ nhớ trống, phái thực hiện thay thế doạn. Đoạn nầm cuối hàng đợi sẽ được thay thế bằng cách hoán chuyển ra ổ đĩa cứng. Nếu vùng trống trong bộ nhớ vừa được giải phóng đù lớn, đoạn được yêu cầu sẽ được tải vào bộ nhớ, bộ mô tả đoạn dược cập nhật. Nếu vẫn thiếu bộ nhớ, hệ thống lại phải thay thế thêm một đoạn khác và quá trình này lại tiếp tục.

10.8. NHẬN XÉT

Người sử dụng mong muốn thực hiện tiến trình có không gian địa chi logic lớn hon lượng bộ nhớ được cấp phát. Lập trình viên có thể thực hiện điều này bàng cách tổ chức chương trình theo kỹ thuật phủ, nhưng công việc này rất phức tạp. Kỹ thuật bộ nhớ ảo cho phép ánh xạ không gian địa chỉ logic lên một vùng nhớ vật lý có kích thước nhỏ hơn. Bộ nhớ ảo làm tăng ipức độ đa chương trình, nâng cao hiệu suất sử dụng CPU. Hơn nữa, người lập trình không còn bận tâm về vấn đề bộ nhớ thực. Phương pháp phân trang thuần túy chi tải trang nhớ thục sự cần đến vào. Tham chiếu đầu tiên gây ra lỗi trang để chuyển quyền điều khiển cho HĐH. HĐH tra cứu bảng phân trang xác định trang nằm ờ đâu trên ổ cứng, tìm một frame trống để tài trang từ ổ đĩa cứng vào. Sau đó HĐH cập nhật bảng phân trang và khởi động lại chi thị bị dừng do lồi trang. Giải pháp này cho phép tiến trình chạy ngay cả khi vùng nhớ cần thiết chưa nằm trong bộ nhớ chính. Nếu giữ được tỷ lệ lỗi trang tưong đối thấp, hiệu suất cùa hệ thống hoàn toàn chấp nhận được. Phân trang theo yêu cầu cho phép giảm số lượng frame cấp phát cho tiến trình, điều này làm tăng mức đa chương (cho phép nhiều tiến trình chạy cùng một lúc).

CÂU HỎI ÔN TẬP

Một phần của tài liệu Giáo trình nguyên lý hệ điều hành phần 2 hồ đắc phương (Trang 69 - 70)