Bài giảng hệ điều hành chương 9 pagereplacement Bài giảng hệ điều hành chương 9 pagereplacement Bài giảng hệ điều hành chương 9 pagereplacement Bài giảng hệ điều hành chương 9 pagereplacement Bài giảng hệ điều hành chương 9 pagereplacement
Thay Thế Trang 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 Process gồm phần nhỏ (page hay segment), phần nạp vào vùng không liên tục nhớ Bộ nhớ ảo (1/3) Nhận xét: không cần thiết phải có tất page/segment process nhớ lúc Ví dụ Đoạn mã xử lý lỗi xảy Các array, list, table 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 – Vd ‘Tools’ MS Word Ngay toàn chương trình cần dùng không cần dùng toàn lúc Bộ nhớ ảo (2/3) Nhìn lại kỹ thuật overlay Bộ nhớ ảo (virtual memory) Kỹ thuật hệ điều hành phép thực thi trình mà cần giữ nhớ phần không gian đòa luận lý Phầ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 kích thước nhớ thực Bộ nhớ ảo (3/3) 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 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 Hai cách thực nhớ ão cho hệ thống paging Demand paging: nạp trang vào nhớ yêu cầu Prepaging: nạp trước vào nhớ lúc tất trang cần đến Trong chương này, Quan tâm đến demand paging Phần cứng hỗ trợ thực nhớ ảo Các giải thuật liên quan Phần cứng hỗ trợ nhớ ảo Phần cứng hỗ trợ phân trang khảo sát chương trước Nhắc lại, mục bảng phân trang có valid-invalid bit Ở valid-invalid bit sử dụng sau Nếu bit có trò “valid” trang hợp lệ nhớ “invalid” trang không hợp lệ hợp lệ không nhớ Khi có tham chiếu đến trang mà nhớ (“invalid”) phần cứng (MMU) gây pagefault trap Hiện thực nhớ ảo: demand paging Demand paging: trang trình nạp vào nhớ yêu cầu Khi trình tham chiếu đến trang mà nhớ (valid-invalid bit = “invalid”) gây 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 Gửi yêu cầu đọc đóa để nạp trang tham chiếu vào frame trống; Trong I/O tiến hành, process khác cấp CPU để thực thi Khi I/O hoàn tất, disk controller gây ngắt đến hệ điều hành; Cập nhật page table chuyển process trạng thái ready Page fault bước xử lý Thay trang nhớ (1/2) Bước PFSR giả sử tìm frame trống Nếu không tìm frame trống, PFSR bổ sung để thay trang 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 bị thay (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 10 Thrashing (1/3) Khi process không cấp đủ số frame cần thiết số page faults/sec cao hiệu suất CPU thấp Ví dụ: vòng lặp N lần, lần tham chiếu đến đòa nằm trang nhớ, process cấp frame Chuỗi tham chiếu trang: 3 3… gây N page fault Thrashing: tượng trang nhớ process bò hoán chuyển vào/ra liên tục 23 Thrashing (2/3) 24 Thrashing (3/3) Để hạn chế thrashing, hệ điều hành phải cung cấp cho process “đủ” frame Bao nhiêu frame đủ cho process thực thi hiệu quả? 25 Nguyên lý locality (1/3) Nguyên lý locality (locality principle) Spatial locality: if a given address is accessed, nearby addresses will also be accessed Temporal locality: if a given address was referenced, it will be referenced again soon 26 Nguyên lý locality (2/3) Process gồm nhiều locality, 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 toàn cục Khi thủ tục kết thúc, process thoát khỏi locality (và quay lại sau này) 27 Các số trang trình tham khảo Nguyên lý locality (3/3) time Hình từ “The locality principle”, P.J.Denning 28 Hạn chế thrashing: Giải pháp working set (1/4) Giải pháp working set, gọi working set model, thiết kế dựa nguyên lý locality Cần xác đònh process “thực sự” sử dụng frame Tham số working-set window xác đònh số lượng tham chiếu trang nhớ process gần cần quan sát Ví dụ =4 chuỗi tham khảo trang nhớ 24569132639214 thời điểm t1 29 Định nghĩa working set window Các số trang trình tham khảo time t Hình từ “The locality principle”, P.J.Denning 30 Hạn chế thrashing: Giải pháp working set (2/4) Đònh nghóa: working set process Pi , ký hiệu WSi , tập số trang working set window (Thời điểm t tham số đònh nghóa.) Ví dụ: = 10 chuỗi tham khảo trang Nhận xét: nhỏ không đủ bao phủ toàn locality lớn bao phủ nhiều locality khác = bao gồm tất trang sử dụng 31 Chuỗi tham khảo trang; “” : trang tham khảo Nếu nhỏ working set thay đổi liên tục Ví dụ: = 2, working set gồm trang màu xám Fig from Feitelson 32 Nếu thích hợp working set không (hay ít) thay đổi Ví dụ: chuỗi tham khảo trang, = Fig from Feitelson 33 Hạn chế thrashing: Giải pháp working set (3/4) Đò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) = 34 Hạn chế thrashing: Giải pháp working set (4/4) Đặt D = WSSi = tổng working-set size process hệ thống Nhận xét: Nếu D > m, 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 số lượng frame thỏa mản working-set size Nếu D > m suspend process Các trang process chuyển đóa cứng frame thu hồi 35 Xấp xỉ working set Giả sử hardware hỗ trợ reference bit cho page: page tham chiếu, reference bit set thành Dùng interval timer reference bit để xấp xỉ working set Ví dụ: = 10.000 Timer interrupt đònh kỳ, sau 5000 đơn vò thời gian Giữ nhớ 10.000/5.000 = 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 bit chứa thuộc working set reference bit copy history bits 36 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 37 [...]... 1 2 3 0 1 2 3 0 1 2 3… gây ra ít nhất N page fault Thrashing: hiện tượng các trang nhớ của một process bò hoán chuyển vào/ra liên tục 23 Thrashing (2/3) 24 Thrashing (3/3) Để hạn chế thrashing, hệ điều hành phải cung cấp cho process “đủ” frame Bao nhiêu frame thì đủ cho một process thực thi hiệu quả? 25 Nguyên lý locality (1/3) Nguyên lý locality (locality principle) Spatial locality: if a... sự” sử dụng bao nhiêu frame Tham số của working-set window xác đònh số lượng các tham chiếu trang nhớ của process gần đây nhất cần được quan sát Ví dụ =4 chuỗi tham khảo trang nhớ 245 691 326 392 14 thời điểm t1 29 Định nghĩa bởi working set window Các số trang được quá trình tham khảo time t Hình từ “The locality principle”, P.J.Denning 30 Hạn chế thrashing: Giải pháp working set (2/4) Đònh nghóa:... tham chiếu bộ nhớ (memory reference string) và xác đònh số lần xảy ra page fault • Ví dụ Chuỗi tham chiếu các đòa chỉ nhớ (hệ thống thập phân), với page size = 100: • 0100, 0432, 0101, 0612, 0102, 0103, 0104, 0101, 0611, 0102, 0103, 0104, 0101, 0610, 0102, 0103, 0104, 0101, 06 09, 0102, 0105 chuỗi tham chiếu trang nhớ • 1, 4, 1, 6, 1, 6, 1, 6, 1, 6, 1 Frame-allocation algorithm Cấp phát cho process... = 10 và chuỗi tham khảo trang WSS(t1) = 5 WSS(t2) = 2 34 Hạn chế thrashing: Giải pháp working set (4/4) Đặt D = WSSi = tổng các working-set size của mọi process trong hệ thống Nhận xét: Nếu D > m, m là số frame của hệ thống, thì sẽ xảy ra thrashing Giải pháp working set Khi khởi tạo một quá trình: cung cấp số lượng frame thỏa mản working-set size của nó Nếu D > m thì suspend một trong... (2/2) Tham chiếu trang 727 18 So sánh LRU, FIFO, và Clock chuỗi tham chiếu trang nhớ Dấu *: “use bit” tương ứng được thiết lập trò 1 Một số kết quả thực nghiệm cho thấy Clock có hiệu suất gần với LRU 19 Nhìn lại Tách biệt chính sách và cơ chế trong kỹ thuật bộ nhớ ảo Các chính sách thay trang: LRU, FIFO, Clock,… Cơ chế paging: được xây dựng với frame, page, page table, page fault,… 20 Số lượng... từng ứng dụng (kích thước của nó, độ ưu tiên…) Chiến lược cấp phát động (variable allocation) Số frame cấp cho mỗi process có thể thay đổi trong khi nó chạy OS phải tốn chi phí (overhead) để theo dõi hành vi của các process (vd số lượng page fault của process trong mỗi đơn vò thời gian) 21 Chiến lược cấp phát tónh Cấp phát bằng nhau Ví dụ, có 100 frame và 5 process thì mỗi process được 20 frame... 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 s1 10 m total number of frames ai allocation for pi si m S s2 127 10 64 5 137 127 a2 64 59 137 a1 22 Thrashing (1/3) Khi một process không được cấp đủ số frame cần thiết thì số page faults/sec cao hiệu suất CPU thấp Ví dụ: một vòng lặp N lần, mỗi lần tham chiếu đến đòa chỉ nằm trong... trang của process được chuyển ra đóa cứng và các frame của nó được thu hồi 35 Xấp xỉ working set Giả sử hardware hỗ trợ một reference bit cho mỗi page: khi page được tham chiếu, reference bit được set thành 1 Dùng interval timer và reference bit để xấp xỉ working set Ví dụ: = 10.000 Timer interrupt đònh kỳ, sau mỗi 5000 đơn vò thời gian Giữ trong bộ nhớ 10.000/5.000 = 2 bit (history bits) cho