Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 40 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
40
Dung lượng
746,31 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 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 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,… 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 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 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 26 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 27 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 28 Phân đoạn (3/3) logical address space physical memory space segment segment segment SinhVienZone.com segment https://fb.com/sinhvienzonevn 29 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 30 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 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 SinhVienZone.com https://fb.com/sinhvienzonevn 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 SinhVienZone.com https://fb.com/sinhvienzonevn 33 Phaân đoạn: Chuyển đổi đòa Ví dụ SinhVienZone.com https://fb.com/sinhvienzonevn 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 SinhVienZone.com data 72773 editor segment 43062 segment table process P2 90003 data 98853 physical memory https://fb.com/sinhvienzonevn 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 SinhVienZone.com https://fb.com/sinhvienzonevn 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 SinhVienZone.com https://fb.com/sinhvienzonevn 37 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 38 Segmentation with paging (2/3) SinhVienZone.com https://fb.com/sinhvienzonevn 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,… SinhVienZone.com https://fb.com/sinhvienzonevn 40 ... 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... 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) •... liên tục SinhVienZone. com https://fb .com/ sinhvienzonevn 28 Phân đoạn (3/3) logical address space physical memory space segment segment segment SinhVienZone. com segment https://fb .com/ sinhvienzonevn