Bài giảng Hệ điều hành - Chương 7.1: Quản lý bộ nhớ giúp người học Hiểu được các khái niệm cơ sở về bộ nhớ, hiểu được các kiểu địa chỉ nhớ và cách chuyển đổi giữa các kiểu này, hiểu được các cơ chế và mô hình quản lý bộ nhớ. Mời các bạn cùng tham khảo.
HỆ ĐIỀU HÀNH Chương – Quản lý nhớ (1) 14/03/2017 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved Câu hỏi ôn tập chương Nêu điều kiện để thực giải thuật Banker? Nêu bước giải thuật Banker? Nêu bước giải thuật yêu cầu tài nguyên? Nêu bước giải thuật phát deadlock? Khi deadlock xảy ra, hệ điều hành làm để phục hồi? Dựa yếu tổ để chấm dứt trình bị deadlock?? 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved Câu hỏi ôn tập chương (tt) Cho hệ thống có tiến trình P1 đến P4 loại tài nguyên R1 (3), R2 (2) R3 (2) P1 giữ R1 yêu cầu R2; P2 giữ R2 yêu cầu R1 R3; P3 giữ R1 yêu cầu R2; P4 giữ R3 yêu cầu R1 Vẽ đồ thị tài nguyên cho hệ thống này? Deadlock? Chuỗi an tồn? (nếu có) 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved Câu hỏi ôn tập chương (tt) Tìm Need? Hệ thống có an tồn khơng? Nếu P1 u cầu (0,4,2,0) cấp phát cho khơng? 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved Mục tiêu chương 7-1 Hiểu khái niệm sở nhớ Hiểu kiểu địa nhớ cách chuyển đổi kiểu Hiểu chế mơ hình quản lý nhớ 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved Nội dung chương 7-1 Khái niệm sở Các kiểu địa nhớ Chuyển đổi địa nhớ Overlay swapping Mơ hình quản lý nhớ 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved Khái niệm sở Chương trình phải mang vào nhớ đặt tiến trình để xử lý Input Queue – Một tập hợp tiến trình đĩa mà chờ để mang vào nhớ để thực thi User programs trải qua nhiều bước trước xử lý 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved Khái niệm sở (tt) Quản lý nhớ công việc hệ điều hành với hỗ trợ phần cứng nhằm phân phối, sắp xếp process nhớ cho hiệu Mục tiêu cần đạt nạp nhiều process vào nhớ tốt (gia tăng mức độ đa chương) Trong hầu hết hệ thống, kernel chiếm phần cố định nhớ; phần còn lại phân phối cho process 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved Khái niệm sở (tt) Các yêu cầu việc quản lý nhớ Cấp phát nhớ cho process Tái định vị (relocation): swapping,… Bảo vệ: phải kiểm tra truy xuất nhớ có hợp lệ không Chia sẻ: cho phép process chia sẻ vùng nhớ chung Kết gán địa nhớ luận lý user vào địa thực 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved Cấu trúc liệu cho giải thuật Banker Địa vật lý (physical address) (địa thực) vị trí thực nhớ chính Địa luận lý (logical address) vị trí nhớ diễn tả chương trình (còn gọi địa ảo virtual address) Các trình biên dịch (compiler) tạo mã lệnh chương trình mà mọi tham chiếu nhớ địa luận lý Địa tương đối (relative address) (địa khả tái định vị, relocatable address) kiểu địa luận lý địa biểu diễn tương đối so với vị trí xác định chương trình Ví dụ: 12 byte so với vị trí bắt đầu chương trình,… Địa tuyệt đối (absolute address): địa tương đương với địa thực 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved 10 Cơ chế phủ lắp (tt) Pass 70K Pass 80K Symbol table 20K Đơn vị: byte symbol table 20K common routines 30K overlay driver 10K Common routines 30K Assembler Total memory available = 150KB pass pass 80K 70K 11/2/2017 nạp và thực thi Copyrights 2017 CE-UIT All Rights Reserved 23 Cơ chế hoán vị (swapping) Một process tạm thời bị swap khỏi nhớ chính lưu hệ thống lưu trữ phụ Sau đó, process nạp lại vào nhớ để tiếp tục trình thực thi Swapping policy: hai ví dụ Round-robin: swap out P1 (vừa tiêu thụ hết quantum nó), swap in P2 , thực thi P3 ,… Roll out, roll in: dùng chế định thời theo độ ưu tiên (priority-based scheduling) Process có độ ưu tiên thấp bị swap out nhường chỗ cho process có độ ưu tiên cao đến nạp vào nhớ để thực thi Hiện nay, ít hệ thống sử dụng chế swapping 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved 24 Minh họa chế hoán vị 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved 25 Mơ hình quản lý nhớ Trong chương này, mơ hình quản lý nhớ mơ hình đơn giản, khơng có nhớ ảo Một process phải nạp hồn tồn vào nhớ thực thi (ngoại trừ sử dụng chế overlay) Các chế quản lý nhớ sau ít (hầu không còn) dùng hệ thống đại Phân chia cố định (fixed partitioning) Phân chia động (dynamic partitioning) Phân trang đơn giản (simple paging) Phân đoạn đơn giản (simple segmentation) 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved 26 Mơ hình quản lý nhớ (tt) 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved 27 Phân mảnh (fragmentation) Phân mảnh ngoại (external fragmentation) Kích thước không gian nhớ còn trống đủ để thỏa mãn yêu cầu cấp phát, nhiên không gian nhớ không liên tục ⇒ dùng chế kết khối (compaction) để gom lại thành vùng nhớ liên tục Phân mảnh nội (internal fragmentation) Kích thước vùng nhớ cấp phát lớn vùng nhớ yêu cầu Ví dụ: cấp khoảng trống 18,464 bytes cho process yêu cầu 18,462 bytes Hiện tượng phân mảnh nội thường xảy nhớ thực chia thành khối kích thước cố định (fixed-sized block) process cấp phát theo đơn vị khối Ví dụ: chế phân trang (paging) 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved 28 Phân mảnh nội operating system Yêu cầu 18,462 bytes !!! (used) hole kích thước 18,464 bytes Cần quản lý khoảng trống bytes !?! OS cấp phát hẳn khối18,464 bytes cho process dư bytes không dùng! 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved 29 Fixed partitioning Khi khởi động hệ thống, nhớ chính chia thành nhiều phần rời gọi partition có kích thước bằng hoặc khác Process có kích thước nhỏ hoặc bằng kích thước partition nạp vào partition Nếu chương trình có kích thước lớn partition phải dùng chế overlay Nhận xét Không hiệu bị phân mảnh nội: chương trình dù lớn hay nhỏ cấp phát trọn partition 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved 30 Chiến lược placement Partition có kích thước bằng Nếu còn partition trống ⇒ process nạp vào partition Nếu khơng còn partition trống, có process bị blocked ⇒ swap process nhớ phụ nhường chỗ cho process Partition có kích thước không bằng nhau: giải pháp Gán process vào partition nhỏ phù hợp với Có hàng đợi cho partition Giảm thiểu phân mảnh nội Vấn đề: có số hàng đợi trống khơng (vì khơng có process với kích thước tương ứng) hàng đợi dày đặc 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved 31 Chiến lược placement (tt) Partition có kích thước khơng bằng nhau: giải pháp Chỉ có hàng đợi chung cho mọi partition Khi cần nạp process vào nhớ chính ⇒ chọn partition nhỏ còn trống 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved 32 Dynamic partitioning Số lượng partition khơng cố định partition có kích thước khác Mỗi process cấp phát chính xác dung lượng nhớ cần thiết Gây tượng phân mảnh ngoại 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved 33 Chiến lược placement Dùng để định cấp phát khối nhớ trống cho process Mục tiêu: giảm chi phí compaction Các chiến lược placement Best-fit: chọn khối nhớ trống nhỏ First-fit: chọn khối nhớ trống phù hợp kể từ đầu nhớ Next-fit: chọn khối nhớ trống phù hợp kể từ vị trí cấp phát cuối cùng Worst-fit: chọn khối nhớ trống lớn 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved 34 Tóm tắt lại nội dung buổi học Khái niệm sở Các kiểu địa nhớ Chuyển đổi địa nhớ Overlay swapping Mơ hình quản lý nhớ 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved 35 Bài tập Giả sử nhớ chính cấp phát phân vùng có kích thước 600K, 500K, 200K, 300K (theo thứ tự), sau thực thi xong, tiến trình có kích thước 212K, 417K, 112K, 426K (theo thứ tự) cấp phát nhớ nào, sử dụng: Thuật toán First fit, Best fit, Next fit, Worst fit? Thuật toán cho phép sử dụng nhớ hiệu trường hợp 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved 36 Bài tập 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved 37 ... ôn tập chương Nêu điều kiện để thực giải thuật Banker? Nêu bước giải thuật Banker? Nêu bước giải thuật yêu cầu tài nguyên? Nêu bước giải thuật phát deadlock? Khi deadlock xảy ra, hệ điều hành... Vẽ đồ thị tài nguyên cho hệ thống này? Deadlock? Chuỗi an tồn? (nếu có) 11/2/2017 Copyrights 2017 CE-UIT All Rights Reserved Câu hỏi ôn tập chương (tt) Tìm Need? Hệ thống có an tồn khơng?... Copyrights 2017 CE-UIT All Rights Reserved Mục tiêu chương 7-1 Hiểu khái niệm sở nhớ Hiểu kiểu địa nhớ cách chuyển đổi kiểu Hiểu chế mơ hình quản lý nhớ 11/2/2017 Copyrights 2017 CE-UIT All Rights