Bài giảng Nguyên lý hệ điều hành: Chương 9 - Phạm Quang Dũng

11 112 0
Bài giảng Nguyên lý hệ điều hành: Chương 9 - Phạm Quang Dũng

Đ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 9 của bài giảng Nguyên lý hệ điều hành giới thiệu về bộ nhớ ảo trong hệ điều hành. Các nội dung chính được trình bày trong chương này gồm: Phân trang theo yêu cầu - Demand paging, thay trang - Page replacement, phân phối các frames - Allocation of frames, thrashing, phân đoạn theo yêu cầu - Demand segmentation. Mời các bạn tham khảo.

Nội dung chương BÀI GIẢNG NGUYÊN LÝ HỆ ĐIỀU HÀNH „ Kiến thức „ Phân trang theo yêu cầu - Demand Paging „ Thay trang - Page Replacement Chương 9: Bộ nhớ ảo „ Phân phối Frames - Allocation of Frames Phạm Quang Dũng Bộ môn Khoa học máy tính Khoa Cơng nghệ thơng tin Trường Đại học Nông nghiệp Hà Nội Website: fita.hua.edu.vn/pqdung „ Thrashing „ Phân đoạn theo yêu cầu - Demand Segmentation Bài giảng Nguyên lý Hệ điều hành Mục tiêu 9.2 Phạm Quang Dũng ©2008 9.1 Kiến thức „ Virtual memory – tách riêng nhớ logic người sử „ Mơ tả lợi ích nhớ ảo dụng khỏi nhớ vật lý z Kích thước nhớ vật lý có hạn ⇒ giới hạn kích thước ch.trình „ Giải thích khái niệm phân trang theo yêu cầu, z Thực tế, phần chương trình cần phải đưa vào nhớ (vật lý) để thực ⇒ chứa chương trình đâu? – VIRTUAL MEMORY – phần đĩa cứng quản lý RAM giải thuật thay trang, phân phối page frame z Do khơng gian địa logic lớn khơng gian địa vật lý nhiều ⇒ cung cấp nhớ lớn cho người lập trình z Cho phép số tiến trình chia sẻ khơng gian địa z Cho phép tạo tiến trình hiệu „ Bộ nhớ ảo thực thi thơng qua: z Demand paging (Windows, Linux…) z Demand segmentation (IBM OS/2) Bài giảng Nguyên lý Hệ điều hành 9.3 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 9.4 Phạm Quang Dũng ©2008 Bộ nhớ nhớ ảo lớ lớn bộ nhớ nhớ vật lý Không gian địa ảo tiến trình - Là cách nhìn logic (ảo) cách mà tiến trình lưu nhớ - Tiến trình lưu vùng nhớ liên tục, dù thực tế nhớ vật lý lưu page frame không liên tục - MMU đảm nhận việc ánh xạ trang logic vào page frame nhớ vật lý (page table for demand paging) disk (cache for disk) kích thước nhớ ảo bị giới hạn dung lượng đĩa Bài giảng Nguyên lý Hệ điều hành 9.5 Phạm Quang Dũng ©2008 Shared Library Using Virtual Memory Bài giảng Nguyên lý Hệ điều hành 9.6 Phạm Quang Dũng ©2008 9.2 Phân trang theo yêu cầu „ Đưa trang vào nhớ cần đến z Cần thao tác vào-ra z Cần nhớ z Đáp ứng nhanh hơn: tiến trình bắt đầu sau số trang tối thiểu nạp vào nhớ z Nhiều người sử dụng/tiến trình hơn: tiến trình dùng nhớ „ Khi trang cần đến (khi tiến trình tham chiếu đến nó) z tham chiếu khơng hợp lệ ⇒ hủy bỏ z không nhớ ⇒ đưa vào nhớ z có nhớ ⇒ truy nhập Bài giảng Nguyên lý Hệ điều hành 9.7 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 9.8 Phạm Quang Dũng ©2008 Valid-Invalid Bit Chuyể Chuyển mộ vù vùng nhớ nhớ phân trang tớ tới không gian đĩ đĩa „ Mỗi phần tử bảng phân trang gắn thêm valid– invalid bit (1 ⇒ có nhớ, ⇒ không nhớ) „ Ban đầu khởi tạo tất v–inv bit „ Ví dụ bảng phân trang: Frame # valid-invalid bit 1 1 M 0 Demand paging ⇔ Paging with swapping „ Khi thông dịch địa chỉ, v–inv bit ⇒ page fault However, Demand paging use a lazy swapper Bài giảng Nguyên lý Hệ điều hành Phạm Quang Dũng ©2008 9.9 Bảng phân trang mộ số số trang không bộ nhớ nhớ chí Bài giảng Nguyên lý Hệ điều hành 9.10 Phạm Quang Dũng ©2008 Các bước xử lý page fault Khi có tham chiếu tới trang, tham chiếu lập bẫy tới HĐH ⇒ phát page fault HĐH tìm bảng khác để định: Bộ nhớ logic tiến trình kết thúc z tham chiếu không hợp lệ ⇒ hủy bỏ z khơng có nhớ ⇒ đưa vào nhớ Các trang không sử dụng (tham chiếu khơng hợp lệ) Nhận frame rỗi Copy/Hốn đổi trang vào frame Cập nhật lại bảng phân trang (thiết lập v-inv bit = 1), cập nhật disk danh sách frame rỗi Khởi động lại lệnh gây page fault Bài giảng Nguyên lý Hệ điều hành 9.11 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 9.12 Phạm Quang Dũng ©2008 Các bước xử lý page fault (tiếp) Hiệu phân trang theo yêu cầu „ Tỷ lệ Page Fault - p : ≤ p ≤ z p=0 : khơng có page faults; z p=1 : tham chiếu fault „ Thời gian truy nhập hiệu quả-Effective Access Time (EAT) EAT = (1 – p) x ma + p x [thời gian xử lý page-fault] Trong đó: + ma: memory access - thời gian truy nhập nhớ (10-200 ns) + thời gian xử lý page-fault: gồm vấn đề chính: - phục vụ ngắt page-fault (1-100 μs, giảm coding) - đọc trang vào nhớ ( ≈ ms) - khởi động lại tiến trình (1-100 μs, giảm coding) Bài giảng Nguyên lý Hệ điều hành Phạm Quang Dũng ©2008 9.13 Ví dụ Bài giảng Nguyên lý Hệ điều hành 9.14 Phạm Quang Dũng ©2008 Điề Điều gì xảy khơng có có frame rỗ rỗi? „ Thời gian xử lý page-fault: ms „ Thay trang – tìm số trang nhớ không sử dụng để đưa „ Thời gian truy nhập nhớ (ma): 200 ns „ EAT = (1-p) x 200 + p x 8,000,000 ns z giải thuật? = 200 + 7,999,800 x p ns z hiệu năng? – muốn có giải thuật tác động đến số lượng Nếu 1000 truy nhập có page fault, EAT = 8.2 ms Máy tính chậm 40 lần phân trang có yêu cầu tối thiểu page faults „ Một trang đưa vào nhớ nhiều lần „ EAT tỷ lệ trực tiếp với tỷ lệ page-fault, p lớn EAT lớn → máy chậm „ Muốn hiệu giảm 10%, ta cần có: 220 > 200 + 7,999,800 x p → p < 0.0000025 Bài giảng Nguyên lý Hệ điều hành 9.15 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 9.16 Phạm Quang Dũng ©2008 9.3 Thay trang Page Replacement Các bước thay trang: Tìm vị trí trang yêu cầu đĩa Tìm frame rỗi: - Nếu có frame rỗi sử dụng - Nếu khơng có, sử dụng giải thuật thay trang để chọn frame nạn nhân Đưa trang yêu cầu vào frame rỗi Cập nhật bảng phân trang bảng quản lý frame rỗi Khởi động lại tiến trình Bài giảng Nguyên lý Hệ điều hành 9.17 Phạm Quang Dũng ©2008 Các giải thuật thay trang Bài giảng Nguyên lý Hệ điều hành 9.18 Phạm Quang Dũng ©2008 Đồ thị thị liên hệ hệ giữ Page Faults số Frame „ Mục đích: tỷ lệ page-fault thấp „ Đánh giá giải thuật cách chạy chuỗi cụ thể tham chiếu nhớ tính số page faults chuỗi „ Trong tất ví dụ, chuỗi tham chiếu 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, Bài giảng Nguyên lý Hệ điều hành 9.19 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 9.20 Phạm Quang Dũng ©2008 a) First-In-First-Out (FIFO) Algorithm FIFO Page Replacement „ Chuỗi tham chiếu: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, „ frames (với tiến trình: trang nạp vào nhớ thời điểm) „ frames 1 2 3 1 2 10 page faults 3 4 page faults „ FIFO Replacement – Sự bất thường Belady z nhiều frames ⇒ nhiều page faults Bài giảng Nguyên lý Hệ điều hành 9.21 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành Minh họa bất thường Belady 9.22 Phạm Quang Dũng ©2008 b) Optimal Algorithm „ Thay trang có thời gian không sử dụng đến lâu „ ví dụ frames 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, page faults „ Làm cách để biết trang không sử dụng nữa? → Không thể biết „ Được sử dụng làm tiêu chuẩn đánh giá giải thuật khác Bài giảng Nguyên lý Hệ điều hành 9.23 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 9.24 Phạm Quang Dũng ©2008 Optimal Page Replacement c) Least Recently Used (LRU) Algorithm „ Thay trang có khoảng thời gian khơng dùng lâu „ Chuỗi tham chiếu: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 1 1 2 2 5 4 4 3 page faults Sự thực Bộ đếm (Counter) z Mọi phần tử bảng có đếm, thời điểm trang tham chiếu qua phần tử bảng này, copy clock vào đếm z Khi trang cần hốn đổi, tìm đếm để xác định trang làm nạn nhân Bài giảng Nguyên lý Hệ điều hành 9.25 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành LRU Page Replacement 9.26 Phạm Quang Dũng ©2008 LRU Algorithm (tiếp) Sử dụng Stack z Dùng stack số trang z Khi trang tham chiếu:  chuyển lên đỉnh ⇒ trang khơng dùng lâu đáy  dùng danh sách liên kết kép, cần trỏ để đổi trang z „ Cách xác định trang không sử dụng lâu nhất? Sử dụng Bộ đếm (Counter) z Mọi phần tử bảng có đếm, thời điểm trang tham chiếu qua phần tử bảng này, copy clock vào đếm z Khi trang cần hốn đổi, tìm đếm để xác định trang làm nạn nhân Bài giảng Nguyên lý Hệ điều hành 9.27 Phạm Quang Dũng ©2008 Khơng cần tìm kiếm để thay Bài giảng Nguyên lý Hệ điều hành 9.28 Phạm Quang Dũng ©2008 d) Các giải thuật tương tự LRU Giả Giải thuậ thuật thay trang "cơ "cơ hộ hội thứ thứ hai" „ Giải thuật dùng thêm bit tham chiếu z Gắn bit vào trang, khởi tạo = z Khi trang tham chiếu, bit thiết lập = z Thay trang có bit tham chiếu = 0, có tồn „ Giải thuật hội thứ hai (Second chance) z Cần có bit tham chiếu Nếu bit tham chiếu = thay trang Trái lại cho trang hội thứ hai chuyển đến trang tiếp sau  thiết lập bit tham chiếu =  để trang lại nhớ  thay trang (theo FIFO) với luật tương tự z Một cách thực giải thuật sử dụng queue vòng tròn Bài giảng Nguyên lý Hệ điều hành 9.29 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành „ Least Frequently Used (LFU) Algorithm: thay trang đếm (có tần số truy nhập nhỏ nhất) Phạm Quang Dũng ©2008 9.4 Phân phối Frame e) Cá Các giả giải thuậ thuật dự dựa số số liệ liệu thố thống kê „ Dành đếm số tham chiếu đến trang 9.30 „ Mỗi tiến trình cần số lượng trang tối thiểu để thực „ Ví dụ: IBM 370 – cần trang để thực lệnh SS MOVE: z lệnh độ dài bytes, chứa trang „ Most Frequently Used (MFU) Algorithm: thay trang đếm nhiều (có tần số truy nhập cao nhất), dựa lý luận trang đếm vừa đưa vào nhớ chưa kịp sử dụng z trang để thực from z trang để thực to „ Hai cách phân phối chính: z phân phối cố định (fixed allocation) z phân phối theo mức ưu tiên (priority allocation) Bài giảng Nguyên lý Hệ điều hành 9.31 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 9.32 Phạm Quang Dũng ©2008 Phân phối cố định Phân phối theo mức ưu tiên Phân phối công – vd có 100 frames tiến trình, cho tiến trình 20 trang z chọn thay số frame z frame thay vào chọn từ tiến trình có mức ưu Phân phối theo kích thước tiến trình si = size of process pi S = ∑ si m = total number of frames s = allocation for pi = i × m S Bài giảng Nguyên lý Hệ điều hành 9.33 „ Nếu tiến trình Pi phát sinh page fault, tiên thấp m = 64 si = 10 s2 = 127 10 × 64 ≈ 137 127 a2 = × 64 ≈ 59 137 a1 = Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 9.34 Phạm Quang Dũng ©2008 Global vs Local Allocation 9.5 Thrashing „ Global replacement – tiến trình chọn frame thay „ Nếu tiến trình khơng có “đủ” trang, tỷ lệ page fault từ tập tất frame; tiến trình lấy cao Điều dẫn đến: z sử dụng CPU thấp frame từ tiến trình khác z HĐH cho cần phải tăng mức đa chương trình „ Local replacement – tiến trình chọn frame thay từ tập frame phân phối cho z tiến trình khác thêm vào hệ thống, cố gắng giành frame từ tiến trình thực ⇒ tỷ lệ page fault tăng… „ Thrashing ≡ tiến trình nhiều thời gian (bận rộn) với việc hoán đổi trang vào-ra thời gian thực Bài giảng Nguyên lý Hệ điều hành 9.35 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 9.36 Phạm Quang Dũng ©2008 Thrashing (tiếp) Lược đồ tần số Page-Fault „ Thiết lập tỷ lệ page-fault “có thể chấp nhận được” z Nếu tỷ lệ thực tế thấp, tiến trình làm frame z Nếu tỷ lệ thực tế cao, tiến trình tăng thêm frame Bài giảng Nguyên lý Hệ điều hành 9.37 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành Windows XP Phạm Quang Dũng ©2008 Solaris „ Sử dụng phân trang theo yêu cầu có phân cụm (clustering): đưa vào nhớ fauling page số trang tiếp sau „ Các tiến trình ấn định working set minimum working set maximum „ Working set minimum số lượng trang nhỏ mà tiến trình „ Duy trì danh sách trang rỗi để gán faulting process „ Lotsfree – tham số ngưỡng (dung lượng nhớ rỗi) để bắt đầu phân trang „ Desfree – tham số ngưỡng để tăng phân trang „ Minfree – tham số ngưỡng để thực swapping đảm bảo có nhớ „ Một tiến trình gán cho nhiều trang tốt khơng vượt q working set maximum „ Phân trang thực tiến trình pageout „ Pageout quét trang sử dụng giải thuật clock có sửa đổi „ Khi dung lượng nhớ rỗi hệ thống nhỏ ngưỡng, automatic working set trimming thực để khôi phục lại dung lượng nhớ rỗi „ Working set trimming loại bỏ số trang tiến trình vượt „ Scanrate tốc độ trang quét Dải từ slowscan đến fastscan „ Pageout gọi thường xuyên phụ thuộc vào dung lượng nhớ rỗi khả dụng working set minimum chúng Bài giảng Nguyên lý Hệ điều hành 9.38 9.39 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 9.40 Phạm Quang Dũng ©2008 10 Solaris Page Scanner End of Chapter Bài giảng Nguyên lý Hệ điều hành 9.41 Phạm Quang Dũng ©2008 11 ... chúng Bài giảng Nguyên lý Hệ điều hành 9. 38 9. 39 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 9. 40 Phạm Quang Dũng ©2008 10 Solaris Page Scanner End of Chapter Bài giảng Nguyên lý Hệ điều. .. 3, 4, 1, 2, 5, 1, 2, 3, 4, Bài giảng Nguyên lý Hệ điều hành 9. 19 Phạm Quang Dũng ©2008 Bài giảng Nguyên lý Hệ điều hành 9. 20 Phạm Quang Dũng ©2008 a) First-In-First-Out (FIFO) Algorithm FIFO... ≈ ms) - khởi động lại tiến trình ( 1-1 00 μs, giảm coding) Bài giảng Nguyên lý Hệ điều hành Phạm Quang Dũng ©2008 9. 13 Ví dụ Bài giảng Nguyên lý Hệ điều hành 9. 14 Phạm Quang Dũng ©2008 Điề Điều

Ngày đăng: 30/01/2020, 01:28

Từ khóa liên quan

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

Tài liệu liên quan