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
681,12 KB
Nội dung
Chương Cơ chế phân trang (paging) Cơ chế phân đoạn (segmentation) Segmentation with paging SinhVienZone.com https://fb.com/sinhvienzonevn 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,… SinhVienZone.com https://fb.com/sinhvienzonevn 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 SinhVienZone.com https://fb.com/sinhvienzonevn 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 SinhVienZone.com https://fb.com/sinhvienzonevn 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 SinhVienZone.com https://fb.com/sinhvienzonevn 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 SinhVienZone.com physical memory page table frame number frame offset f, l n bit d, n bit https://fb.com/sinhvienzonevn Chuyển đổi địa nhớ paging Ví dụ: SinhVienZone.com https://fb.com/sinhvienzonevn 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ớ) SinhVienZone.com https://fb.com/sinhvienzonevn 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 SinhVienZone.com https://fb.com/sinhvienzonevn 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 SinhVienZone.com https://fb.com/sinhvienzonevn 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 SinhVienZone.com Bộ nhớ thực https://fb.com/sinhvienzonevn 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,… SinhVienZone.com https://fb.com/sinhvienzonevn 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 SinhVienZone.com https://fb.com/sinhvienzonevn 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 SinhVienZone.com https://fb.com/sinhvienzonevn 27 Phân đoạn (3/3) logical address space physical memory space segment segment segment SinhVienZone.com segment https://fb.com/sinhvienzonevn 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 SinhVienZone.com https://fb.com/sinhvienzonevn 29 Một ví dụ phân đoạn stack 1400 procedure procedure segment segment symbol table function sqrt 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 SinhVienZone.com function sqrt physical memory space https://fb.com/sinhvienzonevn 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 SinhVienZone.com https://fb.com/sinhvienzonevn 31 Phaân đoạn: Chuyển đổi địa Ví dụ SinhVienZone.com https://fb.com/sinhvienzonevn 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 SinhVienZone.com data 72773 editor segment 43062 segment table process P2 90003 data 98853 physical memory https://fb.com/sinhvienzonevn 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 SinhVienZone.com https://fb.com/sinhvienzonevn 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 SinhVienZone.com https://fb.com/sinhvienzonevn 35 Segmentation with paging (1/3) frame frame frame frame frame (STE: segment table entry PTE: page table entry) frame frame SinhVienZone.com https://fb.com/sinhvienzonevnFig from Gottlieb 36 Segmentation with paging (2/3) SinhVienZone.com https://fb.com/sinhvienzonevn 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í duï: read-only/read-write bit,… SinhVienZone.com https://fb.com/sinhvienzonevn 38 ... liên tục SinhVienZone. com https://fb .com/ sinhvienzonevn 27 Phân đoạn (3/3) logical address space physical memory space segment segment segment SinhVienZone. com segment https://fb .com/ sinhvienzonevn... frame number từ bảng phân trang bình thường SinhVienZone. com https://fb .com/ sinhvienzonevn 10 Paging hardware với TLB SinhVienZone. com https://fb .com/ sinhvienzonevn 11 Đánh giá hiệu TLB (1/2) ... number SinhVienZone. com physical memory page table frame number frame offset f, l n bit d, n bit https://fb .com/ sinhvienzonevn Chuyển đổi địa nhớ paging Ví dụ: SinhVienZone. com https://fb .com/ sinhvienzonevn