Bài giảng Lập trình hệ điều hành - Chương 7: Main Memory cung cấp cho người học các kiến thức: Tổng quan, hoán vị(Swapping), cấp phát bộ nhớ liên tục, phân đoạn (Segmentation), phân trang (Paging), cấu trúc bảng trang. Mời các bạn cùng tham khảo nội dung chi tiết.
Khoa Công Nghệ Thông Tin & Truyền Thông Đại học Cần Thơ Giảng viên: Hà Duy An 1.Tổng quan 2.Hoán vị (Swapping) 3.Cấp phát nhớ liên tục 4.Phân đoạn (Segmentation) 5.Phân trang (Paging) 6.Cấu trúc bảng trang 10/28/2013 Chương 7: Main Memory • Chương trình phải mang vào nhớ đặt vào tiến trình để thực thi • Bộ nhớ ghi hai thiết bị lưu trữ mà CPU truy cập trực tiếp • Đơn vị nhớ (memory unit) nhìn thấy luồng địa + yêu cầu đọc, hay địa + liệu u cầu ghi • Các ghi truy cập với chu kỳ CPU (hay hơn) • Truy cập nhớ cần nhiều chu kỳ CPU • Cache nằm nhớ ghi • Các thao tác nhớ cần đảm bảo xác 10/28/2013 Chương 7: Main Memory • Một cặp ghi (base) giới hạn (limit) xác định không gian địa tiến trình nhớ • CPU phải kiểm tra tất truy cập nhớ từ không gian người dùng nằm khoảng giới hạn ghi giới hạn 10/28/2013 Chương 7: Main Memory 10/28/2013 Chương 7: Main Memory • Tập hợp chương trình đĩa, sẵn sàng mang vào nhớ để thực thi hình thành hàng đợi nhập (input queue) o Nếu khơng có hỗ trợ nào, chương trình phải nạp vào từ địa chỉ: 0000 • Hầu hết hệ thống máy tính cho phép tiến trình nằm phần nhớ vật lý • Các địa dạng thức khác giai đoạn khác chương trình: o Các địa tượng trưng chương trình nguồn o Các địa tái định vị biên dịch o Các địa tuyệt đối nạp (loading) nối kết (linking) => Mỗi giai đoạn, việc gắng kết ánh xạ từ không gian địa sang không gian địa khác 10/28/2013 Chương 7: Main Memory • Việc gắn kết địa (address binding) thị liệu vào địa nhớ diễn giai đoạn khác nhau: o Thời điểm biên dịch (compile time): Nếu vị trí vùng nhớ biết trước, sinh mã lệnh tuyệt đối (absolute code); nhiên chương trình phải biên dịch lại vị trí bắt đầu vùng nhớ thay đổi o Thời điểm nạp (load time): trình biên dịch phải sinh mã lệnh tái định vị (relocatable code) biết vị trí vùng nhớ thời điểm biên dịch Trong trường hợp việc gắng kết bị trì hỗn thời điểm nạp Chương trình phải nạp lại vị trí bắt đầu vùng nhớ thay đổi o Thời điểm thực thi (execution time): Việc gắn địa bị trì hỗn thời điểm thực thi tiến trình phải di chuyển từ phân đoạn nhớ (segment) đến phân đoạn nhớ khác thực thi Cần thêm hỗ trợ phần cứng để ánh xạ địa chỉ(ví dụ ghi sở (base) giới hạn (limit)) 10/28/2013 Chương 7: Main Memory 10/28/2013 Chương 7: Main Memory • Cơ chế cho phép khơng gian địa luận lý tách biệt khỏi không gian địa vật lý, trọng tâm chế quản lý nhớ o Địa luận lý (logical address): sinh CPU, xem địa ảo (virtual address) o Địa vật lý (physical address): địa nhìn thấy quản lý nhớ • Địa luận lý vật lý sơ đồ gắn kết địa thời điểm biên dịch nạp chương trình • Địa luận lý địa vật lý khác sơ đồ gắn kết địa thời điểm thực thi 10/28/2013 10 Chương 7: Main Memory • Việc bảo vệ nhớ cài đặt cách kết hợp bit bảo vệ (protection bit) với khung để xác định khung read-only hay read-write • Bit hợp lệ - không hợp lệ (Valid-invalid bit) gắn vào đầu mục bảng trang: o “valid” khung tương ứng nằm khơng gian địa luận lý tiến trình, trang hợp lệ o “invalid” trang khơng nằm khơng gian địa luận lý tiến trình o Hay sử dụng page-table length register (PTLR) 10/28/2013 43 Chương 7: Main Memory 10/28/2013 44 Chương 7: Main Memory • Chia mã lệnh: o Một đọc mã lệnh chia nhiều tiến trình (ví dụ: text editors, compilers, window systems) o Tương tự nhiều luồng chia khơng gian tiến trình o Hữu ích cho việc giao tiếp liên tiến trình trang chia read-write • Mã liệu riêng: o Mỗi tiến trình có mã liệu riêng o Các trang cho mã liệu riêng xuất đâu khơng gian địa luận lý tiến trình 10/28/2013 45 Chương 7: Main Memory 10/28/2013 46 Chương 7: Main Memory • Lượng nhớ cho cấu trúc chế phân trang lớn áp dụng trực tiếp chế trên: o Giả sử không gian địa luận lý 32-bit hệ thống máy tính đại o Trang có kích thước KB (212) o Bảng trang có triệu mục từ (232/212) o Nếu mục từ bytes -> MB nhớ vật lý cho bảng trang o Không muốn cấp phát vùng nhớ liên tục cho bảng trang • Bảng trang phân cấp (hierachical page table) • Bảng trang băm (hashed page table) • Bảng trang đảo (inverted page table) 10/28/2013 48 Chương 7: Main Memory • Phân khơng gian địa luận lý vào nhiều bảng trang • Bảng trang phân cấp đơn giản: bảng trang hai mức (two-level page table) => Phân trang bảng trang 10/28/2013 49 Chương 7: Main Memory 10/28/2013 50 Chương 7: Main Memory • • • Một địa luận lý máy 32 bit Một trang có kích thước 4K Địa luận lý bao gồm: o Số hiệu trang (page number): 20 bits o Độ dời trang (page offset): 12 bits Vì bảng trang phân trang, số hiệu trang lại chia thành phần: o Số hiệu trang dài 10 bit o Độ dời trang dài 10 bit Do đó, địa luận lý có dạng sau: • Trong đó: o P1 mục bảng trang (outer page table) o P2 mục bảng trang (inner page table) 10/28/2013 51 Chương 7: Main Memory 10/28/2013 52 Chương 7: Main Memory • Thơng dụng khơng gian địa > 32 bits • Số hiệu trang ảo băm vào bảng trang • Một mục từ bảng trang đến danh sách liên kết phần tử băm vào vị trí • Một phần tử có ba thơng tin chính: số hiệu trang ảo, số hiệu khung trang tương ứng, trỏ đến phần tử danh sách liên kết • Số hiệu trang ảo so sánh danh sách để tìm số hiệu trang trùng khớp Nếu trùng khớp, số hiệu khung trang lấy 10/28/2013 53 Chương 7: Main Memory 10/28/2013 54 Chương 7: Main Memory • Thay tiến trình có bảng trang, lưu vết tất trang ảo => lưu vết tất trang vật lý • Mỗi mục từ bảng trang đại diện cho khung nhớ • Mục từ chứa địa ảo trang chứa vị trí nhớ thực tương ứng, với thơng tin tiến trình sở hữu trang • Giảm nhớ cần thiết cho lưu trữ bảng trang, tăng thời gian cần thiết để tìm kiếm bảng trang tham khảo trang yêu cầu • Dùng bảng băm để giới hạn tìm kiếm cho một–hoặc nhiều ít–các mục từ bảng trang o TLB giúp tăng tốc độ truy cập 10/28/2013 55 Chương 7: Main Memory 10/28/2013 56 Chương 7: Main Memory ... Chương 7: Main Memory 10/28/2013 Chương 7: Main Memory • Tập hợp chương trình đĩa, sẵn sàng mang vào nhớ để thực thi hình thành hàng đợi nhập (input queue) o Nếu khơng có hỗ trợ nào, chương trình. .. ngưỡng 10/28/2013 17 Chương 7: Main Memory 18 10/28/2013 Chương 7: Main Memory • Là phương pháp cấp phát nhớ dùng • Bộ nhớ thường chia làm phần: o Phần thường trú hệ điều hành: thường tổ chức... cịn lại lớn First-fit best-fit tốt worst-fit ta quan tâm đến tốc độ hiệu sử dụng nhớ Hiệu sử dụng nhớ với First-fit best-fit, nhiên first-fit nhìn chung nhanh 10/28/2013 22 Chương 7: Main Memory