Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 58 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
58
Dung lượng
1,63 MB
Nội dung
Hệ Điều Hành Chương Quản Lý Bộ Nhớ Giảng viên TS Trần Công Án tcan@cit.ctu.edu.vn Khoa Công Nghệ Thông Tin & Truyền Thông Đại học Cần Thơ [HĐH] Ch5 Quản lý nhớ Mục Tiêu Mô tả chi tiết phương pháp tổ chức nhớ Giải thích kỹ thuật quản lý nhớ bao gồm phân trang phân đoạn Một số ví dụ thực tế quản lý nhớ: quản lý phân đoạn xử lý Intel Pentium quản lý địa nhớ HĐH Linux TS Trần Công Án [HĐH] Ch5 Quản lý nhớ [HĐH] Ch5 Quản lý nhớ Nội Dung Tổng quan Bộ nhớ Tiến trình Hốn vị (swapping) Cấp phát nhớ kề (Contigous allocation) Phân trang (Paging) Các cấu trúc bảng trang Phân đoạn (Segmentation) Kết hợp phân trang phân đoạn Phụ lục – Một Số Ví Dụ TS Trần Cơng Án [HĐH] Ch5 Quản lý nhớ [HĐH] Ch5 Quản lý nhớ Tổng quan Bộ nhớ Tiến trình Tổng quan nhớ Giới Thiệu Bộ Nhớ CPU truy xuất trực tiếp ghi nhớ ⇒ Để thực thi chương trình, đoạn mã chương trình phải tải vào nhớ đặt tiến trình Thanh ghi: dạng nhớ đặc biệt, đặt bên CPU tối đa chu kỳ CPU để truy xuất Bộ nhớ chính: tốc độ truy xuất chậm ghi, đòi hỏi vài chu kỳ Bộ nhớ cache: nhớ trung gian ghi nhớ chính, tốc độ truy xuất nhanh, chậm ghi Việc bảo vệ nhớ cần thiết để đảm bảo thực thi đắn tiến trình, đặc biệt mơi trường đa nhiệm TS Trần Công Án [HĐH] Ch5 Quản lý nhớ [HĐH] Ch5 Quản lý nhớ Tổng quan Bộ nhớ Tiến trình Thanh ghi ghi giới hạn Thanh Ghi Nền & Thanh Ghi Giới Hạn 8.1 Back Hỗ trợ việc phân chia vùng nhớ cho tiến trình Thanh ghi (base): xác định giới hạn vùng nhớ vật lý thấp Thanh ghi giới hạn (limit): xác định kích thước vùng nhớ ⇒ Địa vùng nhớ mà tiến trình truy xuất: [base, base+limit] operating system 256000 process 300040 300040 process base 120900 420940 process limit 880000 1024000 Figure 8.1 A base and a limit register define a logical address TS Trần Công Án [HĐH] Ch5 Quản lý nhớ Protection [HĐH] Ch5 Quản lý nhớ of memory space is accomplished by having the CPU hardware compare every address Tổng quan Bộ nhớ Tiến trìnhgenerated in user mode with the registers Any attempt bykhông a program Bảo vệ gian nhớexecuting in user mode to access operating-system memory or other users’ memory results in a trap to the operating system, which treats the attempt as a fatal error (Figure 8.2) This scheme prevents a user program from (accidentally or deliberately) modifying the code or data structures of either the operating system or other users The base and limit registers can be loaded only by the operating system, which uses a special privileged instruction Since privileged instructions can Được thực thi CPU,mode, sử dụng t/ghi t/ghi giớiexecutes hạn be executed onlybởi in kernel and since onlycơ thesở operating system in kernel mode, only the operating system can load the base and limit registers Bảo Vệ Không Gian Nhớ Bằng Phần Cứng Hai ghi thay đổi HĐH, với quyền đặc biệt base CPU address base ϩ limit yes ≥ yes < no no trap to operating system monitor—addressing error memory Figure 8.2 Hardware address protection with base and limit registers TS Trần Công Án [HĐH] Ch5 Quản lý nhớ [HĐH] Ch5 Quản lý nhớ Hoán vị (swapping) Hoán Đổi (Swapping) Là kỹ thuật cho phép tổng khơng gian nhớ tiến trình lớn tổng không gian nhớ vật lý: Một (hay phần) tiến trình di chuyển tạm thời từ nhớ thiết bị lưu trữ phụ (cuộn – roll/swap out) sau di chuyển ngược vào nhớ để tiếp tục thực thi (cuộn vào – roll/swap in) Cho phép tăng độ đa nhiệm hệ thống đa chương Tốc độ thiết bị lưu trữ phụ phải đủ nhanh để chép trạng nhớ (memory image) tiến trình cho phép truy cập trực tiếp liệu TS Trần Công Án [HĐH] Ch5 Quản lý nhớ memory of the system, thus increasing the degree of multiprogramming in a [HĐH] Ch5 Quản lý nhớ system Hoán vị (swapping) Roll in, Roll out 8.2.1 Standard Swapping Standard swapping involves moving processes between main memory and a backing store The backing store is commonly a fast disk It must be large Swap Out, Swap In operating system swap out process P1 process P2 swap in user space backing store main memory Figure 8.5 Swapping of two processes using a disk as a backing store TS Trần Công Án [HĐH] Ch5 Quản lý nhớ [HĐH] Ch5 Quản lý nhớ Hoán vị (swapping) Cài Đặt Hoán Đổi Cài Đặt Hoán Đổi Phần thời gian hốn đổi thời gian chuyển liệu (transfer time), thường tỷ lệ với kích thước nhớ hốn đổi Hệ thống trì hàng đợi sẵn sàng để lưu trữ danh sách tiến trình sẵn sàng thực thi hoán đổi vùng lưu trữ phụ Thời gian chuyển ngữ cảnh cách tiếp cận tương đối cao ⇒ thường không khả thi thực tế Các phiên sửa đổi swapping sử dụng hệ điều hành tại: Swapping bình thường bị vơ hiệu hóa Nó kích hoạt nhu cầu nhớ đạt đến ngưỡng TS Trần Công Án [HĐH] Ch5 Quản lý nhớ [HĐH] Ch5 Quản lý nhớ Cấp phát nhớ kề (Contigous allocation) Giới thiệu Cấp Phát Bộ Nhớ Kề Nhau Là p/pháp cấp phát nhớ sử dụng Bộ nhớ thường chia thành phần: Phần thường trú HĐH: tổ chức vùng nhớ thấp (các vector ngắt) Tiến trình người dùng: tổ chức vùng nhớ cao Mỗi tiến trình cấp phát vùng nhớ đơn, liên tục Bộ quản lý nhớ thực ánh xạ địa luận lý sang vật lý vào thời gian thực thi (động): địa vật lý = địa luận lý + giá trị ghi tái định vị TS Trần Công Án [HĐH] Ch5 Quản lý nhớ 10 [HĐH] Ch5 Quản lý nhớ Phân đoạn (Segmentation) Kiến trúc hệ thống phân đoạn Kiến Trúc Hệ Thống Phân Đoạn Một địa luận lý bao gồm cặp: segment_number , offset Bảng phân đoạn (segment table): chứa mục ánh xạ địa luận lý (2 chiều) vào địa vật lý chiều; mục gồm: base: chứa địa vật lý khởi đầu đoạn nhớ vật lý limit: định chiều dài đoạn Segment-table base register (STBR): ghi trỏ đến bảng phân đoạn nhớ Segment-table length register (STLR): ghi số lượng đoạn sử dụng chương trình TS Trần Công Án [HĐH] Ch5 Quản lý nhớ 44 [HĐH] Ch5 Quản lý nhớ Phân đoạn (Segmentation) Phần cứng hỗ trợ phân đoạn Phần Cứng Hỗ Trợ Phân Đoạn Một Chapter đoạn có số hiệu s hợp lệ s < STLR Main Memory 366 s limit base CPU s segment table d yes < + no trap: addressing error TS Trần Công Án Figure 8.8 Ch5 Segmentation hardware [HĐH] Quản lý nhớ physical memory 45 [HĐH] Ch5 Quản lý nhớ Phân đoạn (Segmentation) Phần cứng hỗ trợ phân đoạn Ví Dụ Về Phân Đoạn subroutine stack 1400 segment segment segment Sqrt segment main program segment 2400 symbol table segment limit base 1000 400 400 1100 1000 1400 6300 4300 3200 4700 segment table 3200 segment 4300 4700 segment segment logical address space 5700 6300 6700 segment physical memory TS Trần Công Án [HĐH] Ch5 Quản lý nhớ 46 [HĐH] Ch5 Quản lý nhớ Phân đoạn (Segmentation) Bảo vệ chia sẻ đoạn Bảo Vệ Và Chia Sẻ Đoạn Chia sẻ đoạn: Bảo vệ đoạn: kết hợp mục bảng phân đoạn editor bit bảo vệ để đánh dấu đoạn hợp lệ/không hợp lệ segment data segment base 25286 43062 4425 68348 editor segment data segment logical address space process P2 [HĐH] Ch5 Quản lý nhớ 43062 editor segment table process P1 logical address space process P1 bits kiểm soát quyền (đọc, ghi, thực thi, ) TS Trần Công Án limit 68348 data 72773 limit base 25286 43062 8850 90003 segment table process P2 90003 data 98853 physical memory! 47 [HĐH] Ch5 Quản lý nhớ Kết hợp phân trang phân đoạn Kết Hợp Phân Trang Và Phân Đoạn Nhằm giải trường hợp bảng phân đoạn lớn Ý tưởng: phân đoạn bảng phân trang (segmented paging) Mỗi tiến trình có bảng phân đoạn nhiều bảng phân trang Mỗi mục bảng phân đoạn ánh xạ vào bảng phân trang Cấu trúc địa luận lý: seg _number , page_number , offset seg_number : số mục bảng phân đoạn, dùng để xác định địa bảng phân trang page_number : số mục bảng phân trang, dùng để xác định số khung offset: xác định địa nhớ vật lý TS Trần Công Án [HĐH] Ch5 Quản lý nhớ 48 [HĐH] Ch5 Quản lý nhớ Kết hợp phân trang phân đoạn Dịch Địa Chỉ TS Trần Công Án [HĐH] Ch5 Quản lý nhớ 49 [HĐH] Ch5 Quản lý nhớ Kết hợp phân trang phân đoạn Ví Dụ frame frame frame frame frame frame frame TS Trần Công Án [HĐH] Ch5 Quản lý nhớ 50 Phụ Lục – Ví Dụ [HĐH] Ch5 Quản lý nhớ Phụ lục – Một Số Ví Dụ Phân Trang Trong BXL Intel Pentium Sử dụng sơ đồ: phân đoạn kết hợp phân đoạn với phân trang Sơ đồ dịch địa phân đoạn: CPU logical address segmentation unit linear address Địa luận lý (segmentation): paging unit s g p 13 page number Địa tuyến tính (paging): TS Trần Cơng Án physical address p1 [HĐH] Ch5 Quản lý nhớ p2 physical memory page offset d 52 [HĐH] Ch5 Quản lý nhớ Phụ lục – Một Số Ví Dụ Phân Đoạn logical address selector offset descriptor table segment descriptor + 32-bit linear address TS Trần Công Án [HĐH] Ch5 Quản lý nhớ 53 [HĐH] Ch5 Quản lý nhớ Phụ lục – Một Số Ví Dụ Phân Trang (linear address) page table page directory 31 22 21 offset 12 11 page table 4-KB page page directory CR3 register 4-MB page offset page directory 31 TS Trần Công Án 22 21 [HĐH] Ch5 Quản lý nhớ 54 [HĐH] Ch5 Quản lý nhớ Phụ lục – Một Số Ví Dụ Mở Rộng Địa Chỉ PAE TS Trần Công Án [HĐH] Ch5 Quản lý nhớ 55 [HĐH] Ch5 Quản lý nhớ Phụ lục – Một Số Ví Dụ Phân Trang Cấp Trên Linux TS Trần Công Án [HĐH] Ch5 Quản lý nhớ 56 [HĐH] Ch5 Quản lý nhớ Tổng Kết Tổng Kết Tổng quan Bộ nhớ Tiến trình Hốn vị (swapping) Cấp phát nhớ kề (Contigous allocation) Phân trang (Paging) Các cấu trúc bảng trang Phân đoạn (Segmentation) Kết hợp phân trang phân đoạn Phụ lục – Một Số Ví Dụ TS Trần Cơng Án [HĐH] Ch5 Quản lý nhớ 57 ... định địa nhớ vật lý TS Trần Công Án [HĐH] Ch5 Quản lý nhớ 48 [HĐH] Ch5 Quản lý nhớ Kết hợp phân trang phân đoạn Dịch Địa Chỉ TS Trần Công Án [HĐH] Ch5 Quản lý nhớ 49 [HĐH] Ch5 Quản lý nhớ Kết hợp... bảng trang chiếm 4B: cần 10 bits để đánh số cho mục bảng trang Còn lại 10 bits dùng để đánh số mục bảng trang cấp TS Trần Công Án [HĐH] Ch5 Quản lý nhớ 34 [HĐH] Ch5 Quản lý nhớ Các cấu trúc bảng... trang 2n bytes m-n bits cao dùng để đánh số trang n bits thấp dùng để gán độ dời trang TS Trần Công Án page number page offset p d m–n n [HĐH] Ch5 Quản lý nhớ 16 [HĐH] Ch5 Quản lý nhớ Phân trang