BÀI 8 BỘ NHỚ ẢO pdf

7 593 6
BÀI 8 BỘ NHỚ ẢO pdf

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

Thông tin tài liệu

BÀI 8 BỘ NHỚ ẢO GROUP6789.COM I. TẠI SAO PHẢI CẦN BỘ NHỚ ẢO - Không nhất thiết tất cả các phần trong process được nạp vào bộ nhớ chính tại cùng một thời điểm. - Nêu nạp tất cả chương trình vào bộ nhớ chính cũng chưa chắc rằng chúng sử dụng cùng lúc. - Có nên chăng lưu trữ một số thứ trong process mà lâu lâu mới xài tới?? II. BỘ NHỚ ẢO (VITRUAL MEMORY) - Cho phép thực thi một quá trình mà chỉ cần giữ lại một phần của không gian địa chỉ luận lý của nó trong bộ nhớ chính (giữ mấy địa chỉ cần thiết), còn lại giữ trên bộ nhớ phụ (đĩa) - Thông thường những phần chưa cần nạp vào bộ nhớ chính thì được giữ lại tại một vùng đặc biệt trên đĩa gọi là swap space - Ưu điểm:  Số lượng process trong bộ nhớ nhiều hơn. (đa nhiệm)  Process có thể được thực thi mặc dù kích thước của nó lớn hơn bộ nhớ thực. III. PHẦN CỨNG HỖ TRỢ BỘ NHỚ ẢO - Sự hỗ trợ của phần cứng đối với việc phân trang đã được nói ở chương trước. - Mỗi mục của bảng trang còn kèm thêm các bit trạng thái đặc biệt:  Present bit: nếu =1 là trang hợp lệ và hiện trong memory, nếu =0 là trang không hợp lệ hoặc không có trong memory  Modified bit: cho biết trang này có thay đổi kể từ khi nạp vào bộ nhớ hay không. IV. HIỆN THỰC BỘ NHỚ ẢO - Hiện thực bộ nhớ ảo là công việc chuyển đổi các trang từ bộ nhớ ảo sang bộ nhớ thực khi được yêu cầu. Demand paging: các trang của quá trình chi được nạp vào bộ nhớ chính khi có yêu cầu. - -Khi có một tham chiếu đến trang mà trong đó không nằm trong bộ nhớ chính (present bit =0) thì phần cứng sẽ gây ra một ngắt (page-fault trap) kích khởi page –fault service routine (PFSR) của OS. 1. Chuyền process về trạng thái blocked. 2. Phát yêu cầu đọc đĩa để nạp trang được tham chiếu vào 1 frame trống. Lúc này một process khác vào CPU để thực thi. 3. Sauk hi I/O hoàn tất, đĩa lại gây ra 1 ngắt đến hệ điều hành. PFSR sẽ cập nhật lại pagetable và chuyển process về trạng thái ready. Nhìn vào hình vẽ Bước 1 khi tham chiếu (reference) vào page talbe bị lỗi (trang này không có trong bộ nhớ chính) Bước 2 báo ngắt (trap) về cho hệ điều hành để HĐH xử lí Bước 3 Tìm trang được lưu trữ trong bộ nhớ phụ. Bước 4 Tìm được rồi thì nhét nó vào bộ nhớ vật lý (thông qua frame trống) Bước 5 Reset bảng trang. Bước 6 Khởi động lại việc truy cập. *** Lỡ may không có free Frame thì làm thế nào!!??*** 1. Xác định vị trí của trang đang cần trên đĩa. 2. Tìm một frame trống:  Nếu có frame trống thì dùng nó  Nếu không có frame trống thì dùng một frame nào đó làm vật hi sinh (victim)  Swap victim và trang đang cần với nhau. Lúc này page cần sẽ vào frame của victim. 3. Cập nhật page table và frame table tương ứng. Như hình vẽ ta có Bước 1: swap victim Bước 2: change frame của swap thành invalid Bước 3: Nhét trang cần truy cập vào bộ nhớ vật lý Bước 4: reset page table. Khi đó frame của victim chinh là frame của trang cần truy cập V. HIỆN THỰC DEMAND PAGING - Có 2 vấn đề cần giải quyết: 1. Cấp phát cho process bao nhiêu frame của bộ nhớ thực? 2. Giải thuật thay thế trang như thế nào là phù hợp? - Mục tiêu là làm sao cho lượng page fault nhỏ nhất. - Được đánh giá bằng cách thực thi giải thuật đối với một chuỗi tham chiếu bộ nhớ và xác định số lần xảy ra page fault VI. CÁC GIẢI THUẬT THAY TRANG FIFO (tới trước thay trước) Hình vẽ bên dưới nhé! Hàng đầu tiên là chuỗi tham chiếu Hàng thứ 2,3,4 số khung trang Page Fault được đánh dấu hoa thị. - Đầu tiên là 7 vào, vì trong khung trang chưa có 7 nên nó sẽ báo lỗi, đồng thời add 7 vào frame 1. - Sau đó 0 vào, cũng báo lỗi và được add vào frame 2. - Tương tự 1 được add vào frame 3 - Tiếp theo 2 được xét. Check trong 3 frame không có. Nhưng tại 7 vào đầu tiên nên 2 và 7 sẽ swap cho nhau.(trước đó đã báo lỗi). - Tiếp theo 0 được xét. Vi 0 có trong page frame nên không báo lỗi. - Tiếp theo là 3. Vì 0 là thằng đầu tiên vào trong 3 thằng 2 0 1 nên swap 3 với 0 ta được 2 3 0. Cứ xét như vậy cho đến hết. NGHỊC LÍ BeLady. - Nếu page frame ở ví dụ ít quá (3 Frame) ta có thể tăng lên 4Frame nhằm hạn chết Page Faults. Nhưng kết quả là số Page Faults lại tăng nhiều hơn. Tại sao vậy? - Các page faults phần lớn xảy ra ở khúc đầu, nghĩa là page frame đang trống, và do vậy nếu frame càng nhiều thì càng có nhiều page faults. GIẢI THUẬT OPTIMAL (OPT) Hay còn gọi là giải thuật nhìn về tương lai Mục đích: thay thế trang nhớ sẽ được tham chiếu trễ nhất trong tương lai Giả sử có 1 process chứa 7 trang. Và được cấp 3 frame. Các bước thực hiện như sau. - 3 bước đầu giống với giải thuật FIFO. - Kế tiếp, khi ta cho 2 vào, hãy nhìn đằng trước nó trang nào sẽ được tham chiếu trễ nhất. - Bằng cách đi ngược lại, ta sẽ dễ dàng chọn được 7, vì 1 và 0 được dùng trước cả 7. Nên ta sẽ swap 7 với 2. Lúc này frame chứa 2 0 1. - Tiếp theo, 0 vào không báo lỗi (vì page frame đã chứa 0) - Sau đó 3 vào. Quan sát trên trình tự vào frame thấy trong 3 frame (2,0,1) ta thấy 0 và 2 là 2 trang vào trước, 1 là trang sẽ vào sau, nên ta swap 1 với 3, ta được các frame còn lại là 2 0 3. Cứ làm tương tự. Một mẹo nhỏ khi làm - Trước khi chèn page vào frame, bạn nên kiểm tra frame đó có những page nào. So sánh với trình tự xuất hiện lần lượt sau đó của các page này để thấy được page nào sẽ lâu lâu mới được gọi GIẢI THUẬT LRU (LEAST RECENTLY USED) GT LÂU NHẤT CHƯA SỬ DỤNG. (giải thuật này còn được gọi là nhìn về quá khứ) - Vẫn là một process có 7 page và được cấp 3 frame - 3 lượt đầu, vẫn như các giải thuật khác. - Tiếp theo. Khi page 2 vào. Xét trong 3 frame chứa 3 trang 7,0,1. Ta thấy 7 là thằng lâu nhất chưa được sử dụng. vậy nên ta swap 2 và 7. Lúc này page frame có 2 0 1 (thằng nào chưa có trong page frame làm ơn cho nó 1 cái hoa thị rồi tính tiếp) - Tiếp theo 0 đã có trong frame nên miễn bàn và không page faults - Tiếp theo là page số 3. Nhận thấy trong 3 frame 2, 0, 1 thì 1 chính là thằng lâu lắm rồi không xài, nên đương nhiên là swap 3 với 1. Rõ ràng ta thấy số 0 ở trước số 1 nếu đi theo hướng mũi tên, nhưng hãy cẩn thận nhé, vì 0 mới đung trước 3. Luôn cẩn thận nhé bạn SO SÁNH 2 GIẢI THUẬT LRU VÀ FIFO - Nhìn vào 2 giải thuật. ta thấy số lượng page faults của LRU ít hơn so với của FIFO. Số lượng frame cấp cho mỗi process - Chiến lược cấp phát tĩnh: Cấp phát cố định tại thời điểm ban đầu - Chiến lươc cấp phát động: Số lượng frame có thể thay đổi trong quá trình hoạt động. Hệ điều hành phải mất chi phí để ước tính lỗi trang. 1. Chiến lược cấp phát tĩnh - Cấp phát bằng nhau. - Cấp phát theo tỉ lệ, dựa vào kích thước process (có công thức kèm theo) - Cấp phát theo độ ưu tiên. Có p1,p2,p3. P nào được ưu tiên cao nhất thì được cấp phát nhiều frame TRÌ TRỆ HỆ THỐNG (THRASHIN G) Trashing là. a. Mô hình cục bộ (Locality) Nguyên lý locality: - Là tập các trang được tham chiếu gần nhau nhất. - Một process gồm nhiều locality, và trong quá trình thực thi, process sẽ chuyển từ locality nài sang locality khác - Thrashing xảy ra khi tổng các trang tham chiếu gần nhau nhất lớn hơn kích thước bộ nhớ b. Giải pháp tập làm việc . này có thay đổi kể từ khi nạp vào bộ nhớ hay không. IV. HIỆN THỰC BỘ NHỚ ẢO - Hiện thực bộ nhớ ảo là công việc chuyển đổi các trang từ bộ nhớ ảo sang bộ nhớ thực khi được yêu cầu. Demand. BÀI 8 BỘ NHỚ ẢO GROUP6 789 .COM I. TẠI SAO PHẢI CẦN BỘ NHỚ ẢO - Không nhất thiết tất cả các phần trong process được nạp vào bộ nhớ chính tại cùng một thời.  Số lượng process trong bộ nhớ nhiều hơn. (đa nhiệm)  Process có thể được thực thi mặc dù kích thước của nó lớn hơn bộ nhớ thực. III. PHẦN CỨNG HỖ TRỢ BỘ NHỚ ẢO - Sự hỗ trợ của phần

Ngày đăng: 29/03/2014, 08:20

Từ khóa liên quan

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

Tài liệu liên quan