Bài giảng Hệ điều hành: Chương 8 Bộ nhớ ảo nhằm trình bày về tổng quan bộ nhớ ảo, cài đặt bộ nhớ ảo: Demand Segmentation, Page Replacement, vấn đề cấp phát Frames, vấn đề Thrashing, bộ nhớ ảo là một kỹ thuật cho phép xử lý tiến trình không được nạp toàn bộ vào bộ nhớ vật lý.
Chương Bộ Nhớ Ảo Nội dung trình bày Tổng quan nhớ ảo Cài đặt nhớ ảo : demand paging Cài đặt nhớ ảo : Page Replacement – Các giải thuật thay trang (Page Replacement Algorithms) Vấn đề cấp phát Frames Vấn đề Thrashing Cài đặt bộ nhớ ảo : Demand Segmentation Khoa KTMT Tổng quan nhớ ảo „ Nhận xét: tất phần process cần thiết phải nạp vào nhớ thời điểm Ví dụ – Đoạn mã điều khiển lỗi xảy – Các arrays, list, tables cấp phát nhớ (cấp phát tónh) nhiều yêu cầu thực – Một số tính dùng chương trình – Cả chương trình có đoạn code chưa cần dùng Bộ nhớ ảo (virtual memory): Bộ nhớ ảo kỹ thuật cho phép xử lý tiến trình không nạp toàn vào nhớ vật lý Khoa KTMT Bộ nhớ ảo (tt) Ưu điểm nhớ ảo – Số lượng process nhớ nhiều – Một process thực thi kích thước lớn nhớ thực – Giảm nhẹ công việc lập trình viên „ Không gian tráo đổi nhớ nhớ phụ(swap space) Ví dụ: – swap partition Linux – file pagefile.sys Windows Khoa KTMT Cài đặt nhớ ảo Có hai kỹ thuật: – Phân trang theo yêu cầu (Demand Paging) – Phân đoạn theo yêu cầu (Segmentation Paging) Phần cứng memory management phải hỗ trợ paging và/hoặc segmentation OS phải quản lý di chuyển trang/đoạn nhớ nhớ thứ cấp Trong chương này, – Chỉ quan tâm đến paging – Phần cứng hỗ trợ thực nhớ ảo – Các giải thuật hệ điều hành Khoa KTMT 2.1.Phân trang theo yêu cầu demand paging „ Demand paging: trang trình nạp vào nhớ yêu cầu Khi có tham chiếu đến trang mà nhớ (valid bit) phần cứng gây ngắt (gọi page-fault trap) kích khởi page-fault service routine (PFSR) hệ điều hành PFSR: Chuyển process trạng thái blocked Phát yêu cầu đọc đóa để nạp trang tham chiếu vào frame trống; đợi I/O, process khác cấp CPU để thực thi Sau I/O hoàn tất, đóa gây ngắt đến hệ điều hành; PFSR cập nhật page table chuyển process trạng thái ready Khoa KTMT 2.2 Lỗi trang bước xử lý Khoa KTMT 2.3 Thay trang nhớ Bước PFSR giả sử phải thay trang không tìm frame trống, PFSR bổ sung sau Xác định vị trí đóa trang cần Tìm frame trống: a Nếu có frame trống dùng b Nếu frame trống dùng giải thuật thay trang để chọn trang hy sinh (victim page) c Ghi victim page lên đóa; cập nhật page table frame table tương ứng Đọc trang cần vào frame trống (đã có từ bước 2); cập nhật page table frame table tương ứng Khoa KTMT 2.3 Thay trang nhớ (tt) Khoa KTMT 2.4 Các thuật toán thay trang „ Hai vấn đề chủ yếu: Frame-allocation algorithm „ – Cấp phát cho process frame nhớ thực? Page-replacement algorithm – Chọn frame process thay trang nhớ – Mục tiêu: số lượng page-fault nhỏ – Được đánh giá cách thực thi giải thuật chuỗi tham chiếu nhớ (memory reference string) xác định số lần xảy page fault Khoa KTMT Ví dụ Thứ tự tham chiếu địa nhớ, với page size = 100: „ 0100, 0432, 0101, 0612, 0102, 0103, 0104, 0101, 0611, 0102, 0103, 0104, 0101, 0610, 0102, 0103, 0104, 0101, 0609, 0102, 0105 trang nhớ sau tham chiếu = chuỗi tham chiếu nhớ (trang nhớ) „ „ „ „ „ 1, 4, 1, 6, 1, 1, 1, 1, 6, 1, 1, 1, 1, 6, 1, 1, 1, 1, 6, 1, 10 LRU FIFO So sánh giải thuật thay trang LRU FIFO chuỗi tham chiếu trang nhớ Khoa KTMT 16 Giải thuật hội thứ hai Sử dụng bit tham khảo khoản thời gian đặn Dùng byte cho trang bảng nằm nhớ Dùng ghi dịch chứa lịch sử tham khảo lần gần VD: 00110101, 00000000, 11111111 Là giải thuật thay FIFO, trước thay trang xem xét bit tham khảo Đơi sử dụng hai bit: tham khảo sửa đổi cặp (x,x): – (0,0) không dùng không sửa đổi-là trang tốt để thay – (0,1) không dùng sửa đổi-không thật tốt trang cần viết trước thay – (1,0) dùng không sửa đổi-nó nhanh chóng dùng lại – (1,1) dùng sửa đổi-trang nhanh chóng dùng lại trang cần viết đĩa trước thay Khoa KTMT 17 Giải thuật hội thứ hai (tt) Khoa KTMT 18 2.5.Số lượng frame cấp cho process OS phải định cấp cho process frame – Cấp frame – Cấp nhiều frame nhiều page fault giảm mức độ multiprogramming Chiến lược cấp phát tónh (fixed-allocation) – Số frame cấp cho process không đổi, xác định vào thời điểm loading tùy thuộc vào ứng dụng (kích thước nó,…) Chiến lược cấp phát động (variable-allocation) – Số frame cấp cho process thay đổi chạy Nếu tỷ lệ page-fault cao cấp thêm frame Nếu tỷ lệ page-fault thấp giảm bớt frame – OS phí để ước định process Khoa KTMT 19 a) Chiến lược cấp phát tónh Cấp phát nhau: Ví dụ, có 100 frame process process 20 frame Cấp phát theo tỉ lệ: dựa vào kích thước process si S m Ví duï: size of process pi si m si 64 10 s2 127 total number of frames a1 allocation for pi si S m Cấp phát theo độ ưu tieân Khoa KTMT a2 10 64 137 127 64 137 59 20 Trì toàn hệ thống Thrashing Nếu process đủ số frame cần thiết tỉ số page faults/sec cao Thrashing: tượng trang nhớ process bị hoán chuyển vào/ra liên tục Khoa KTMT 21 a)Mô hình cục (Locality) Để hạn chế thrashing, hệ điều hành phải cung cấp cho process “đủ” frame tốt Bao nhiêu frame đủ cho process thực thi hiệu quả? Nguyên lý locality (locality principle) – Locality tập trang tham chiếu gần – Một process gồm nhiều locality, trình thực thi, process chuyển từ locality sang locality khác Vì tượng thrashing xuất hiện? Khi size of locality > memory size Khoa KTMT 22 b) Giaûi pháp tập làm việc (working set) „ Được thiết kế dựa nguyên lý locality Xác định xem process thực sử dụng frame Định nghóa: – WS(t) - số lượng tham chiếu trang nhớ process gần cần quan sát khoảng thời gian – - khoảng thời gian tham chiếu „ Ví dụ: =4 chuỗi tham khảo trang nhớ 24569132639214 thời điểm t1 Khoa KTMT 23 b) Giải pháp tập làm việc (working set) Định nghóa: working set process Pi , ký hiệu WSi , tập gồm trang sử dụng gần Ví dụ: = 10 chuỗi tham khảo trang Nhận xét: „ „ „ nhỏ lớn = không đủ bao phủ toàn locality bao phủ nhiều locality khác bao gồm tất trang sử dụng Dùng working set process để xấp xỉ locality Khoa KTMT 24 b) Giải pháp tập làm việc (working set) Định nghóa WSSi kích thước working set Pi : WSSi = số lượng trang WSi Ví dụ (tiếp): = 10 chuỗi tham khảo trang WSS(t1) = WSS(t2) = Khoa KTMT 25 b) Giải pháp tập làm việc (working set) „ Đặt D = WSSi = tổng working-set size process hệ thống Nhận xét: Nếu D > m (số frame hệ thống) thrashing xảy Giải pháp working set: – Khi khởi tạo trình: cung cấp cho trình số lượng frame thỏa mản working-set size – Nếu D > m tạm dừng process Các trang trình chuyển đóa cứng frame thu hồi Khoa KTMT 26 b) Giải pháp tập làm việc (working set) WS loại trừ tình trạng trì trệ mà đảm bảo mức độ đa chương Theo vết WS? => WS xấp xỉ (đọc thêm sách) Đọc thêm: Hệ thống tập tin Hệ thống nhập xuất Hệ thống phân tán Khoa KTMT 27 Bài tập Bài 01: Một máy tính 32-bit địa chỉ, sử dụng bảng trang nhị cấp Địa ảo phân bổ sau : bit dành cho bảng trang cấp 1, 11 bit cho bảng trang cấp 2, cho offset Cho biết kích thước trang hệ thống, địa ảo có trang ? Bài 02: Xét chuỗi truy xuất nhớ sau: 1, , , , , , , , , , , , , , , , , , , Có lỗi trang xảy sử dụng thuật toán thay sau đây, giả sử có khung trang ban đầu khung trang trống ? a) LRU b) FIFO c) Optimal d) Cơ hội thứ Khoa KTMT 28 Bài tập Cho process có số frame truy cập sau: 1,2,4,3,5,2,3,5,6,7,8,9,1,2,3,4,5,2,3,7,6,4, 5,6,7,9,8,1,2,5 Cho biết có biêu nhiêu tập làm việc (working set)? Liệt kê frame working set? Biết = Khoa KTMT 29 Bài tập Hệ thống thời điểm có process: process cần frame, process cần 15 frame, process cần 10 frame, process cần frame, process cần 11 frame Hệ thống có 30 frame Tính xem process cấp frame? Phân bổ đều? Theo tỷ lệ? Khoa KTMT 30 ... bảo mức độ đa chương Theo vết WS? => WS xấp xỉ (đọc thêm sách) Đọc thêm: Hệ thống tập tin Hệ thống nhập xuất Hệ thống phân tán Khoa KTMT 27 Bài tập Bài 01: Một máy tính 32-bit địa chỉ,... chiếu đến trang mà nhớ (valid bit) phần cứng gây ngắt (gọi page-fault trap) kích khởi page-fault service routine (PFSR) hệ điều hành PFSR: Chuyển process trạng thái blocked Phát yêu cầu đọc đóa... dùng không sửa đổi-là trang tốt để thay – (0,1) không dùng sửa đổi-khơng thật tốt trang cần viết trước thay – (1,0) dùng khơng sửa đổi-nó nhanh chóng dùng lại – (1,1) dùng sửa đổi-trang nhanh chóng