Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 37 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
37
Dung lượng
596,94 KB
Nội dung
Chương 8: Thay Thế Trang CuuDuongThanCong.com https://fb.com/tailieudientucntt 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ớ CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt Bộ nhớ ảo (2/3) 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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, 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt Page fault bước xử lý CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 chieá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 CuuDuongThanCong.com https://fb.com/tailieudientucntt 23 Thrashing (2/3) CuuDuongThanCong.com https://fb.com/tailieudientucntt 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ả? CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt 26 Nguyeâ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) CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt 32 Nếu thích hợp working set không (hay ít) thay đổi Ví dụ: chuỗi tham khảo trang, nhöng = Fig from Feitelson CuuDuongThanCong.com https://fb.com/tailieudientucntt 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) = CuuDuongThanCong.com WSS(t2) = https://fb.com/tailieudientucntt 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 theâm frame 37 CuuDuongThanCong.com https://fb.com/tailieudientucntt ... page table chuyển process trạng thái ready CuuDuongThanCong. com https://fb .com/ tailieudientucntt Page fault bước xử lý CuuDuongThanCong. com https://fb .com/ tailieudientucntt Thay trang nhớ (1/2)... table frame table tương ứng CuuDuongThanCong. com https://fb .com/ tailieudientucntt 10 Thay trang nhớ (2/2) frame # valid-invalid bit CuuDuongThanCong. com https://fb .com/ tailieudientucntt 11 Hiện... CuuDuongThanCong. com https://fb .com/ tailieudientucntt 15 Giải thuật FIFO: Belady’s anomaly Số page fault tăng trình cấp nhiều frame CuuDuongThanCong. com https://fb .com/ tailieudientucntt