hệ điều hành nguyễn thanh sơn lecturé0 kỹ thuật phan ma nh bộ nhớ sinhvienzone com

38 46 0
hệ điều hành nguyễn thanh sơn lecturé0 kỹ thuật phan ma nh bộ nhớ sinhvienzone com

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Kỹ thuật phân mảnh nhớ BK TP.HCM SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 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 SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 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 SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 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 SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 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 SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 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 SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính 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 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 SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn Chuyển đổi địa nhớ paging  Ví dụ: BK TP.HCM SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 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 SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 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 SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 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 SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 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 SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 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 SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 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 SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 27 Phân đoạn (tt.) logical address space physical memory space segment segment segment segment BK TP.HCM SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 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 SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 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 symbol table function sqrt 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 SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính 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 BK TP.HCM SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 31 Chuyển đổi địa kỹ thuật phân đoạn  Ví dụ BK TP.HCM SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 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 SinhVienZone.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/sinhvienzonevn 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 SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 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 SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 35 Segmentation with paging  Minh họa frame frame frame frame frame frame frame BK TP.HCM SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 36 Segmentation with paging (tt.) BK TP.HCM SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 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 SinhVienZone.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/sinhvienzonevn 38 ... b nh thường BK TP.HCM SinhVienZone. com Khoa Khoa học & Kỹ thuật Máy t nh https://fb .com/ sinhvienzonevn 10 Paging hardware với TLB BK TP.HCM SinhVienZone. com Khoa Khoa học & Kỹ thuật Máy t nh. .. Khoa học & Kỹ thuật Máy t nh https://fb .com/ sinhvienzonevn Chuyển đổi địa nh paging  Ví dụ: BK TP.HCM SinhVienZone. com Khoa Khoa học & Kỹ thuật Máy t nh https://fb .com/ sinhvienzonevn Hiện thực... của q tr nh – Đòa luận lý tr nh sinh cách dùng indexing, base register, segment register,… BK TP.HCM SinhVienZone. com Khoa Khoa học & Kỹ thuật Máy t nh https://fb .com/ sinhvienzonevn Kỹ thuật phân

Ngày đăng: 28/01/2020, 22:26

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan