Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 44 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
44
Dung lượng
780,82 KB
Nội dung
Phân trang, phân đoạn Cơ chế phân trang (paging) Cơ chế phân đoạn (segmentation) Segmentation with paging CuuDuongThanCong.com https://fb.com/tailieudientucntt Cơ chế phân trang (1/3) Cơ chế phân trang (paging) cho phép không gian địa vật lý (physical address space) process không liên tục Bộ nhớ thực chia thành khối cố định có kích thước gọi frame Thông thường kích thước frame lũy thừa 2, từ khoảng 512 byte đến 16 MB dễ dàng tính base address frame Nhắc lại, nhớ luận lý (logical memory) hay không gian địa luận lý tập địa luận lý trình Địa luận lý trình sinh cách dùng indexing, base register, segment register,… CuuDuongThanCong.com https://fb.com/tailieudientucntt Cơ chế phân trang (2/3) Bộ nhớ luận lý chia thành khối cố định có kích thước gọi trang nhớ (page) Frame trang nhớ có kích thước Hệ điều hành phải thiết lập bảng phân trang (page table) để chuyển đổi (translate) địa luận lý thành địa thực Mỗi process cấp phát bảng phân trang Thiết lập bảng phân trang cho process phần chuyển ngữ cảnh Cơ chế phân trang khiến nhớ bị phân mảnh nội, khắc phục phân mảnh ngoại CuuDuongThanCong.com https://fb.com/tailieudientucntt Cơ chế phân trang (3/3) frame number page number 0 1 2 3 logical memory page table page page page page physical memory CuuDuongThanCong.com https://fb.com/tailieudientucntt Chuyển đổi địa paging Địa luận lý gồm có: Page number, p, mục (index) vào bảng phân trang Mỗi mục (entry) bảng phân trang chứa số frame, gọi số frame cho gọn, chứa trang tương ứng nhớ thực Page offset, d, kết hợp với địa (base address) frame địa thực Nếu kích thước không gian địa ảo 2m kích thước trang 2n ô nhớ (byte hay word tùy theo kiến trúc máy) page number page offset p d n bit m n bit (định vị từ 2m n 1) (định vị từ 2n 1) Bảng phân trang có tổng cộng 2m/2n = 2m n mục CuuDuongThanCong.com https://fb.com/tailieudientucntt Paging hardware f frame physical address logical address p CPU d f f 00…00 d f 11…11 p f Neáu kích thước nhớ thực 2l (byte), mục bảng phân trang có l n bit để chứa frame number CuuDuongThanCong.com physical memory page table frame number frame offset f, l n bit d, n bit https://fb.com/tailieudientucntt Chuyển đổi địa nhớ paging Ví dụ: CuuDuongThanCong.com https://fb.com/tailieudientucntt Hiện thực bảng phân trang (1) Bảng phân trang giữ nhớ Mỗi process cấp bảng phân trang Thanh ghi page-table base (PTBR) trỏ đến bảng phân trang Thanh ghi page-table length (PTLR) chứa kích thước bảng phân trang CuuDuongThanCong.com https://fb.com/tailieudientucntt Hiện thực bảng phân trang (2) Mỗi truy cập liệu/lệnh cần hai thao tác truy xuất vùng nhớ Dùng page number p làm index để truy xuất mục bảng phân trang nhằm lấy số frame Dùng page offset d để truy xuất liệu/lệnh frame Do đó, thường dùng cache phần cứng có tốc độ truy xuất tìm kiếm cao, gọi ghi kết hợp (associative register) translation look-aside buffers (TLBs) Nguyên lý locality CuuDuongThanCong.com https://fb.com/tailieudientucntt TLB TLB tìm kiếm truy xuất liệu với tốc độ cực nhanh Số mục TLB Page number Frame number khoảng 2048 TLB cache bảng phân trang Khi có chuyển ngữ cảnh, TLB bị xóa Khi TLB đầy, thay mục dùng LRU Ánh xạ page number – Nếu page number có TLB (“hit”, trúng) lấy frame number tiết kiệm việc truy cập nhớ để lấy frame number từ bảng phân trang – Ngược lại (“miss”, trật), phải lấy frame number từ bảng phân trang bình thường CuuDuongThanCong.com https://fb.com/tailieudientucntt 10 Hiện thực phân đoạn Địa luận lý cặp (segment number, offset) Bảng phân đoạn (segment table): gồm nhiều mục, mục mô tả segment chứa limit, xác định kích thước segment base, chứa địa khởi đầu segment nhớ Segment-table base register (STBR): trỏ đến vị trí bảng phân đoạn nhớ Segment-table length register (STLR): số lượng segment chương trình Một số segment s hợp lệ s < STLR CuuDuongThanCong.com https://fb.com/tailieudientucntt 30 Một ví dụ phân đoạn stack 1400 procedure procedure segment segment function sqrt symbol table segment main program segment segment limit base 1000 1400 400 6300 400 4300 1100 3200 1000 4700 segment table 2400 3200 stack 4300 main 4700 symbol table 5700 6300 logical address space CuuDuongThanCong.com function sqrt physical memory space https://fb.com/tailieudientucntt 31 Ví dụ phân đoạn a) b) Segment Base Size 32K 2K 34K 2K 28K 2K Chuyển đổi địa luận lý địa vật lý 105 4250 CuuDuongThanCong.com https://fb.com/tailieudientucntt 32 Phần cứng hỗ trợ phân đoạn segment table s limit base CPU s d yes physical memory + no trap; addressing error CuuDuongThanCong.com https://fb.com/tailieudientucntt 33 Phân đoạn: Chuyển đổi địa Ví dụ CuuDuongThanCong.com https://fb.com/tailieudientucntt 34 Chia sẻ đoạn limit base 25286 43062 4425 68348 editor data segment segment editor segment table process P1 logical address space process P1 68348 limit base 25286 43062 8850 90003 data segment logical address space process P2 CuuDuongThanCong.com data 72773 editor segment 43062 segment table process P2 90003 data 98853 physical memory https://fb.com/tailieudientucntt 35 Kết hợp phân trang phân đoạn (1/2) Kết hợp phân trang phân đoạn nhằm tận dụng ưu điểm hạn chế khuyết điểm chúng: Vấn đề phân đoạn: đoạn không nạp vào nhớ, đủ không gian trống, phân mảnh ngoại Ý tưởng giải quyết: paging đoạn, cho phép page đoạn nạp vào frame không cần nằm liên tục CuuDuongThanCong.com https://fb.com/tailieudientucntt 36 Kết hợp phân trang phân đoạn (2/2) • Có nhiều cách kết hợp Một cách đơn giản segmentation with paging Mỗi process cấp: Một bảng phân đoạn Nhiều bảng phân trang: đoạn có bảng phân trang Một địa luận lý (địa ảo) bao gồm: segment number: số mục bảng phân đoạn, mục chứa địa (base address) bảng phân trang cho đoạn page number: số mục bảng phân trang, mục chứa số frame nhớ thực offset: độ dời vị trí ô nhớ frame nói CuuDuongThanCong.com https://fb.com/tailieudientucntt 37 Segmentation with paging (1/3) frame frame frame frame frame (STE: segment table entry PTE: page table entry) frame frame CuuDuongThanCong.com Fig https://fb.com/tailieudientucntt from Gottlieb 38 Segmentation with paging (2/3) CuuDuongThanCong.com https://fb.com/tailieudientucntt 39 Segmentation with paging (3/3) Segment base: địa thực bảng phân trang segment present (hay valid-invalid) bit modified bit tồn bảng phân trang Các thông tin bảo vệ chia sẻ vùng nhớ thường nằm bảng phân đoạn Ví dụ: read-only/read-write bit,… CuuDuongThanCong.com https://fb.com/tailieudientucntt 40 Ví dụ tham khảo CuuDuongThanCong.com https://fb.com/tailieudientucntt 41 EXAMPLE Assume that a task is divided into four equal-sized segments and that the system builds an eight-entry page descriptor table for each segment Thus, the system has a combination of segmentation and paging Assume also that the page size is Kbytes What is the maximum size of each segment? What is the maximum logical address space for the task? Assume that an element in physical location 00021ABC is accessed by this task What is the format of the logical address that the task generates for it? What is the maximum physical address space for the system? CuuDuongThanCong.com https://fb.com/tailieudientucntt EXAMPLE-2 This question refers to an architecture using segmentation with paging In this architecture, the 32-bit virtual address is divided into fields as follows: bit segment number 12 bit page number 16 bit offset Find the physical address corresponding to each of the following virtual addresses (answer "bad virtual address" if the virtual address is invalid) 00000000 20022002 10015555 CuuDuongThanCong.com https://fb.com/tailieudientucntt Segment table Page table A Page table B Page table A CAFE F000 Page table B DEAD D8BF x (rest invalid) BEEF X (rest invalid) BA11 X CuuDuongThanCong.com https://fb.com/tailieudientucntt ... bit) giữ mục bảng phân trang Các bit biểu thị thuộc tính trang read-only, read-write, execute-only Ngoài ra, có valid-invalid bit gắn với mục bảng phân trang; trị bit “valid”: cho biết... https://fb.com/tailieudientucntt 14 Bảo vệ valid-invalid bit 00000 10468 12287 frame valid-invalid number bit v 2 page v page v page v v v page - i page - i page page n Mỗi trang nhớ có kích... table Page offset: 12 bit 10-bit page number 10-bit page offset p1 p2 d 10 bit 10 bit 12 bit Vì vậy, địa luận lý hình vẽ bên • • p1 : số mục bảng phân trang mức (outer-page table) p2 : số mục bảng