Cơ chế được hiện thực trong hệ điều hành để cho phép thực thi một quá trình mà chỉ cần giữ trong bộ nhớ chính một phần của không gian địa chỉ luận lý của nó, còn phần còn lại được giữ trên bộ nhớ phụ (đĩa).Ưu điểm của bộ nhớ ảo: Số lượng process trong bộ nhớ nhiều hơn. Một process có thể thực thi ngay cả khi kích thước của nó lớn hơn bộ nhớ thực.
Chương B Nh o Nội dung trình bày Tại cần phải có nhớ ảo ? Tổng quan thực nhớ ảo Hiện thực nhớ ảo : demand paging Hiện thực 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 Hiện thực nhớ ảo : Demand Segmentation 10.2 Tại cần có nhớ ảo ? Nhìn lại paging segmentation : Các tham chiếu đến nhớ chuyển đổi động thành địa thực lúc process thực thi CPU package The CPU sends virtual addresses to the MMU CPU Memory Disk controller MMU Bus The MMU sends physical addresses to the memory MMU: memory management unit Một process gồm phần nhỏ (page hay segment), phần nạp vào vùng khơng liên tục nhớ 10.3 Bộ nhớ ảo (1) • 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 • Ngay tồn chương trình cần dùng khơng cần dùng tồn lúc 10.4 Bộ nhớ ảo (2) Bộ nhớ ảo (virtual memory) – Cơ chế thực hệ điều hành phép thực thi q trình mà cần giữ nhớ phần không gian địa luận lý nó, cịn phần cịn lại giữ nhớ phụ (đĩa) Ư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 10.5 Bộ nhớ ảo (3) • Thơng thường phần khơng gian địa luận lý trình, chưa cần nạp vào nhớ chính, giữ vùng đặc biệt đĩa gọi không gian tráo đổi (swap space) Ví dụ: – swap partition Linux – file pagefile.sys Windows 2K 10.6 Tổng quan thực nhớ ảo 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 10.7 Phần cứng hỗ trợ nhớ ảo Sự hỗ trợ phần cứng phân trang khảo sát chương trước Chỉ có điểm khác biệt mục bảng phân trang có thêm bit trạng thái đặc biệt – Present bit = trang hợp lệ memory • = trang khơng hợp lệ không memory – Modified bit: cho biết trang có thay đổi kể từ nạp vào memory hay không 10.8 Hiện thực nhớ ảo: demand paging • Demand paging: trang trình nạp vào nhớ yêu cầu Khi có tham chiếu đến trang mà khơng có nhớ (present bit = 0) 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 10.9 Page fault bước xử lý 10.10 Giải thuật thay trang clock (1) Các frame cấp cho process xem đệm xoay vòng (circular buffer) Khi trang thay, trỏ đến frame buffer Mỗi frame có use bit Bit thiết lập trị – Một trang nạp lần đầu vào frame – Trang chứa frame tham chiếu Khi cần thay trang nhớ, trang nhớ nằm frame có use bit thay – Trên đường tìm trang nhớ thay thế, tất use bit reset 10.18 Giải thuật thay trang clock (2) 10.19 So sánh LRU, FIFO, clock chuỗi tham chiếu trang nhớ Dấu : use bit tương ứng thiết lập trị Giải thuật clock bảo vệ trang thường tham chiếu cách thiết lập use bit với lần tham chiếu Một số kết thực nghiệm cho thấy clock có hiệu suất gần với LRU 10.20 Số lượng frame cấp cho process OS phải định cấp cho process frame – Cấp frame nhiều page fault – Cấp nhiều frame 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 10.21 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 size of process pi Ví dụ: m 64 S si s i 10 m total number of frames 10 a1 64 137 127 a2 64 59 137 si allocation for pi m S s 127 10.22 Thrashing • 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 Ví dụ: vịng lặp N lần, lần tham chiếu đến địa nằm trang nhớ process cấp frames Process có trang, cấp phát frame Chuỗi tham chiếu trang: 123023013012312 Thrashing: tượng trang nhớ chuyển vào/ra liên tục frames 123 023 013 Thời gian bị hoán process 10.23 Thrashing diagram 10.24 Nguyên lý 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 Trong ví dụ trước, locality bao gồm trang – Một process gồm nhiều locality, trình thực thi, process chuyển từ locality sang locality khác Ví dụ thủ tục gọi có locality Trong locality này, tham chiếu nhớ bao gồm lệnh thủ tục, biến cục phần biến tồn cục Khi thủ tục kết thúc, process khỏi locality (và quay lại sau này) Vì tượng thrashing xuất hiện? Khi size of locality > memory size 10.25 Hạn chế thrashing: Giải pháp working set (1) • • • Còn gọi working set model Được thiết kế dựa nguyên lý locality Xác định xem process thực sử dụng frame Định nghĩa: tham số working-set window tham số xác định số lượng tham chiếu trang nhớ process gần cần quan sát Ví dụ: D=4 chuỗi tham khảo trang nhớ 24569132639214 thời điểm t1 10.26 Hạn chế thrashing: Giải pháp working set (2) Đị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: • q nhỏ khơng đủ bao phủ tồn locality • q lớn 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 10.27 Hạn chế thrashing: Giải pháp working set (3) Đị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) = 10.28 Hạn chế thrashing: Giải pháp working set (4) • Đặ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) xảy thrashing 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 suspend process Các trang trình chuyển đĩa cứng frame thu hồi 10.29 Xấp xỉ working set Theo định nghĩa, trang working set n u tham chi u working-set window Giả sử hardware hỗ trợ reference bit cho page: page tham chi u, reference bit set thành Dùng interval timer k t hợp với reference bit để xấp xỉ working set reference bit Ví dụ: = 10.000 copy – Timer interrupt định kỳ, sau 5000 tham chi u history bits – Giữ nhớ bit (history bits) cho trang nhớ – Khi timer interrupt xảy ra, shift history bits vị trí sang phải, copy reference bit vào history bit trái, reset reference bit = – Trang có history bits chứa thuộc v working set • Để xấp xỉ xác hơn: ví dụ dùng 10 history bit interrupt timer định kỳ sau 1000 tham chi u 10.30 Hạn chế thrashing: Điều khiển page-fault rate Dùng giải thuật PFF (Page-Fault Frequency) để điều khiển page-fault rate • (số page-faults/sec) process: Page-fault rate thấp: process có nhiều frame giảm số frame Page-fault rate cao: process cần thêm frame cấp thêm frame 10.31 Demand Segmentation Được sử dụng không đủ phần cứng để thực demand paging Hệ điều hành phân phối memory theo segments, mà lưu vết thông qua segment descriptor Segment descriptor chứa valid bit để định segment thời có nhớ hay khơng – Nếu segment có nhớ chính, việc truy cập tiếp tục – Nếu khơng có nhớ , segment fault 10.32 ... u 10.30 Hạn chế thrashing: Điều khiển page-fault rate Dùng giải thuật PFF (Page-Fault Frequency) để điều khiển page-fault rate • (số page-faults/sec) process: Page-fault rate thấp: process có... 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 10.7 Phần cứng hỗ trợ nhớ ảo Sự hỗ trợ phần cứng phân trang khảo sát chương trước... trang WSS(t1) = WSS(t2) = 10. 28 Hạn chế thrashing: Giải pháp working set (4) • Đặ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) xảy thrashing