Bài giảng Hệ điều hành: Chương 4.2 cung cấp cho người học những kiến thức như: Bộ nhớ ảo; Cấp phát khung trang; Tình trạng trì trệ. Mời các bạn cùng tham khảo!
Chương QUẢN LÝ BỘ NHỚ Nội dung chương 4 Địa vấn đề liên quan Một số cách tổ chức chương trình Phân chương nhớ Phân đoạn nhớ Phân trang nhớ Bộ nhớ ảo Cấp phát khung trang Tình trạng trì trệ BỘ NHỚ ẢO Dùng nhớ phụ lưu trữ tiến trình, phần tiến trình chuyển vào-ra nhớ nhớ phụ Phân trang theo yêu cầu (Demand paging) Phân đoạn theo yêu cầu (Demand segmentation) BỘ NHỚ ẢO Phân trang theo yêu cầu (Demand paging) G H Trường chứa bit "kiểm tra“: (valid) trang nhớ (invalid) trang lưu nhớ phụ trang khơng thuộc tiến trình BỘ NHỚ ẢO Chuyển địa ảo (p,d) thành địa vật lý BỘ NHỚ ẢO Thay trang Bit "cập nhật" (dirty bit): 1: nội dung trang có bị sửa đổi 0: nội dung trang khơng bị thay đổi BỘ NHỚ ẢO Thời gian thực yêu cầu truy xuất nhớ P: xác suất xảy lỗi trang (0 p 1) Memory access (ma): thời gian lần truy xuất nhớ Effective Access Time (EAT): thời gian thực yêu cầu truy xuất nhớ Page fault overhead (pfo) :thời gian xử lý lỗi trang Swap page in (spi): thời gian chuyển trang từ đĩa vào nhớ Swap page out (spo): thời gian chuyển trang đĩa (swap page out 0) Restart overhead (ro): thời gian tái khởi động lại việc truy xuất nhớ EAT = (1 – p) x ma+ p (pfo+ [spo]+ spi+ ro) Ví dụ: Thời gian lần truy xuất nhớ micro second giả sử 40% trang chọn thay đổi nội dung thời gian hoán chuyển trang ra/vào 10 mili second Tính ETA EAT = (1 – p) + p (pfo+10000*0.4+10000+ro) micro second BỘ NHỚ ẢO Các thuật toán chọn trang nạn nhân Trang “nạn nhân”: trang mà sau thay gây lỗi trang Thuật tốn FIFO (First In First Out) Thuật toán tối ưu (Optimal Page Replacement Algorithm) Thuật toán LRU (Least-recently-used) Các thuật toán xấp xỉ LRU Thuật tốn với bít history Thuật toán hội thứ hai Thuật toán hội thứ hai nâng cao (Not Recently Used Page Replacement Algorithm: NRU) Các thuật toán thống kê Thuật toán LFU (least frequently used) Thuật toán MFU (most frequently used) Bộ nhớ ảo Giải thuật thay trang FIFO Xem frame cấp phát cho process circular buffer Khi đệm đầy, trang nhớ cũ thay thế: FIFO Một trang nhớ hay dùng thường trang cũ hay bị thay giải thuật FIFO Đơn giản: cần trỏ xoay vòng frame process Bộ nhớ ảo Nghịch lý Belady Xét tiến trình truy xuất chuỗi trang theo thứ tự sau: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, Nếu sử dụng khung trang, có lỗi trang Nếu sử dụng khung trang, có 10 lỗi trang Bộ nhớ ảo Giải thuật thay trang OPT - Optimal Thay trang nhớ tham chiếu trễ tương lai Ví dụ: process có trang, cấp frame 11 Bộ nhớ ảo Giải thuật thay trang OPT - Optimal Số lượng lỗi trang phát sinh thấp Khơng bị nghịch lý Belady Khó cài đặt Phù hơp với hệ điều hành cho thiết bị gia dụng Bộ nhớ ảo Giải thuật thay trang Least Recently Used (LRU) Thay trang nhớ không tham chiếu lâu Ví dụ: process có trang, cấp frame 13 Bộ nhớ ảo Cài đặt thuật toán LRU Sử dụng đếm Cấu trúc phần tử bảng trang: thêm trường ghi nhận “thời điểm truy xuất gần nhất” Cấu trúc CPU: thêm ghi đếm (counter) Sử dụng danh sách liên kết Trang cuối danh sách trang truy xuất gần Trang đầu danh sách trang lâu chưa sử dụng Bộ nhớ ảo Các thuật toán xấp xỉ LRU Mỗi phần tử bảng trang có thêm bit reference: khởi gán hđh phần cứng gán lần trang tương ứng truy cập Các thuật toán xấp xỉ LRU: Thuật toán với bit history Thuật toán hội thứ hai Thuật toán hội thứ hai nâng cao (Not Recently Used Page Replacement Algorithm: NRU) Bộ nhớ ảo Thuật toán với bit history Mỗi trang sử dụng thêm bit lịch sử (history) Cập nhật bít history: dịch bit history sang phải vị trí để loại bỏ bit thấp đặt bit reference trang vào bit cao bit history trang bit history lưu trữ tình hình truy xuất đến trang chu kỳ cuối Trang “nạn nhân” trang có giá trị history nhỏ Bộ nhớ ảo Thuật tốn hội thứ hai: Tìm trang theo nguyên tắc FIFO Kiểm tra bit reference trang Nếu bit reference 0, chọn trang Nếu bit reference gán lại tìm trang FIFO Bộ nhớ ảo Thuật tốn hội thứ hai: Ví dụ: Bộ nhớ ảo Thuật toán hội thứ hai nâng cao (Not Recently Used Page Replacement Algorithm - NRU): Lớp (0,0): gồm trang có (ref,dirty) = (0,0) (độ ưu tiên thấp nhất) Không truy xuất gần không bị sửa đổi Tốt để thay Lớp (0,1): Không truy xuất gần bị sửa đổi Trường hợp khơng thật tốt, trang cần lưu trữ lại trước thay Bộ nhớ ảo Thuật toán hội thứ hai nâng cao (Not Recently Used Page Replacement Algorithm - NRU): Lớp (1,0): Được truy xuất gần đây, không bị sửa đổi Trang nhanh chóng tiếp tục sử dụng Lớp (1,1): (độ ưu tiên cao nhất) trang truy xuất gần đây, bị sửa đổi Trang nhanh chóng tiếp tục sử dụng trước thay cần phải lưu trữ lại Trang “nạn nhân”: trang tìm thấy lớp có độ ưu tiên thấp Bộ nhớ ảo Các thuật toán thống kê Biến đếm: lưu số lần truy xuất đến trang Thuật toán LFU (least frequently used): Thay trang có giá trị biến đếm nhỏ nhất, nghĩa trang sử dụng Thuật tốn MFU (most frequently used): Thay trang có giá trị biến đếm lớn nhất, nghĩa trang sử dụng nhiều Bộ nhớ ảo Chiến lược cấp phát khung trang Cấp phát ngang bằng: m khung trang n tiến trình Mỗi tiến trình cấp m/n khung trang Cấp phát theo tỷ lệ kích thước: si m S si: kích thước tiến trình pi S = si tổng kích thước tất tiến trình m: số lượng khung trang sử dụng ai: số khung trang cấp phát cho tiến trình pi Ví dụ: Tiến trình = 10K, tiến trình = 127K, có 62 khung trang trống Khi cấp cho tiến trình 1: 10/137 x 62 ~ khung tiến trình 2: 127/137 x62 ~ 57 khung Cấp phát theo tỷ lệ độ ưu tiên Bộ nhớ ảo Thay trang Thay toàn cục Chọn trang “nạn nhân” từ tập tất khung trang hệ thống Có nhiều khả lựa chọn Số khung trang cấp cho tiến trình thay đổi Các tiến trình khơng thể kiểm sốt tỷ lệ phát sinh lỗi trang Thay cục Chỉ chọn trang thay tập khung trang cấp cho tiến trình phát sinh lỗi trang Số khung trang cấp cho tiến trình khơng thay đổi Tình trạng trì trệ (thrashing) Là tượng trang nhớ process bị hoán chuyển vào/ra liên tục Nếu process khơng có đủ số frame cần thiết tỉ số page faults/sec cao Điều khiến giảm hiệu suất CPU nhiều Mơ hình tập làm việc (working set) Tình trạng trì trệ (thrashing) Mơ hình tập làm việc (working set) WSSi(, t): số phần tử tập working set tiến trình Pi thời điểm t Tập trang tiến trình truy xuất đến lần truy cập cuối tính thời điểm t m: số khung trang trống D = WSSi: tổng số khung trang yêu cầu cho toàn hệ thống Tại thời điểm t: cấp cho Pi số khung trang WSSi(, t-1) D>m: Trì trệ hệ thống ...Nội dung chương 4 Địa vấn đề liên quan Một số cách tổ chức chương trình Phân chương nhớ Phân đoạn nhớ Phân trang nhớ Bộ nhớ ảo Cấp phát khung... trống D = WSSi: tổng số khung trang yêu cầu cho toàn hệ thống Tại thời điểm t: cấp cho Pi số khung trang WSSi(, t-1) D>m: Trì trệ hệ thống ... nhớ ảo Giải thuật thay trang OPT - Optimal Thay trang nhớ tham chiếu trễ tương lai Ví dụ: process có trang, cấp frame 11 Bộ nhớ ảo Giải thuật thay trang OPT - Optimal Số lượng lỗi trang