Bài giảng Nguyên lý hệ điều hành - Chương 3: Quản lý bộ nhớ. Những nội dung chính trong chương này gồm có: Tổng quan, các chiến lược quản lý bộ nhớ, bộ nhớ ảo, quản lý bộ nhớ trong vi xử lý họ Intel. Mời các bạn cùng tham khảo.
ng c o Hệ điều hành th an co NGUYÊN LÝ HỆ ĐIỀU HÀNH ng Phạm Đăng Hải haipd@soict.hust.edu.vn u du o Bộ mơn Khoa học Máy tính Viện Cơng nghệ Thông tin & Truyền Thông CuuDuongThanCong.com / 98 Ngày 20 tháng năm 2019 https://fb.com/tailieudientucntt an co ng c o Chương 3: Quản lý nhớ u du o ng th Chương Quản lý nhớ CuuDuongThanCong.com / 98 https://fb.com/tailieudientucntt .c o Chương 3: Quản lý nhớ ng Giới thiệu Mục đích hệ thống máy tính: thực chương trình an co Chương trình liệu (toàn phần) phải nằm nhớ thực Byte tích cực:Những byte nội dung thực thời điểm quan sát: Phần chương trình chưa đưa vào nhớ lưu nhớ thứ cấp (VD: đĩa cứng )⇒ Bộ nhớ ảo u du o ng th Cho phép lập trình viên khơng lo lắng giới hạn nhớ vật lý CuuDuongThanCong.com / 98 https://fb.com/tailieudientucntt .c o Chương 3: Quản lý nhớ ng Giới thiệu Mục đích hệ thống máy tính: thực chương trình an co Chương trình liệu (toàn phần) phải nằm nhớ thực Byte tích cực:Những byte nội dung thực thời điểm quan sát: Phần chương trình chưa đưa vào nhớ lưu nhớ thứ cấp (VD: đĩa cứng )⇒ Bộ nhớ ảo th Cho phép lập trình viên khơng lo lắng giới hạn nhớ vật lý Để s/d CPU hiệu tăng tốc độ đáp ứng hệ thống: ng Cần luân chuyển CPU thường xuyên tiến trình Điều phối CPU (Phần 3- Chương ) du o Cần nhiều tiến trình sẵn sàng nhớ u Hệ số song song hệ thống: Số tiến trình đồng thời tồn hệ thống CuuDuongThanCong.com / 98 https://fb.com/tailieudientucntt .c o Chương 3: Quản lý nhớ ng Giới thiệu Mục đích hệ thống máy tính: thực chương trình an co Chương trình liệu (tồn phần) phải nằm nhớ thực Byte tích cực:Những byte nội dung thực thời điểm quan sát: Phần chương trình chưa đưa vào nhớ lưu nhớ thứ cấp (VD: đĩa cứng )⇒ Bộ nhớ ảo th Cho phép lập trình viên khơng lo lắng giới hạn nhớ vật lý Để s/d CPU hiệu tăng tốc độ đáp ứng hệ thống: ng Cần luân chuyển CPU thường xuyên tiến trình Điều phối CPU (Phần 3- Chương ) du o Cần nhiều tiến trình sẵn sàng nhớ Hệ số song song hệ thống: Số tiến trình đồng thời tồn hệ thống u Tồn nhiều sơ đồ quản lý nhớ khác CuuDuongThanCong.com / 98 Nhiều sơ đồ đòi hỏi trợ giúp từ phần cứng Thiết kế phần cứng tích hợp chặt chẽ với HDH https://fb.com/tailieudientucntt .c o Chương 3: Quản lý nhớ co ng Nội dung Tổng quan Các chiến lược quản lý nhớ Bộ nhớ ảo Quản lý nhớ VXL họ Intel u du o ng th an CuuDuongThanCong.com / 98 https://fb.com/tailieudientucntt .c o Chương 3: Quản lý nhớ Tổng quan co ng Nội dung Tổng quan Các chiến lược quản lý nhớ Bộ nhớ ảo Quản lý nhớ VXL họ Intel u du o ng th an CuuDuongThanCong.com / 98 https://fb.com/tailieudientucntt ng Tổng quan co c o Chương 3: Quản lý nhớ Tổng quan 1.1 Ví dụ an Ví dụ Liên kết địa th Bộ nhớ chương trình u du o ng Các cấu trúc chương trình CuuDuongThanCong.com / 98 https://fb.com/tailieudientucntt co ng c o Chương 3: Quản lý nhớ Tổng quan 1.1 Ví dụ Demo: Chu lệnh Tạo file thực thi dùng ngôn ngữ máy Tạo file thực thi từ nhiều modul u du o ng th an CuuDuongThanCong.com / 98 https://fb.com/tailieudientucntt .c o Chương 3: Quản lý nhớ Tổng quan 1.1 Ví dụ ng Ví dụ 1: Tạo chương trình thực thi dùng ngơn ngữ máy an co #include char buf[19]={ 0xEB,0x08,0x48,0x65,0x6C, 0x6C,0x6F,0x21,0x24,0x90, 0xB4,0x09,0xBA,0x02,0x01,0xCD,0x21,0xCD,0x20}; u du o ng th int main(int argc, char *argv[]){ int i; FILE * f = fopen("Toto.com","w+"); for(i= 0; i < 19;i++) fprintf(f,"%c",buf[i]); fclose(f); return 0; } CuuDuongThanCong.com / 98 https://fb.com/tailieudientucntt .c o Chương 3: Quản lý nhớ Bộ nhớ ảo 3.1 Giới thiệu u du o ng th an co ng Xử lý lỗi trang Nếu khơng có frames https://fb.com/tailieudientucntt tự do, phải tiến hành đổi trang CuuDuongThanCong.com 86 / 98 .c o Chương 3: Quản lý nhớ Bộ nhớ ảo 3.1 Giới thiệu ng du o u CuuDuongThanCong.com 87 / 98 https://fb.com/tailieudientucntt Xác định vị trí trang logic đĩa Lựa chọn trang vật lý Ghi đĩa Sửa lại bit valid-invalid th an co ng Đổi trang Nạp trang logic vào trang vật lý chọn Restart tiến trình co ng c o Chương 3: Quản lý nhớ Bộ nhớ ảo 3.2 Các chiến lược đổi trang Bộ nhớ ảo an 3.1 Giới thiệu u du o ng th 3.2 Các chiến lược đổi trang CuuDuongThanCong.com 88 / 98 https://fb.com/tailieudientucntt .c o Chương 3: Quản lý nhớ Bộ nhớ ảo 3.2 Các chiến lược đổi trang ng Các chiến lược co FIFO (First In First Out): Vào trước trước an OPT/MIN Thuật toán thay trang tối ưu ng th LRU (Least Recently Used): Trang có lần sử dụng cuối cách lâu du o LFU (Least Frequently used):Tần xuất sử dụng thấp u MFU (Most Frequently used): Tần xuất sử dụng cao CuuDuongThanCong.com 89 / 98 https://fb.com/tailieudientucntt .c o Chương 3: Quản lý nhớ Bộ nhớ ảo 3.2 Các chiến lược đổi trang ng FIFO th an co Ví dụ du o ng Nhận xét Hiệu chương trình có cấu trúc tuyến tính Kém hiểu chương trình theo nguyên tắc lập trình cấu trúc Đơn giản dễ thực Dùng hàng đợi lưu trang chương trình nhớ Chèn cuối hàng, Thay trang đầu hàng u Tăng trang vật lý, không đảm bảo giảm số lần gặp lỗi trang CuuDuongThanCong.com 90 / 98 Dãy truy nhập: 5 frames: lỗi trang; frames: 10 lỗi trang https://fb.com/tailieudientucntt .c o Chương 3: Quản lý nhớ Bộ nhớ ảo 3.2 Các chiến lược đổi trang OPT ng ✞ ☎ Nguyên tắc: Đưa trang có lần sử dụng cách xa ✆ du o ng th an co ✝ Số lần gặp lỗi trang u Khó dự báo diễn biến chương trình CuuDuongThanCong.com 91 / 98 https://fb.com/tailieudientucntt .c o Chương 3: Quản lý nhớ Bộ nhớ ảo 3.2 Các chiến lược đổi trang LRU ☎ ng ✞ ng th an co Nguyên tắc: Đưa trang có lần sử dụng cuối cách xa ✆ ✝ du o Hiệu cho chiến lược thay trang Đảm bảo giảm số lỗi trang tăng số trang vật lý Tập trang nhớ có n frames ln tập trang nhớ có n + frames u Y/cầu trợ giúp kỹ thuật để thời điểm truy nhập cuối Cài đặt https://fb.com/tailieudientucntt nào? CuuDuongThanCong.com 92 / 98 .c o Chương 3: Quản lý nhớ Bộ nhớ ảo 3.2 Các chiến lược đổi trang ng LRU: Cài đặt Bộ đếm an co Thêm trường ghi thời điểm truy nhập vào phần tử PCB Thêm vào khối điều khiển (C.U) đồng hồ/bộ đếm Khi có yêu cầu truy nhâp trang th Tăng đếm Chép nội dung đếm vào trường thời điểm truy nhập phần tử tương ứng PCB du o Dãy số ng Cần có thủ tục cập nhật PCB (ghi vào trường thời điểm) thủ tục tìm kiếm trang có giá trị trường thời điểm nhỏ Hiện tượng tràn số !? Dùng dãy số ghi số trang Truy nhập tới trang, cho phần tử tương ứng lên đầu dãy u Thay trang: Phần tử cuối dãy Thường cài đặt dạng DSLK chiều CuuDuongThanCong.com 93 / 98 phép gán trỏ ⇒ tốn thời gian https://fb.com/tailieudientucntt .c o Chương 3: Quản lý nhớ Bộ nhớ ảo 3.2 Các chiến lược đổi trang co ng Thuật toán dựa đếm u du o ng th an Sử dụng đếm (một trường PCB) ghi nhận số lần truy nhập tới trang CuuDuongThanCong.com 94 / 98 https://fb.com/tailieudientucntt .c o Chương 3: Quản lý nhớ Bộ nhớ ảo 3.2 Các chiến lược đổi trang co ng Thuật toán dựa đếm Sử dụng đếm (một trường PCB) ghi nhận số lần truy nhập tới trang an LFU: Trang có đếm nhỏ bị thay th Trang truy nhập nhiều đến u du o ng Trang quan trọng ⇒ hợp lý Trang khởi tạo, dùng giai đoạn đầu ⇒ không hợp lý ⇒Dịch đếm bit (chia đôi) theo thời gian CuuDuongThanCong.com 94 / 98 https://fb.com/tailieudientucntt .c o Chương 3: Quản lý nhớ Bộ nhớ ảo 3.2 Các chiến lược đổi trang co ng Thuật toán dựa đếm Sử dụng đếm (một trường PCB) ghi nhận số lần truy nhập tới trang an LFU: Trang có đếm nhỏ bị thay th Trang truy nhập nhiều đến ng Trang quan trọng ⇒ hợp lý Trang khởi tạo, dùng giai đoạn đầu ⇒ không hợp lý ⇒Dịch đếm bit (chia đôi) theo thời gian MFU: Trang có đếm lớn nhât u du o Trang có đếm nhỏ nhất, vừa nạp vào chưa sử dụng nhiều CuuDuongThanCong.com 94 / 98 https://fb.com/tailieudientucntt .c o Chương 3: Quản lý nhớ Quản lý nhớ VXL họ Intel co ng Nội dung Tổng quan Các chiến lược quản lý nhớ Bộ nhớ ảo Quản lý nhớ VXL họ Intel u du o ng th an CuuDuongThanCong.com 95 / 98 https://fb.com/tailieudientucntt .c o Chương 3: Quản lý nhớ Quản lý nhớ VXL họ Intel ng Các chế độ Intel 8086, 8088 co Chỉ có chế độ quản lý: Chế độ thực (Real Mode) Quản lý vùng nhớ lên đến 1MB ( 20bit ) Xác định địa ô nhớ giá trị 16 bit: Segment, Offset th Intel 80286 an Thanh ghi đoạn: CS, SS, DS, ES, Thanh ghi độ lệch: IP, SP, BP Địa vật lý: Seg SHR +Ofs ng Chế độ thực, tương thích với 8086 Chế độ bảo vệ (Protected mode), du o Sử dụng phương pháp phân đoạn Khai thác nhớ vật lý 16M (24bit ) Intel 80386, Intel 80486, Pentium, u Chế độ thực, tương thích với 8086 Chế độ bảo vệ :Kết hợp phân đoạn, phân trang Chế độ ảo (Virtual mode) CuuDuongThanCong.com 96 / 98 Cho phép thực mã 8086 chế độ bảo vệ https://fb.com/tailieudientucntt .c o Chương 3: Quản lý nhớ Quản lý nhớ VXL họ Intel u du o ng th an co ng Chế độ bảo vệ Intel 386, 486, Pentium, CuuDuongThanCong.com 97 / 98 https://fb.com/tailieudientucntt .c o Chương 3: Quản lý nhớ Kết luận ng Tổng quan Ví dụ Bộ nhớ chương trình Liên kết địa Các cấu trúc chương trình Các chiến lược quản lý nhớ Chiến lược phân chương cố định Chiến lược phân chương động Chiến lược phân đoạn Chiến lược phân trang Chiến lược kết hợp phân đoạn-phân trang Bộ nhớ ảo 3.1 Giới thiệu 3.2 Các chiến lược đổi trang Quản lý nhớ VXL họ Intel u du o ng th an co CuuDuongThanCong.com 98 / 98 https://fb.com/tailieudientucntt ... o Chương 3: Quản lý nhớ u du o ng th Chương Quản lý nhớ CuuDuongThanCong.com / 98 https://fb.com/tailieudientucntt .c o Chương 3: Quản lý nhớ ng Giới thiệu Mục đích hệ thống máy tính: thực chương. .. Liên kết Nạp Thư viện hệ thống nạp động Liên kết động Dịch c o Chương 3: Quản lý nhớ Tổng quan 1 .3 Liên kết địa Chương trình nhớ Bộ nhớ .c o Chương 3: Quản lý nhớ Tổng quan 1 .3 Liên kết địa Địa... xuyên tiến trình Điều phối CPU (Phần 3- Chương ) du o Cần nhiều tiến trình sẵn sàng nhớ Hệ số song song hệ thống: Số tiến trình đồng thời tồn hệ thống u Tồn nhiều sơ đồ quản lý nhớ khác CuuDuongThanCong.com