Bộ nhớ vật lý được chia thành các khối có cùng kích cỡ, 512 bytes đến 16 MB (frame) Bộ nhớ logic được chia thành các khối có cùng kích cỡ (page) Sử dụng bảng phân trang để ánh xạ địa chỉ logic với địa chỉ vật lý Bộ lưu trữ phụ cũng được chia thành các trang
NGUYÊN LÝ HỆ ĐIỀU HÀNH Phần 7: Quản lý nhớ NGUYỄN THỊ HẬU Khoa Công Nghệ Thông Tin Đại học Công Nghệ - Đại học quốc gia Hà Nội Nguyễn Thi Hậu - ĐH Công nghệ - ĐH QG HN Phần 7: Quản lý nhớ 1. Giới thiệu 2. Swapping 3. Cấp phát liên tục 4. Phân đoạn 5. Phân trang 6. Cấu trúc bảng phân trang Nguyễn Thi Hậu - ĐH Công nghệ - ĐH QG HN Phần 7: Quản lý nhớ 7.1 Giới thiệu Nguyễn Thi Hậu - ĐH Công nghệ - ĐH QG HN Giới thiệu Nguyễn Thi Hậu - ĐH Công nghệ - ĐH QG HN Giới thiệu ! Chương trình HĐH tải từ đĩa vào nhớ, tạo tiến trình để thực thi ! Input queue: hàng chờ tiến trình đĩa chờ đưa vào nhớ để thực thi ! CPU truy cập trực tiếp vào nhớ ghi ! CPU truy cập vào ghi tối đa đơn vị thời gian đồng hồ CPU ! Thời gian CPU truy cập vào nhớ vài đơn vị thời gian đồng hồ CPU ! Cache, thường đặt CPU chip, trung gian nhớ ghi CPU Nguyễn Thi Hậu - ĐH Công nghệ - ĐH QG HN Các bước xử lý chạy chương trình Nguyễn Thi Hậu - ĐH Công nghệ - ĐH QG HN Liên kết địa ! Trước chạy, chương trình trải qua nhiều giai đoạn, địa chương trình dạng khác giai đoạn ! Các câu lệnh liệu thể liên kết với địa nhớ giai đoạn nào: ! Giai đoạn biên dịch: Nếu biết trước địa nhớ tiến trình tạo mã tuyệt đối, địa nhớ thay đổi cần biên dịch lại chương trình (vd chương trình định dạng COM MS-DOS) ! Giai đoạn tải: Nếu địa nhớ chưa biết giai đoạn biên dịch chương trình biên dịch cần tạo mã cho phép định vị lại ! Giai đoạn thực thi: Liên kết địa trì hoãn đến lúc chạy tiến trình bị di chuyển từ phân đoạn sang phân đoạn khác nhớ thời gian thực thi Nguyễn Thi Hậu - ĐH Công nghệ - ĐH QG HN Địa vật lý vs địa logic ! Địa logic địa CPU tạo (địa ảo) ! Địa vật lý địa tải vào ghi địa chỉ-bộ nhớ nhớ Nguyễn Thi Hậu - ĐH Công nghệ - ĐH QG HN Địa vật lý vs địa logic ! Trong giai đoạn biên dịch giai đoạn tải, phương thức liên kết địa tạo địa vật lý logic giống ! Giai đoạn thực thi, địa vật lý logic khác ! Không gian địa logic: tập tất địa logic tạo chương trình ! Không gian địa vật lý: tập tất địa vật lý tạo chương trình Nguyễn Thi Hậu - ĐH Công nghệ - ĐH QG HN Đơn vị quản lý nhớ (MMU) 10 ! Là phận phần cứng ánh xạ địa ảo với địa vật lý thời gian chạy ! Có nhiều cách thức ánh xạ ! MS-DOS Intel 80x86 sử dụng ghi định vị lại ! Chương trình người dùng làm việc với địa logic Nguyễn Thi Hậu - ĐH Công nghệ - ĐH QG HN Ví dụ phân trang Địa logic tương ứng với địa vật lý 24 trang 4-byte nhớ 32-byte (8 trang)" Hiện tượng phân mảnh 36 ! Phương thức phân trang tránh tượng phân mảnh ! Bất frame trống phân cho tiến trình có yêu cầu ! Nhưng xảy phân mảnh trong: ! Ví dụ: kích thước frame n byte, kích thước tiến trình (k.n + m) byte, m < n Nghĩa phải cung cấp (k+1) frame cho tiến trình ! xảy tượng phân mảnh (n-m) byte Nguyễn Thi Hậu - ĐH Công nghệ - ĐH QG HN 37 Quản lý frame trống trước cấp phát Nguyễn Thi Hậu - ĐH Công nghệ - ĐH QG HN sau cấp phát Bảng phân trang 38 ! Đối với bảng phân trang lớn, bảng phân trang lưu nhớ ! Thanh ghi sở bảng phân trang: đến vị trí bảng phân trang nhớ ! Thanh ghi độ dài bảng phân trang: lưu độ dài bảng ! Mỗi truy vấn câu lệnh / liệu cần hai truy vấn nhớ: cho bảng phân trang, cho liệu / câu lệnh ! Sử dụng cache hỗ trợ tìm kiếm đặc biệt translation lookaside buffer (TLB) có kích thước 64 -1024 hàng Nguyễn Thi Hậu - ĐH Công nghệ - ĐH QG HN Phần cứng hỗ trợ phân trang với TLB p: số thứ tự trang d: địa sở f: số thứ tự frame Nguyễn Thi Hậu - ĐH Công nghệ - ĐH QG HN 39 Thời gian truy cập nhớ hiệu 40 ! Tỉ lệ trúng (Hit ratio) = % số lần tìm trang cần thiết TLB ! Ví dụ: Tỉ lệ trúng α=80%, thời gian truy cập nhớ 100 ns Nếu trang TLB, cần thời gian truy cập nhớ liên kết 100 ns Nếu trang TLB, cần truy cập nhớ để lấy số thứ tự trang frame, truy cập phần nhớ cần thiết (tổng cộng 200 ns) Thời gian truy cập nhớ hiệu = 0.8 x100 + 0.2 x 200 = 120 ns Nguyễn Thi Hậu - ĐH Công nghệ - ĐH QG HN Bit bảo mật 41 Mỗi trang có bit bảo mật sau: ! Quyền đọc / viết / thực thi ! Bit xác nhận (bằng trang có không gian địa logic tiến trình) Nguyễn Thi Hậu - ĐH Công nghệ - ĐH QG HN Trang chia sẻ ! Một số tiến trình chia sẻ mã lệnh Nguyễn Thi Hậu - ĐH Công nghệ - ĐH QG HN 42 43 Phần 7: Quản lý nhớ 7.6 Cấu trúc bảng phân trang Nguyễn Thi Hậu - ĐH Công nghệ - ĐH QG HN 44 Cấu trúc phân tầng ! Không gian địa lôgic phân làm nhiều bảng trang Nguyễn Thi Hậu - ĐH Công nghệ - ĐH QG HN Bảng phân trang cấp Cấu trúc phân tầng: biên dịch địa 45 ! Ví dụ địa logic 32 bit, kích thước trang KB chia thành Nguyễn Thi Hậu - ĐH Công nghệ - ĐH QG HN Cấu trúc băm 46 ! Thường sử dụng cho hệ máy có không gian địa > 32 bit Nguyễn Thi Hậu - ĐH Công nghệ - ĐH QG HN Cấu trúc nghịch đảo Hàng thứ N chứa thông tin frame thứ N nhớ vật lý pid: số hiệu tiến trình, p: địa trang logic, d: offset Nguyễn Thi Hậu - ĐH Công nghệ - ĐH QG HN 47 48 Bài tập Hệ thống sử dụng 12 bit cho địa ảo địa vật lý, kích thước trang 256 byte Dựa vào bảng phân trang sau: Page no Frame no – a Tìm địa vật lý tương ứng cho địa ảo sau (dạng hexa): 9EF, 700, 0FF 12 – 10 b Nếu kích thước đơn vị nhớ byte, tính – dung lượng nhớ chính, số lượng frame – 11 Nguyễn Thi Hậu - ĐH Công nghệ - ĐH QG HN 49 Bài tập Ánh xạ nhớ ảo GB lên nhớ vật lý có 256 frame, frame có kích thước KB Kích thước đơn vị nhớ byte ! Liệu nhớ chứa toàn bảng phân trang ? Giải thích ! Liệu bảng phân trang nghịch đảo chứa trang ? Giải thích Nguyễn Thi Hậu - ĐH Công nghệ - ĐH QG HN