1. Trang chủ
  2. » Công Nghệ Thông Tin

Chuong08 virtualmemory

30 399 0

Đ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

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?  • 0100, 0432, 0101, 0612, 0102, 0103, 0104, 0101, 0611, 0102, 0103, 0104, 0101, 0610, 0102, 0103, 0104, 0101, 0609, 0102, 0105 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 Ví dụ Thứ tự tham chiếu đòa nhớ, với page size = 100: ⇒ Khoa KTMT 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 ⇒ 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 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 = size of process pi Ví dụ: m = 64 S = ∑ si si = 10 m = total number of frames  s =phát theo độ ưu i tiêni × m allocation for p = Cấp S Khoa KTMT s2 = 127 10 a1 = × 64 ≈ 137 127 a2 = × 64 ≈ 59 137 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) Giả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 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 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) ⇒ 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 ⇒ 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 tố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

Ngày đăng: 10/07/2016, 09:52

Xem thêm: Chuong08 virtualmemory

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN