Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 38 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
38
Dung lượng
685,2 KB
Nội dung
Chương 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 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 (có thể dùng chế bảo vệ nhớ) 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 Chia sẻ trang nhớ Process ed data ed data ed Process ed ed ed ed 6 ed 3 7 data data ed ed ed ed 2 data 3 data 10 Process CuuDuongThanCong.com Bộ nhớ thực https://fb.com/tailieudientucntt 24 Phân đoạn (1/3) Dưới góc nhìn user, chương trình cấu thành từ nhiều đơn vị luận lý gọi đoạn (segment) Lệnh: main program, procedure, function Dữ liệu: local variables, global variables, common block, stack, symbol table, arrays,… CuuDuongThanCong.com https://fb.com/tailieudientucntt 25 User view chương trình Thông thường, chương trình biên dịch Trình biên dịch tự động xây dựng segment Ví dụ, trình biên dịch Pascal tạo segment Global variables Procedure call stack Procedure/function code Local variable stack procedure symbol table function sqrt main program Trình loader gán segment số định danh riêng CuuDuongThanCong.com https://fb.com/tailieudientucntt 26 Phân đoạn (2/3) Dùng chế phân đoạn (segmentation) quản lý nhớ có hỗ trợ user view Không gian địa ảo tập đoạn, đoạn có tên kích thước riêng Một địa luận lý gồm tên đoạn độ dời (offset) bên đoạn (so sánh với phân trang!) Cho phép không gian địa vật lý cấp cho process không liên tục CuuDuongThanCong.com https://fb.com/tailieudientucntt 27 Phân đoạn (3/3) logical address space physical memory space segment segment segment CuuDuongThanCong.com segment https://fb.com/tailieudientucntt 28 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 29 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 30 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 31 Phaân đoạn: Chuyển đổi địa Ví dụ CuuDuongThanCong.com https://fb.com/tailieudientucntt 32 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 33 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 34 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 35 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 36 Segmentation with paging (2/3) CuuDuongThanCong.com https://fb.com/tailieudientucntt 37 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 38 ... 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