Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 13 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
13
Dung lượng
260,2 KB
Nội dung
6 Memory Management Khái niệm sở Các kiểu đòa nhớ Chuyển đổi đòa nhớ Overlay swapping Mô hình quản lý nhớ đơn giản – Fixed partitioning – Dynamic partitioning Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -9.1- Khái niệm sở Quản lý nhớ công việc hệ điều hành với hỗ trợ phần cứng nhằm phân phối, xếp process nhớ cho hiệu Mục tiêu cần đạt nạp nhiều process vào nhớ tốt (gia tăng mức độ đa chương) Trong hầu hết hệ thống, kernel chiếm phần cố đònh nhớ; phần lại phân phối cho process Các yêu cầu việc quản lý nhớ – – – – – Cấp phát nhớ cho process Tái đònh vò (relocation): swapping, Bảo vệ: phải kiểm tra truy xuất nhớ có hợp lệ không? Chia sẻ: cho phép process chia sẻ vùng nhớ chung Kết gán đòa nhớ luận lý user vào đòa thực (physical) Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM SinhVienZone.com https://fb.com/sinhvienzonevn -9.2- Các kiểu đòa nhớ Đòa vật lý (physical address) (đòa thực, đòa tuyệt đối) vò trí thực nhớ Đòa luận lý (logical address) tham chiếu đến vò trí nhớ độc lập với cấu trúc, tổ chức vật lý nhớ – Các trình biên dòch (compiler) tạo mã lệnh chương trình mà tham chiếu nhớ đòa luận lý Đòa tương đối (relative address) kiểu đòa luận lý đòa biểu diễn tương đối so với điểm xác đònh chương trình (ví dụ: 12 byte so với điểm bắt đầu chương trình, ) Khi lệnh thực thi, tham chiếu đến đòa luận lý phải chuyển đổi thành đòa thực Thao tác chuyển đổi thường có hỗ trợ phần cứng để đạt hiệu suất cao Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -9.3- Nạp chương trình vào nhớ(t.t) Bộ linker: kết hợp object module thành file nhò phân khả thực thi gọi load module Bộ loader: nạp load module vào nhớ System Library static linking dynam ic linking System Library Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM SinhVienZone.com https://fb.com/sinhvienzonevn -9.4- Cơ chế thực linking 0 M odule A C A LL B R elocatable O bjectM odules Length L L-1 R eturn M odule A JM P “L” L-1 R eturn L M odule B JM P “L+M ” Load M odule Length M C A LL C M odule B L+M -1 R eturn M -1 R eturn L+M M odule C M odule C Length N L+M +N -1 R eturn N -1 R eturn Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -9.5- Chuyển đổi đòa nhớ Chuyển đổi đòa – trình ánh xạ đòa từ không gian đòa sang không gian đòa khác Biểu diễn đòa nhớ – Trong source code: symbolic (các biến, hằng, pointer, ) – Thời điểm biên dòch (compile): đòa khả tái đònh vò (relocatable address), đòa tương đối (relative address) Ví dụ: a vò trí 14 bytes so với phần header module – Thời điểm linking/loading: đòa tuyệt đối Ví dụ: liệu nằm đòa nhớ thực: 2030 int I; goto p1; 2000 250 2250 p1 Sym bolic Address R e-locatable Address Absolute Address (PhysicalM em ory) Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM SinhVienZone.com https://fb.com/sinhvienzonevn -9.6- Chuyển đổi đòa (t.t) Đòa lệnh (instruction) liệu (data) chuyển đổi thành đòa vật lý nhớ thực xảy ba thời điểm khác – Compile time: biết trước đòa nhớ kết gán đòa vật lý (đòa thực) lúc biên dòch ⇒ Ví dụ: chương trình COM MS-DOS, phát biểu assemply org xxx ⇒ Khuyết điểm: phải biên dòch lại thay đổi đòa – Load time: thời điểm biên dòch, đòa thực vào thời điểm loading, phải chuyển đổi đòa khả tái đònh vò (re-locatable) theo mốc chuẩn (base address) Đòa thực tính toán lại vào thời điểm chương trình thực thi ⇒ phải tiến hành reload đòa base thay đổi Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -9.7- Chuyển đổi vào thời điểm dòch Absolute Addresses (PhysicalM em ory Addresses) Sym bolic Addresses PR O G R AM Absolute Addresses (PhysicalM em ory Addresses) 1024 JU M P i 1024 JU M P 1424 i JU M P 1424 1424 LO AD j 1424 LO A D 2224 C om pile LO A D 2224 Link/Load D ATA j 2224 Source C ode 2224 Absolute Load M odule Process Im age Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM SinhVienZone.com https://fb.com/sinhvienzonevn -9.8- Chuyển đổi vào thời điểm nạp R elative (R elocatable) Addresses Sym bolic Addresses PR O G R AM Absolute Addresses (PhysicalM em ory Addresses) 1024 JU M P i JU M P 400 i JU M P 1424 400 LO AD j 1424 LO A D 1200 C om pile LO A D 2224 Link/Load D ATA j 1200 Source C ode 2224 R elative Load M odule Process Im age Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -9.9- Chuyển đổi đòa (t.t) Execution time: trình chuyển đổi trì hoãn đến thời điểm thực thi (run time) – Trong trình thực thi, process di chuyển từ segment sang segment khác nhớ – CPU tạo đòa tương đối cho process – Cần hỗ trợ phần cứng cho việc ánh xạ đòa (ví dụ có ghi base limit, ) – Sử dụng đa số OS đa dụng (general-purpose) có chế swapping, paging, segmentation R elative (R elocatable) Addresses JM P 400 400 LO A D 1200 1200 M AX =2000 Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM SinhVienZone.com -9.10- https://fb.com/sinhvienzonevn Dynamic Linking Quá trình link số module (external module) thực sau tạo xong load module (i.e file thực thi – executable) – Ví dụ Windows: module file DLL Unix, module file so (shared library) Load module chứa tham chiếu (reference) đến external module Các tham chiếu chuyển đổi vào hai thời điểm sau: – Loading time (load-time dynamic linking) – Run time: có lời gọi đến thủ tục đònh nghóa external module (run-time dynamic linking) OS chòu trách nhiệm tìm external module kết nối vào load module (kiểm tra xem external module nạp vào nhớ chưa) Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -9.11- Ưu điểm Dynamic Linking Thông thường, external module thủ tục, thư viện cung cấp tiện ích OS Các chương trình thực thi dùng phiên khác external module mà không cần sửa đổi, biên dòch lại Chia sẻ mã (code sharing): external module cần nạp vào nhớ lần Các process cần dùng external module chia sẻ đoạn mã external module ⇒ tiết kiệm không gian nhớ đóa Phương pháp dynamic linking cần hỗ trợ OS việc kiểm tra xem thủ tục chia sẻ process phần mã riêng process ( có OS có quyền thực việc kiểm tra này) Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM SinhVienZone.com -9.12- https://fb.com/sinhvienzonevn Dynamic Loading Cơ chế: gọi đến thủ tục nạp vào nhớ ⇒ tăng độ hiệu dụng nhớ (memory utilization) thủ tục dùng không chiếm chỗ nhớ Rất hiệu trường hợp tồn khối lượng lớn mã chương trình có tần suất sử dụng thấp, không sử dụng thường xuyên (ví dụ thủ tục xử lý lỗi) Không cần hỗ trợ đặc biệt hệ điều hành – Thông thường, user chòu trách nhiệm thiết kế thực chương trình có dynamic-loading – Hệ điều hành chủ yếu cung cấp số thủ tục thư viện hỗ trợ, tạo điều kiện dễ dàng cho lập trình viên Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -9.13- Cơ chế Overlay Tại thời điểm, giữ lại nhớ lệnh liệu cần thiết, giải phóng lệnh/dữ liệu chưa không cần dùng đến Cơ chế hữu dụng kích thước process lớn không gian nhớ cấp cho process Cơ chế điều khiển người sử dụng (thông qua hỗ trợ thư viện lập trình) không cần hỗ trợ hệ điều hành Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM SinhVienZone.com -9.14- https://fb.com/sinhvienzonevn Cơ chế Overlay (t.t) Pass 70K Pass 80K Sym Table 20K sym bol table 20K com m on routines 30K overlay driver 10K C om m on R outines 30K Assem bler TotalM em ory Available = 150K 80K pass pass 70K Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -9.15- Cơ chế swapping Một process tạm thời bò swap khỏi nhớ lưu hệ thống lưu trữ phụ Sau đó, process nạp lại vào nhớ để tiếp tục trình thực thi – Round-robin: swap-out A, swap-in B, thực thi C – Roll out, roll in – dùng chế đònh thời theo độ ưu tiên ( priority-based scheduling) Process có độ ưu tiên thấp bò swap-out nhường chỗ cho process có độ ưu tiên cao nạp vào nhớ để thực thi – Medium-term scheduler Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM SinhVienZone.com -9.16- https://fb.com/sinhvienzonevn Minh họa chế swapping Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -9.17- Mô hình quản lý nhớ thực Trong chương này, mô hình quản lý nhớ mô hình đơn giản, nhớ ảo Một process phải nạp hoàn toàn vào nhớ thực thi (ngoại trừ việc sử dụng chế overlay) Các chế quản lý nhớ thực sau (hầu không còn) dùng hệ thống đại, nhiên ý tưởng sở cho mô hình quản lý nhớ ảo sau này: – – – – Phân chia cố đònh (fixed partitioning) Phân chia động (dynamic partitioning) Phân trang đơn giản (simple paging) Phân đoạn đơn giản (simple segmentation) Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM SinhVienZone.com -9.18- https://fb.com/sinhvienzonevn Phân mảnh (fragmentation) Phân mảnh ngoại (external fragmentation) – Kích thước không gian nhớ trống đủ để thỏa mãn yêu cầu cấp phát, nhiên không gian nhớ không liên tục ⇒ phải dùng chế kết khối (compaction) Phân mảnh nội (internal fragmentation) – Kích thước vùng nhớ cấp phát lớn vùng nhớ yêu cầu Ví dụ: cấp khoảng trống 18,464 bytes cho process yêu cầu 18,462 bytes – Hiện tượng phân mảnh nội thường xảy nhớ thực (physical memory) chia thành khối kích thước cố đònh(fixed-sized block) process cấp phát theo đơn vò khối Ví dụ: chế phân trang (paging) Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -9.19- Phân mảnh nội operating system yêu cầu 18,462 bytes !!! (used) hole kích thước 18,464 bytes cần quản lý khoảng trống bytes !?! OS cấp phát hẳn khối 18,464 bytes cho yêu cầu process ⇒ dư bytes không dùng ! Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM SinhVienZone.com -9.20- https://fb.com/sinhvienzonevn 10 Fixed Partitioning Chia nhớ thành nhiều phần không trùng lấp lên gọi partition có kích thước khác Process có kích thước nhỏ kích thước partition nạp vào partition Nếu chương trình có kích thước lớn partition phải dùng chế overlay Nhận xét – Không hiệu bò phân mảnh nội: chương trình dù lớn hay nhỏ chiếm trọn partition Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -9.21- Chiến lược placement Partition có kích thước – Còn partition trống ⇒ process nạp vào partition – Không partition trống có process bò blocked ⇒ swap process nhớ phụ nhường chỗ cho process Partition có kích thước không – Gán process vào partition nhỏ phù hợp với – Có hàng đợi cho partition – Giảm thiểu phân mảnh nội – Vấn đề: có số hàng đợi trống không (vì process với kích thước tương ứng) hàng đợi dày đặc Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM SinhVienZone.com -9.22- https://fb.com/sinhvienzonevn 11 Chiến lược placement (t.t) Partition có kích thước không – Chỉ có hàng đợi chung cho partition – Khi cần nạp process vào nhớ ⇒ chọn partition nhỏ trống Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -9.23- Dynamic Partitioning Số lượng partition không cố đònh partition có kích thước khác Mỗi process cấp phát xác dung lượng nhớ cần thiết Gây tượng phân mảnh ngoại (external fragmentation) Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM SinhVienZone.com -9.24- https://fb.com/sinhvienzonevn 12 Chiến lược placement Dùng để đònh cấp phát khối nhớ trống cho process Mục tiêu: giảm thiểu chi phí compaction (time consuming) Các chiến lược placement – Best-fit: chọn khối nhớ trống nhỏ – First-fit: chọn khối nhớ trống phù hợp kể từ đầu nhớ – Next-fit: chọn khối nhớ trống phù hợp kể từ vò trí cấp phát cuối – Worst fit: chọn khối nhớ trống lớn Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM SinhVienZone.com -9.25- https://fb.com/sinhvienzonevn 13 ... hình quản lý nhớ thực Trong chương này, mô hình quản lý nhớ mô hình đơn giản, nhớ ảo Một process phải nạp hoàn toàn vào nhớ thực thi (ngoại trừ việc sử dụng chế overlay) Các chế quản lý nhớ. .. hệ điều hành Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM SinhVienZone. com -9.14- https://fb .com/ sinhvienzonevn Cơ chế Overlay (t.t) Pass 70K Pass 80K Sym Table 20K sym bol table 20K com. .. Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM SinhVienZone. com -9.12- https://fb .com/ sinhvienzonevn Dynamic Loading Cơ chế: gọi đến thủ tục nạp vào nhớ ⇒ tăng độ hiệu dụng nhớ (memory