Bài giảng Hệ điều hành: Chương 4.1 cung cấp cho người học những kiến thức như: Địa chỉ và các vấn đề liên quan; Một số cách tổ chức chương trình; Phân chương bộ nhớ; Phân đoạn bộ nhớ; Phân trang bộ nhớ. Mời các bạn cùng tham khảo!
Chương QUẢN LÝ BỘ NHỚ 1 Nội dung chương 4 Địa vấn đề liên quan Một số cách tổ chức chương trình Phân chương nhớ Phân đoạn nhớ Phân trang nhớ Bộ nhớ ảo Cấp phát khung trang Tình trạng trì trệ Địa vấn đề liên quan 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, 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 trình) Địa vấn đề liên quan 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ớ từ process có hợp lệ khơng Chia sẻ: cho phép process chia sẻ vùng nhớ chung Đây tính mềm dẻo mà chiến lược lý cần có Kết gắn địa nhớ luận lý user vào địa thực Địa vấn đề liên quan Địa nhớ Địa vật lý (physical address - địa thực): vị trí thực nhớ Địa luận lý (logical address): vị trí nhớ diễn tả chương trình Trình biên dịch (compiler) tạo mã lệnh chương trình tham chiếu nhớ địa luận lý Địa tương đối (relative 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 Địa vấn đề liên quan Địa nhớ Khi lệnh thực thi, tham chiếu đến địa luận lý phải chuyển đổi thành địa thực Thao tác chuyển đổi thường có hỗ trợ phần cứng để đạt hiệu suất cao Địa vấn đề liên quan Chuyển đổi địa Là trình ánh xạ địa từ không gian địa sang không gian địa khác Biểu diễn địa nhớ Trong source code: symbolic (các biến, hằng, pointer,…) Thời điểm biên dịch: thường địa tương đối Ví dụ: a vị trí 14 bytes so với vị trí bắt đầu module Thời điểm linking/loading: địa thực Ví dụ: liệu nằm địa nhớ thực 1212 Địa vấn đề liên quan Chuyển đổi địa Địa lệnh (instruction) liệu (data) chuyển đổi thành địa thực xảy ba thời điểm khác Compile time: biết trước địa nhớ chương trình gán địa tuyệt đối lúc biên dịch – Khuyết điểm: cần biên dịch lại thay đổi địa nạp chương trình Load time: thời điểm biên dịch, chưa biết tiến trình nằm đâu nhớ compiler phải sinh mã địa tương đối Vào thời điểm loading, loader phải chuyển đổi địa tương đố thành địa thực dựa địa (base address) – Địa thực tính tốn vào thời điểm 8nạp chương trình phải tiến hành reload địa thay đổi Địa vấn đề liên quan Chuyển đổi địa Execution time: q trình thực thi, process di chuyển từ segment sang segment khác nhớ q trình chuyển đổi địa trì hỗn đến thời điểm thực thi – CPU tạo địa luận lý cho process – Phần cứng cần hỗ trợ cho việc ánh xạ địa Ví dụ: trường hợp địa luận lý tương đối dùng ghi base limit,… – Sử dụng đa số Hệ điều hành đa dụng (general-purpose) có chế swapping, paging, segmentation Một số cách tổ chức chương trình Các chương trình tổ chức theo cấu trúc sau: Cấu trúc tuyến tính Cấu trúc động Cấu trúc Overlay Cấu trúc phân trang Cấu trúc phân đoạn 10 Phân trang nhớ (paging) Cách tính điạ vật lý MMU: chép d vào n bit thấp địa vật lý chép f vào (m-n) bit cao địa vật lý Ví dụ: Một hệ thống có địa ảo 16 bit dạng (p,d) với p có bít, d có 12 bít (hệ thống có 16 trang, trang KB) Bít Present/absent =1 nghĩa trang nhớ =0 nhớ phụ Phân trang nhớ (paging) Cài đặt bảng trang Thanh ghi PTBR (Page Table Base Register): lưu địa bắt đầu bảng trang Thanh ghi PTLR (Page Table Limit Register): lưu số phần tử bảng trang Phân trang nhớ (paging) Bộ nhớ kết hợp (Translation Lookaside Buffers - TLBs) Phân trang nhớ (paging) Ví dụ: Một hệ thống máy tính 32 bit: kích thước khung trang 4K Hỏi hệ thống quản lý tiến trình kích thước tối đa bao nhiêu? Máy tính 32 bit => địa ảo (p,d) có 32 bit => số bít p + số bít d = 32, mà trang 4K=212 bytes => d có 12 bit =>p có 20 bit => bảng trang có 220 phần tử => Hệ thống quản lý tiến trình có tối đa 220 trang => kích thước tiến trình lớn 220 x 212 byte = 232 byte =4 GB Nhận xét: Máy tính n bit quản lý tiến trình kích thước lớn 2n byte Phân trang nhớ (paging) Tổ chức bảng phân trang Phân trang đa cấp Bảng trang băm Bảng trang nghịch đảo Phân trang nhớ (paging) Phân trang đa cấp Bảng trang cấp Các bảng trang cấp Phân trang nhớ (paging) Phân trang đa cấp page number page offset p2 p1 d 10 10 12 p1 mục bảng trang cấp p2 mục bảng trang cấp Bảng trang cấp Bảng trang cấp Phân trang nhớ (paging) Bảng trang băm Khi không gian địa ảo > 32 bít) Một máy tính 64 bít, có RAM 256MB, kích thước khung trang 4KB Bảng trang thơng thường phải có 252 mục, dùng bảng trang băm sử dụng bảng có số mục số khung trang vật lý 216 (