Hệ điều hành 1 - Chương 8: Bộ nhớ ảo

32 54 0
Hệ điều hành 1 - Chương 8: Bộ nhớ ảo

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Nhận xét: không phải tất cả các phần của một process cần thiết phải được nạp vào bộ nhớ chính tại cùng một thời điểm Ví dụ: Đoạn mã điều khiển các lỗi hiếm khi xảy ra Các arrays, list, tables được cấp phát bộ nhớ (cấp phát tĩnh) nhiều hơn yêu cầu thực sự Một số tính năng...

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 Khoa KTMT Tại cần có nhớ ảo Nhìn lại paging?và 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ớ Khoa KTMT 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 toàn chương trình cần dùng không cần dùng toàn lúc Khoa KTMT Bộ nhớ ảo (2)  Bộ nhớ ảo (virtual memory) – Cơ chế thực 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ý nó, 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 nhớ thực Khoa KTMT 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 Khoa KTMT  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 Khoa KTMT  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 Khoa KTMT 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à nhớ (present bit = 0) phần cứng gây ngắt (gọi page-fault trap) kích khởi pagefault 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 Page fault bước xử lý Khoa KTMT 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 Khoa KTMT Giải thuật thay trang clock (2) Khoa KTMT 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 Khoa KTMT  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 Khoa KTMT 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 si = 10 m = total number of frames 10 a1 = × 64 ≈ 137 127 a2 = × 64 ≈ 59 137 si = allocation for pi = × m S Khoa KTMT s2 = 127 Thrashing  Nếu process đủ 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 caáp frames frames 123 023 013 012 Thời gian 3 Thrashing: tượng trang nhớ process bị Process có trang, cấp phát frame Chuỗi tham chiếu trang: 123023013012312  hoán chuyển vào/ra liên tục Khoa KTMT Thrashing diagram Khoa KTMT 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 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)  Vì tượng thrashing xuất hiện? Khi Σ size of locality > memory size Khoa KTMT 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ụ: ∆=4 chuỗi tham khảo 24569132639214 trang nhớ thời điểm t1 Khoa KTMT Hạn chế thrashing: Giải pháp working set (2)  Định nghóa: working set process P i , 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ỏ ⇒ 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 Dùng working set process để xấp xỉ locality Khoa KTMT 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) = Khoa KTMT WSS(t2) = 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 workingset size – Nếu D > m ⇒ suspend process  Các trang trình chuyển đóa cứng frame thu hồi Khoa KTMT Xấp xỉ working set    Theo định nghóa, trang working set 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 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 Khoa KTMT Hạn chế thrashing: Điều khiển pagefault 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 Khoa KTMT 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 nhớ , segment fault Khoa KTMT ... chiếu địa nhớ, với page size = 10 0: ⇒ 0432, 010 3, 010 2, 0 610 , 010 1, 010 1, 010 4, 010 3, 010 2, 0609, 0 612 , 010 1, 010 4, 010 3, 010 2, 010 5 trang nhớ sau tham chiếu = chuỗi tham chiếu nhớ (trang nhớ) •... chiếu nhớ (trang nhớ) • • • • • 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 6, 6, 6, 6, 1, 1, 1, 1, Giải thuật thay trang OPT(optimal)  Giải thuật thay trang OPT – Thay trang nhớ tham chiếu trễ tương lai... dùng chương trình • Ngay toàn chương trình cần dùng không cần dùng toàn lúc Khoa KTMT Bộ nhớ ảo (2)  Bộ nhớ ảo (virtual memory) – Cơ chế thực hệ điều hành phép thực thi trình mà cần giữ nhớ phần

Ngày đăng: 08/05/2021, 17:46

Mục lục

  • Chương 8 Bộ Nhớ Ảo

  • Nội dung trình bày

  • Tại sao cần có bộ nhớ ảo ?

  • Bộ nhớ ảo (1)

  • Bộ nhớ ảo (2)

  • Bộ nhớ ảo (3)

  • Tổng quan về hiện thực bộ nhớ ảo

  • Phần cứng hỗ trợ bộ nhớ ảo

  • Hiện thực bộ nhớ ảo: demand paging

  • Page fault và các bước xử lý

  • Thay thế trang nhớ (1)

  • Thay thế trang nhớ (2)

  • Hiện thực demand paging

  • Giải thuật thay trang OPT(optimal)

  • Giải thuật thay trang Least Recently Used (LRU)

  • Giải thuật thay trang FIFO

  • Giải thuật FIFO: Belady’s anomaly

  • Giải thuật thay trang clock (1)

  • Giải thuật thay trang clock (2)

  • So sánh LRU, FIFO, và clock

Tài liệu cùng người dùng

Tài liệu liên quan