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
1,06 MB
Nội dung
Kỹ thuật phân mảnh nhớ BK TP.HCM CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt Nội dung Có kỹ thuật chính: Kỹ thuật phân trang (paging) Kỹ thuật phân đoạn (segmentation) Kỹ thuật kết hợp BK TP.HCM CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt Kỹ thuật phân trang Không gian địa chỉ của quá trình chia thành những khối có cùng kích thước gọi là trang Kỹ thuật phân trang (paging) cho phép không gian địa chỉ vật lý (physical address space) của process không cần liên tục Bộ nhớ thực chia thành khới cớ định có kích thước gọi frame (tương ứng với trang) Thơng thường kích thước của frame lũy thừa của 2, từ khoảng 512 byte đến 16 MB Bộ nhớ luận lý (logical memory) hay không gian địa chỉ luận lý tập mọi địa chỉ luận lý của q trình – Đòa luận lý trình sinh cách dùng indexing, base register, segment register,… BK TP.HCM CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt Kỹ thuật phân trang (tt.) 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) để ánh xạ địa chỉ luận lý thành địa chỉ thực Mỗi process có bảng phân trang, quản lý qua trỏ lưu giữ PCB Thiết lập bảng phân trang cho process phần của chuyển ngữ cảnh Kỹ thuật phân trang khiến nhớ bị phân mảnh nội, khắc phục phân mảnh ngoại BK TP.HCM CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt Ví dụ: Phân trang frame number page number 0 1 2 3 logical memory BK page table page page page page physical memory TP.HCM CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt Chuyển đổi địa paging Địa chỉ luận lý gồm có: Page number, p, dùng làm chỉ mục vào bảng phân trang Mỗi mục (entry) bảng phân trang chứa chỉ số frame (còn gọi sớ frame cho gọn) của trang tương ứng nhớ thực Page offset, d, kết hợp với địa chỉ (base address) của frame để định vị địa chỉ thực BK TP.HCM Nếu kích thước của khơng gian địa chỉ ảo 2m, kích thước của trang 2n (byte hay word tùy theo kiến trúc máy) page number page offset p d m n bit (định vị từ 2m n 1) n bit (định vị từ 2n 1) Bảng phân trang có tổng cộng 2m/2n = 2m n mục CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính 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 Nếu kích thước của khơng gian nhớ thực là 2l byte, mục của bảng phân trang có l n bit BK physical memory page table frame number frame offset f, l n bit d, n bit TP.HCM CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt Chuyển đổi địa nhớ paging Ví dụ: BK TP.HCM CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt Hiện thực bảng phân trang Bảng phân trang thường lưu giữ nhớ Mỗi truy cập dữ liệu/lệnh cần hai thao tác truy xuất vùng nhớ BK Mỗi process hệ điều hành 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) biểu thị kích thước của bảng phân trang (có thể dùng chế bảo vệ nhớ) Dùng page number p làm index để truy cập mục bảng phân trang nhằm lấy số frame, dùng page offset d để truy xuất dữ liệu/lệnh frame 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) TP.HCM CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt Associative register (hardware) hay TLB, là ghi hỗ trợ tìm kiếm truy xuất dữ liệu với Số mục của TLB tốc độ cực nhanh Page # Frame # khoảng 2048 TLB “cache” của 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 # Nếu page number nằm TLB (: hit, trúng) lấy số frame tiết kiệm thời gian truy cập nhớ để lấy sớ frame bảng phân trang Ngược lại (: miss, trật), phải lấy sớ frame từ bảng phân trang bình thường BK TP.HCM CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 10 Chia sẻ trang nhớ ed data ed data ed ed ed data Process ed ed 6 ed 3 7 data ed ed BK ed ed 2 data 3 data Process 10 Process Bộ nhớ thực TP.HCM CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 24 Phân đoạn Nhìn lại kỹ thuật phân trang user view (không gian địa chỉ ảo) tách biệt với không gian nhớ thực Kỹ thuật phân trang thực phép ánh xạ user-view vào nhớ thực Trong thực tế, dưới góc nhìn của user, chương trình cấu thành từ nhiều đoạn (segment) Mỗi đoạn là đơn vị luận lý của chương trình, main program, procedure, function local variables, global variables, common block, stack, symbol table, arrays,… BK TP.HCM CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 25 Chương trình: user view 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 sau: Global variables Procedure call stack Procedure/function code Local variable procedure stack symbol table function sqrt main program Trình loader gán segment số định danh riêng BK TP.HCM CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 26 Phân đoạn (tt.) Dùng kỹ thuật phân đoạn (segmentation) để quản lý nhớ có hỗ trợ user view Không gian địa chỉ ảo là tập các đoạn, đoạn có tên và kích thước riêng Một địa chỉ luận lý định vị tên đoạn và độ dời (offset) bên đoạn đó (so sánh với phân trang!) BK TP.HCM CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 27 Phân đoạn (tt.) logical address space physical memory space segment segment segment segment BK TP.HCM CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 28 Hiện thực phân đoạn Địa chỉ luận lý cặp giá trị (segment number, offset) Bảng phân đoạn (segment table): gồm nhiều mục, mục chứa base, chứa địa chỉ khởi đầu của segment nhớ limit, xác định kích thước của segment 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 của chương trình Một chỉ sớ segment s hợp lệ s < STLR BK TP.HCM CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 29 Một ví dụ phân đoạn 1400 stack procedure procedure limit base 1000 1400 400 6300 400 4300 1100 3200 1000 4700 segment segment function sqrt symbol table segment main program segment segment segment table 2400 3200 stack 4300 main 4700 symbol table 5700 6300 logical address space BK function sqrt physical memory space TP.HCM CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính 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 BK trap; addressing error TP.HCM CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 31 Chuyển đổi địa kỹ thuật phân đoạn Ví dụ BK TP.HCM CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 32 Chia sẻ đoạn editor data segment limit base 25286 43062 4425 68348 editor segment segment table process P1 68348 logical address space process P1 limit base 25286 43062 8850 90003 data segment logical address space process P2 TP.HCM BK CuuDuongThanCong.com data 72773 editor segment 43062 segment table process P2 90003 data 98853 physical memory Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 33 Kết hợp phân trang phân đoạn 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 của chúng: Vấn đề của phân đoạn: đoạn có thể không nạp vào nhớ phân mảnh ngoại, mặc dù đủ không gian trống Ý tưởng giải quyết: paging đoạn, cho phép các page của đoạn nạp vào các frame không cần nằm liên tục BK TP.HCM CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 34 Kết hợp phân trang phân đoạn (tt.) Có nhiều cách kết hợp Một cách đơn giản là segmentation with paging Mỗi process có: 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 chỉ luận lý (địa chỉ ảo) bao gồm: segment number: chỉ số của mục bảng phân đoạn, mục chứa địa chỉ (base address) của bảng phân trang cho đoạn đó page number: chỉ số của mục bảng phân trang, mục chứa chỉ số frame nhớ thực offset: độ dời của vị trí nhớ frame nói BK TP.HCM CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 35 Segmentation with paging Minh họa frame frame frame frame frame frame frame BK TP.HCM CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 36 Segmentation with paging (tt.) BK TP.HCM CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 37 Segmentation with paging (tt.) Segment base: địa chỉ thực của bảng phân trang Present bit và modified bit chỉ tồn bảng phân trang Các thông tin bảo vệ và chia sẻ vùng nhớ thường nằm bảng phân đoạn BK Ví dụ: read-only/read-write bit,… TP.HCM CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 38 ... q tr nh – Đòa luận lý tr nh sinh cách dùng indexing, base register, segment register,… BK TP.HCM CuuDuongThanCong .com Khoa Khoa học & Kỹ thuật Máy t nh https://fb .com/ tailieudientucntt Kỹ thuật. .. giữ nh ́ Mỗi truy cập dữ liệu/l nh cần hai thao tác truy xuất vùng nh ́ BK Mỗi process hệ điều h nh cấp bảng phân trang Thanh ghi page-table base (PTBR) trỏ đến bảng phân trang Thanh. .. 10 12 Tiết kiệm chổ nh ́ chi nh cách chỉ giữ nh ́ chi nh các bảng phân trang ma process cần BK TP.HCM CuuDuongThanCong .com Khoa Khoa học & Kỹ thuật Máy t nh https://fb .com/ tailieudientucntt