Trong nội dung của chương 3 Chương 3: Quản lý bộ nhớ nằm ở bài giảng Hệ điều hành nhằm trình bày câu trả lời Vì sao phải tổ chức, quản lý bộ nhớ? CPU chỉ có thể trao đổi thông tin với bộ nhớ chính, các chương trình muốn được thực thi cần được nạp vào bộ nhớ chính, tạo lập tiến trình tương ứng để xử lý.
Chương Quản lý nhớ TỔNG QUAN 1.1 Vì phải tổ chức, quản lý nhớ? CPU trao đổi thơng tin với nhớ Các chương trình muốn thực thi cần nạp vào nhớ chính, tạo lập tiến trình tương ứng để xử lý Các hệ thống đa chương nhớ ngồi HĐH có nhiều tiến trình hoạt động Kích thước nhớ hữu hạn yêu cầu nhớ vơ hạn … 1.1 Vì phải tổ chức, quản lý nhớ? Như vậy, HĐH cần phải tổ chức quản lý nhớ cách hợp lý để có thể: Đưa tiến trình vào nhớ có u cầu, cho dù nhớ khơng cịn khơng gian trống Bảo vệ tiến trình hệ điều hành tiến trình nhớ, tránh trường hợp truy xuất bất hợp lệ xảy 1.2 Nhiệm vụ quản lý nhớ Tái định vị Bảo vệ nhớ Chia sẻ nhớ Tổ chức nhớ logic Tổ chức nhớ vật lý Tái định vị (Relocation) Trong hệ thống đa chương không gian nhớ thường chia cho nhiều tiến trình u cầu nhớ tiến trình ln lớn không gian nhớ vật lý mà tiến trình mà hệ thống có Cần thực chế hốn đổi (Swap): Một chương trình hoạt động nhớ bị đưa đĩa (swap-out) đưa vào lại (swap-in) thời điểm thích hợp Khi thực swap-in chương trình vào lại nhớ HĐH phải định vị vào vị trí mà trước bị swap-out Bảo vệ nhớ (Protection) Mỗi tiến trình phải bảo vệ để chống lại truy xuất bất hợp lệ vơ tình hay có chủ ý tiến trình khác Mỗi tiến trình phép truy suất đến không gian địa mà HĐH cấp cho Bộ phận Qlý nhớ phải biết không gian địa tất tiến trình nhớ Khi tiến trình đưa địa truy xuất phận Qlý nhớ phải kiểm tra tất yêu cầu truy xuất nhớ tiến trình Chia sẻ nhớ (Sharing) Bất kỳ chiến lược cài đặt phải có tính mềm dẻo phép nhiều tiến trình truy cập đến địa nhớ Ví dụ, có nhiều tiến trình thực chương trình việc cho phép tiến trình truy cập đến copy chương trình thuận lợi cho phép tiến trình truy cập đến copy sở hữu riêng Tổ chức nhớ logic (Logical organization) Bộ nhớ hệ thống máy tính tổ chức dịng mảng Khơng gian địa bao gồm dãy có thứ tự byte word Bộ nhớ phụ tổ chức tương tự Cách tổ chức có kết hợp chặt chẻ với phần cứng máy tính lại khơng phù hợp với cách xây dựng chương trình Đại đa số chương trình tổ chức thành modul Tổ chức nhớ vật lý (Physical organization) Bộ nhớ máy tính tổ chức theo cấp: Bộ nhớ chính: tốc độ truy xuất nhanh, giá thành cao liệu tồn lâu dài Bộ nhớ phụ: giá rẻ, dung lượng lớn, liệu lưu trữ lâu dài tốc độ truy xuất chậm Theo giản đồ cấp này, việc tổ chức luồng thông tin nhớ nhớ phụ nhiệm vụ quan trọng hệ thống 10 Cơ chế MMU kỹ thuật phân đoạn kết hợp phân trang Không gian địa tập phân đoạn, phân đoạn chia thành nhiều trang Khi tiến trình đưa vào hệ thống, hệ điều hành cấp phát cho tiến trình trang cần thiết để chứa đủ phân đoạn tiến trình Cơ chế MMU: Để hỗ trợ kỹ thuật phân đoạn, cần có bảng phân đoạn, phân đoạn cần có bảng trang phân biệt 65 Chuyển đổi địa Mỗi địa logic ba: số hiệu phân đoạn (s): sử dụng mục đến phần tử tương ứng bảng phân đoạn số hiệu trang (p): sử dụng mục đến phần tử tương ứng bảng trang phânđoạn địa tương đối trang (d): kết hợp với địa bắt đầu trang để tạo địa vật lý mà trình quản lý nhớ sử dụng 66 Mơ hình phân đoạn kế hợp phân trang 67 68 Tóm tắt Có nhiều cách tiếp cận khác để tổ chức quãn lý nhớ, tựu chung mong đạt đến mục tiêu sau : Có thể đáp ứng đầy đủ nhu cầu nhớ chương trình với nhớ vật lý giới hạn Quá trình chuyển đổi địa chỉ, tổ chức cấp phát nhớ suốt với người dùng, có khả tái định vị Tận dụng hiệu nhớ ( có vùng nhớ khơng sử dụng được) Bộ nhớ bảo vệ tốt Có khả chia sẻ nhớ tiến trình Một số cách tiếp cận tổ chức nhớ Cấp phát liên tục : cấp phát vùng nhớ liên tục cho tiến trình phân vùng có kích thước cố định hay biến động Điểm yếu cách tiếp cận kích thước chương trình dược xử lý bị giới hạn kích thước khối nhớ liên tục sử dụng Các tượng phân mảnh ngoại vi, nội vi xuất Cấp phát khơng liên tục : cấp phát vùng nhớ không liên tục cho tiến trình Hai kỹ thuật thường áp dụng phân trang phân đoạn Kỹ thuật phân trang cho phép loại bõ tượng phân mảnh ngoại vi, kỹ thuật phân đoạn loại bỏ tượng phân mảnh nội vi, phải giải vấn đề cấp phát động 69 KỸ THUẬT BỘ NHỚ ẢO 3.1 Khái niệm nhớ ảo (virtual memory) Để thực thi chương trình có kích thước lớn nhớ vật lý cấp phát cho cần xây dựng chương trình theo cấu trúc Overlay gây khó khăn cho người lập trình Để khắc phục khó khăn cho người lập trình, ý tưởng sử dụng nhớ ảo đời Kỹ thuật nhớ ảo cho phép xử lý tiến trình khơng nạp tồn vào nhớ vật lý 71 Bộ nhớ ảo kỹ thuật đại giúp cho người dùng giải phóng hoàn toàn khỏi mối bận tâm giới hạn nhớ 3.1 Khái niệm nhớ ảo Bộ nhớ ảo mơ hình hố nhớ bảng lưu trữ lớn đồng nhất, tách biệt hẳn khái niệm không gian địa không gian vật lý Người sử dụng nhìn thấy làm việc không gian địa ảo, chuyển đổi sang không gian vật lý hệ điều hành thực với trợ giúp chế phần cứng 72 3.2 Cài đặt nhớ ảo Có thể cài đặt nhớ ảo theo kỹ thuật Phân trang theo yêu cầu (demand paging): Sử dụng kỹ thuật phân trang kết hợp với kỹ thuật swap Phân đoạn theo yêu cầu: sử dụng kỹ thuật phân đoạn kết hợp với kỹ thuật swap 73 3.2.1 Phân trang theo yêu cầu Sử dụng kỹ thuật phân trang kết hợp với kỹ thuật swap Một chương trình xem tập hợp trang thường trú nhớ ngồi Khi thực thi hệ thống khơng nạp tồn chương trình vào nhớ mà nạp trang cần thiết thời điểm Một trang nạp vào nhớ cần thiết 74 3.2.1 Phân trang theo yêu cầu Với mơ hình này, cần cung cấp chế phần cứng giúp phân biệt trang nhớ trang đĩa Có thể sử dụng lại bit valid-invalid với ngữ nghĩa mới: valid : trang tương ứng hợp lệ nhớ invalid : trang bất hợp lệ (không thuộc khơng gian địa tiến trình) trang hợp lệ lưu nhớ phụ Một phần tử bảng trang mộ tả cho trang khơng nằm nhớ chính, đánh dấu invalid chứa địa trang nhớ phụ 75 Cơ chế phần cứng Cơ chế phần cứng hỗ trợ kỹ thuật phân trang theo yêu cầu kết hợp chế hỗ trợ kỹ thuật phân trang kỹ thuật swapping: Bảng trang: Cấu trúc bảng trang phải cho phép phản ánh tình trạng trang nằm nhớ hay nhớ phụ Bộ nhớ phụ: Bộ nhớ phụ lưu trữ trang không nạp vào nhớ Bộ nhớ phụ thường sử dụng đĩa, vùng không gian đĩa dùng để lưu trữ tạm trang kỹ thuật swapping gọi không gian swapping 76 Thay trang Thuật toán thay trang: Thuật toán lựa trang “nạn nhân” để chuyển nhớ phụ với chung mục tiêu: Chọn trang “nạn nhân” trang mà sau thay gây lỗi trang Chúng ta đánh giá giải thuật cách chạy chuỗi tham chiếu nhớ cụ thể tính số lượng lỗi trang 77 Giải thuật thay tối ưu Giải thuật thay NRU (Not-Recently-Used) Giải thuật thay FIFO Giải thuật thay Second Chance Giải thuật thay vòng tròn Giải thuật thay LRU (Least Recently Used) 3.2.2 Phân đoạn đoạn theo yêu cầu Bộ nhớ ảo bao gồm đoạn (segment) có kích thuớc khơng cố định Khi nạp đoạn vào nhớ hệ điều hành tìm khoảng trống đủ để nạp đoạn Có bảng đoạn quản lý đoạn 78 3.2.3 Phân đoạn kết hợp phân trang Kết hợp ưu điểm phân đoạn phân trang Bộ nhớ ảo bao gồm đoạn Trong đoạn thực phân trang 79 ... tiến trình hệ điều hành tiến trình nhớ, tránh trường hợp truy xuất bất hợp lệ xảy 1.2 Nhiệm vụ quản lý nhớ Tái định vị Bảo vệ nhớ Chia sẻ nhớ Tổ chức nhớ logic Tổ chức nhớ vật lý Tái định... Cache Loại nhớ không HĐH quản lý cấp phát Thực tế, RAM (Bộ nhớ Sơ cấp) loại Cache nhanh so với đóa cứng (Bộ nhớ thứ cấp) HĐH có chức quản lý lưu chuyển liệu loại nhớ KỸ THUẬT CẤP PHÁT BỘ NHỚ Kỹ... Kích thước nhớ hữu hạn u cầu nhớ vơ hạn … 1.1 Vì phải tổ chức, quản lý nhớ? Như vậy, HĐH cần phải tổ chức quản lý nhớ cách hợp lý để có thể: Đưa tiến trình vào nhớ có yêu cầu, cho dù nhớ khơng