BÀI 8 BỘ NHỚ ẢO
Số trang: 7
Loại file: pdf
Dung lượng: 360.63 KB
Lượt xem: 16
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
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?? 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...
Nội dung trích xuất từ tài liệu:
BÀI 8 BỘ NHỚ ẢO BÀI 8 BỘ NHỚ ẢO GROUP6789.COM I. TẠI - Không nhất thiết tất cả các phần trong process được nạp vào bộ SAO nhớ chính tại cùng một thời điểm. PHẢI - Nêu nạp tất cả chương trình vào bộ nhớ chính cũng chưa chắc CẦN rằng chúng sử dụng cùng lúc. BỘ - Có nên chăng lưu trữ một số thứ trong process mà lâu lâu mới NHỚ xài tới?? ẢOII. BỘ NHỚ - Cho phép thực thi một quá trình mà chỉ cần giữ lại một phần ẢO của không gian địa chỉ luận lý của nó trong bộ nhớ chính (giữ(VITRUAL mấy địa chỉ cần thiết), còn lại giữ trên bộ nhớ phụ (đĩa)MEMORY) - 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 - Sự hỗ trợ của phần cứng đối với việc phân trang đã được nóiCỨNG HỖ ở chương trước. TRỢ BỘ - Mỗi mục của bảng trang còn kèm thêm các bit trạng thái đặc NHỚ ẢO 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 - Hiện thực bộ nhớ ảo là công việc chuyển đổi các trang từTHỰC BỘ bộ nhớ ảo sang bộ nhớ thực khi được yêu cầu.NHỚ ẢO 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ậpV. HIỆN - Có 2 vấn đề cần giải quyết:THỰC 1. Cấp phát cho process bao nhiêu frame của bộ nhớ thực?DEMAND 2. Giải thuật thay thế trang như thế nào là phù hợp?PAGING - 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 FIFO (tới trước thay trước)GIẢI THUẬT Hình vẽ bên dưới nhé! THAY Hàng đầu tiên là chuỗi tham chiếu TRANG 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ố Pag ...
Nội dung trích xuất từ tài liệu:
BÀI 8 BỘ NHỚ ẢO BÀI 8 BỘ NHỚ ẢO GROUP6789.COM I. TẠI - Không nhất thiết tất cả các phần trong process được nạp vào bộ SAO nhớ chính tại cùng một thời điểm. PHẢI - Nêu nạp tất cả chương trình vào bộ nhớ chính cũng chưa chắc CẦN rằng chúng sử dụng cùng lúc. BỘ - Có nên chăng lưu trữ một số thứ trong process mà lâu lâu mới NHỚ xài tới?? ẢOII. BỘ NHỚ - Cho phép thực thi một quá trình mà chỉ cần giữ lại một phần ẢO của không gian địa chỉ luận lý của nó trong bộ nhớ chính (giữ(VITRUAL mấy địa chỉ cần thiết), còn lại giữ trên bộ nhớ phụ (đĩa)MEMORY) - 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 - Sự hỗ trợ của phần cứng đối với việc phân trang đã được nóiCỨNG HỖ ở chương trước. TRỢ BỘ - Mỗi mục của bảng trang còn kèm thêm các bit trạng thái đặc NHỚ ẢO 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 - Hiện thực bộ nhớ ảo là công việc chuyển đổi các trang từTHỰC BỘ bộ nhớ ảo sang bộ nhớ thực khi được yêu cầu.NHỚ ẢO 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ậpV. HIỆN - Có 2 vấn đề cần giải quyết:THỰC 1. Cấp phát cho process bao nhiêu frame của bộ nhớ thực?DEMAND 2. Giải thuật thay thế trang như thế nào là phù hợp?PAGING - 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 FIFO (tới trước thay trước)GIẢI THUẬT Hình vẽ bên dưới nhé! THAY Hàng đầu tiên là chuỗi tham chiếu TRANG 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ố Pag ...
Gợi ý tài liệu liên quan:
-
Giáo trình Lý thuyết hệ điều hành: Phần 1 - Nguyễn Kim Tuấn
110 trang 453 0 0 -
52 trang 430 1 0
-
Top 10 mẹo 'đơn giản nhưng hữu ích' trong nhiếp ảnh
11 trang 313 0 0 -
74 trang 296 0 0
-
96 trang 292 0 0
-
Báo cáo thực tập thực tế: Nghiên cứu và xây dựng website bằng Wordpress
24 trang 289 0 0 -
Đồ án tốt nghiệp: Xây dựng ứng dụng di động android quản lý khách hàng cắt tóc
81 trang 280 0 0 -
173 trang 275 2 0
-
EBay - Internet và câu chuyện thần kỳ: Phần 1
143 trang 275 0 0 -
175 trang 272 0 0