Bài giảng Hệ điều hành - Chương 7: Quản lý bộ nhớ cung cấp các kiến thức 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.
Chương 7: Quản lý nhớ - CuuDuongThanCong.com https://fb.com/tailieudientucntt 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? CuuDuongThanCong.com https://fb.com/tailieudientucntt Quản lý nhớ 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ó) CuuDuongThanCong.com https://fb.com/tailieudientucntt Quản lý nhớ 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? CuuDuongThanCong.com https://fb.com/tailieudientucntt Quản lý nhớ Mục tiêu 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ớ CuuDuongThanCong.com https://fb.com/tailieudientucntt Quản lý nhớ Nội dung 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ớ CuuDuongThanCong.com https://fb.com/tailieudientucntt Quản lý nhớ Nội dung 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ớ CuuDuongThanCong.com https://fb.com/tailieudientucntt Quản lý nhớ Khái niệm sở Chương trình phải mang vào nhớ và đặt nó 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ý (compiler – Linking – Loader – Exe) CuuDuongThanCong.com https://fb.com/tailieudientucntt Quản lý nhớ Khái niệm sở (tt) Quản lý nhớ là 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 các process nhớ cho hiệu Mục tiêu cần đạt là nạp càng nhiều process vào nhớ càng tốt (gia tăng mức độ đa chương) Trong hầu hết các hệ thống, kernel sẽ chiếm phần cố định nhớ; phần còn lại phân phối cho các process CuuDuongThanCong.com https://fb.com/tailieudientucntt Quản lý nhớ Khái niệm sở (tt) Các yêu cầu đối với việc quản lý nhớ Cấp phát nhớ cho các 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 các process chia sẻ vùng nhớ chung Kết gán địa nhớ luận lý user vào địa thực CuuDuongThanCong.com 10 https://fb.com/tailieudientucntt Quản lý nhớ Cơ chế hoán vị (swapping) Một process có thể tạm thời bị swap khỏi nhớ chính và lưu hệ thống lưu trữ phụ Sau đó, process có thể nạp lại vào nhớ để tiếp tục quá 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 P2,… Roll out, roll in: dùng chế định thời theo độ ưu tiên (priority-based scheduling) Process có độ ưu tiên thấp sẽ 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 CuuDuongThanCong.com 28 https://fb.com/tailieudientucntt Quản lý nhớ Minh họa chế hoán vị CuuDuongThanCong.com 29 https://fb.com/tailieudientucntt Quản lý nhớ Nội dung 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ớ CuuDuongThanCong.com 30 https://fb.com/tailieudientucntt Quản lý nhớ Mô hình quản lý nhớ Trong chương này, mơ hình quản lý nhớ là mô hình đơn giản, không có nhớ ảo Một process phải nạp hoàn toàn vào nhớ thì 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 các 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) CuuDuongThanCong.com 31 https://fb.com/tailieudientucntt Quản lý nhớ Mơ hình quản lý nhớ (tt) CuuDuongThanCong.com 32 https://fb.com/tailieudientucntt Quản lý nhớ 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ớ này không liên tục ⇒ có thể 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 có thể 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 các khối kích thước cố định (fixed-sized block) và các process cấp phát theo đơn vị khối Ví dụ: chế phân trang (paging) CuuDuongThanCong.com 33 https://fb.com/tailieudientucntt Quản lý nhớ Phân mảnh nội yêu cầu 18,462 bytes !!! operating system (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ối 18,464 bytes cho process dư bytes không dùng! CuuDuongThanCong.com 34 https://fb.com/tailieudientucntt Quản lý nhớ Fixed partitioning Khi khởi động hệ thống, nhớ chính chia thành nhiều phần rời gọi là các partition có kích thước bằng hoặc khác Process nào có kích thước nhỏ hoặc bằng kích thước partition thì có thể nạp vào partition đó Nếu chương trình có kích thước lớn partition thì 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 CuuDuongThanCong.com 35 https://fb.com/tailieudientucntt Quản lý nhớ Chiến lược placement Partition có kích thước bằng Nếu còn partition trống ⇒ process sẽ 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 mỗi process vào partition nhỏ phù hợp với nó Có hàng đợi cho mỗi partition Giảm thiểu phân mảnh nội Vấn đề: có thể có số hàng đợi trống không (vì không có process với kích thước tương ứng) và hàng đợi dày đặc 36 CuuDuongThanCong.com https://fb.com/tailieudientucntt Quản lý nhớ 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 CuuDuongThanCong.com 37 https://fb.com/tailieudientucntt Quản lý nhớ Dynamic partitioning Số lượng partition không cố định và partition có thể 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 CuuDuongThanCong.com 38 https://fb.com/tailieudientucntt Quản lý nhớ Chiến lược placement Dùng để định cấp phát khối nhớ trống nào 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 CuuDuongThanCong.com 39 https://fb.com/tailieudientucntt Quản lý nhớ Ôn tập Khái niệm sở Các kiểu địa chỉ nhớ Chuyển đổi địa chỉ nhớ Overlay swapping Mô hình quản lý bộ nhớ CuuDuongThanCong.com 40 https://fb.com/tailieudientucntt Quản lý nhớ Bài tập Cơ chế: CuuDuongThanCong.com 41 https://fb.com/tailieudientucntt Quản lý nhớ Kết thúc chương 7-1 CuuDuongThanCong.com https://fb.com/tailieudientucntt ... 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... 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ệ. .. độ ưu tiên (priority-based scheduling) Process có độ ưu tiên thấp sẽ 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