Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 51 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
51
Dung lượng
538,2 KB
Nội dung
HỆ ĐIỀU HÀHH Quản lýbộnhớQuảnlýbộnhớ Các kiểu đòa chỉ nhớ Chuyển đổi đòa chỉ nhớ Overlay và swapping Mô hình quảnlýbộnhớ đơn giản – Fixed partitioning – Dynamic partitioning Cơ chế phân trang (paging)– Cơ che phan trang (paging) – Cơ chế phân đoạn (segmentation) -9.2- Vì sao phải quảnlýbộnhớ Một chương trình muốn chạy thì phải được nạp vào trong bộnhớ chính. – Vấn đề:Vấn đề: Khi nào nạp? Nạp vào đâu? Nạp những phần nào? Quảnlýbộnhớ giúp tối ưu hóa hoạt động của bộnhớ Tối ưu hóa số tiến trình cùng lúc ở trong bộnhớ chính nâng cao tính đa chươn gg Tận dụng tối đa bộnhớ của máy tính -9.3- Bộnhớ Là một dãy các ô nhớ liên tục nhau Mỗi ô nhớ (một word) có một địa chỉ Chương trình = tập các câu lệnh (chỉ thị máy) + dữ liệug ập ệ ( ị y) ệ Nạp chương trình vào bộnhớ đặt các chỉ thị và dữ liệu vào các ô nhớ xác định ánh xạ giữa các chỉ thị, dữ liệu vào địa chỉ trong bộnhớ 0 4 MOV AX, 10 8 12 MOV BX, 20 ADD AX, AX, BX 16 -9.4- Các kiểu đòa chỉ nhớ Đòa chỉ vật lý (physical address) (đòa chỉ thực , đòa chỉ tuyệt đối ) là một vò trí thực trong bộnhớ chính. Đòa chỉ luận lý (logical address) là một vò trí nhớ độc lập với cấu trúc, tổ chức vật lý của bộ nhớ. – Các trình biên dòch (compiler) tao ra mã lệnh chương trình mà trong ò( p)ï äg g đó mọi tham chiếu bộnhớ đều là đòa chỉ luận lý Đòa chỉ tương đối (relative address) là một kiểu đòa chỉ luận lý òg ()äòäy trong đó các đòa chỉ được biểu diễn tương đối so với một điểm xác đònh nào đó trong chương trình (ví dụ: 12 byte so với điểm bắt đầu chương trình) Khi một lệnh được thực thi, các tham chiếu đến đòa chỉ luận lý phải được chuyển đổi thành đòa chỉ thực. Thao tác chuyển đổi -9.5- pïy ò ï y này thường có sự hỗ trợ của phần cứng để đạt hiệu suất cao. Nạp chương trình vào bộnhớ Bộ linker: kết hợp các object module thành một file nhò phân khả thực thi gọi là load module. Bộ loader: nap load module vào bộnhớ chính Bộ loader: nạp load module vao bộnhơ chính System Library static linking y St -9.6- System Library dynamic linking Cô cheá thöïc hieän linking Module A CALL B LthL 0 Module A JMP “L” Relocatable object modules 0 CALL B Return Length L L-1 JMP “L” Return Module BL object modules L-1 Module B CALL C Length M Module B JMP “L+M” L Load module 0 Return Module C Return Module C L+M-1 L+M M-1 0 Return Length N Return L+M+N-1 N-1 -9.7- N 1 Chuyển đổi đòa chỉ nhớ Chuyển đổi đòa chỉ là quá trình ánh xạ một đòa chỉ từ không gian đòa chỉ này sang không gian đòa chỉ khác. Biểudiễn đòa chỉ nhớ Bieu dien đòa chỉ nhơ – Trong source code : symbolic (các biến, hằng, pointer, .) – Thời điểm biên dòch : là đòa chỉ khả tái đònh vò (relocatable address), hay là đòa chỉ tương đối (relative address) g( ) Ví dụ: a ở vò trí 14 bytes so với phần header của module. – Thời điểm linking/loading : là đòa chỉ tuyệt đối. Ví dụ: dữ liệu nằm tại đòa chỉ bộnhớ thực: 2030 0 2000 int I; goto p1; 250 2250 Relocatable address Absolute address (Ph i l ) Symbolic address p1 -9.8- (Physical memory) Chuyển đổi đòa chỉ ûå Đòa chỉ của lệnh (instruction) và dữ liệu (data) được chuyển đổi thành đòa chỉ vật lý, việc này có thể xảy ra tại ba thời điểm khác nhau – Compile time : nếu biết trước đòa chỉ bộnhớ thì có thể kết gán đòa chỉ vật lý lúc biên dòch. Ví du: chương trình COM củaMSDOS phátbiểu assemply Ví dụ: chương trình .COM cua MS-DOS, phat bieu assemply Khuyết điểm: phải biên dòch lại nếu thay đổi đòa chỉ – Load time : tại thời điểm biên dòch, nếu không biết đòa chỉ thực thì vào thời điểm loading, phải chuyển đổi đòa chỉ khả tái đònh v ò (relocatable) theo một đòa chỉ nền (base address).ò( ) ä ò ( ) Đòa chỉ thực đượ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 nếu đòa chỉ base thay đổi. -9.9- Chuyển đổi đòa chỉ vào thời điểm thực thi – Execution time : quá trình chuyển đổi được trì hoãn đến thời điểm thực thi (run time) Tùìhhhi ù Relative (relocatable) addresses Trong quá trình thực thi, process có thể được di chuyển từ segment này sang segment khác trong bộ nhớ. CPU tao ra các đòa chỉ tương đối 0 JMP 400 CPU tạo ra cac đòa chỉ tương đoi cho process Cần sự hỗ trợ của phần cứng cho việc ánh xạ đòa chỉ (ví dụ có thanh hi b ø li it ) JMP 400 LOAD 1200 400 ghi base va limit, .) Sử dụng trong đa số các OS đa dụng (general-purpose) trong đó có các cơ chế swapping, paging, 1200 pp g, p g g, segmentation 1200 max = 2000 -9.10- [...]... có độ ưu tiên cao hơn được nạp vào bộnhớ để thực thi – Medium-term scheduler -9.16- Minh họa cơ chế swapping -9.17- Mô hình quản lýbộnhớ thực Trong chương này, mô hình quản lýbộnhớ là một mô hình đơn giản, không có bộnhớ ảo Một process phải được nạp hoàn toàn vào bộnhớ thì mới được thực thi (ngoại trừ việc sử dụng cơ chế overlay) Các cơ chế quản lýbộnhớ thực sau đây rất ít (hầu như không... -9.33- Bảo vệ bộnhớ Việc bảo vệ bộnhớ được hiện thực bằng cách gắn với frame các bit bảo vệ (protection bits) Các bit này biểu thò các thuộc tính sau – read-only, read-write, execute-only d l d it t l Ngoai Ngoài ra, con co một valid-invalid bit gắn vơi mỗi muc trong bang còn có valid invalid gan với moi mục bảng phân trang – “valid”: cho biết là trang bộnhớ tương ứng nằm trong không gian nhớ đòa... cần nạp một process vào bộnhớ chính chọn partition nhỏû nhấát còøn trốáng ii h h -9.23- Dynamic partitioning Số lượng partition không cố đònh và partition có kích thước khác nhau Mỗi process được cấp phát chính xác dung lượng bộnhớ cần thiết Gây ra hiện tượng phân mảnh ngoại (external fragmentation) -9.24- Chiến lược placement Dùng để quyết đònh cấp phát khối bộnhớ trống nào cho một... compaction (time consuming) Cac c e ược placement Các chiến lươc p ace e – Best-fit: chọn khối nhớ trống nhỏ nhất – First-fit: chọn khối nhớ trống phù hợp đầu tiên kể từ đầu bộnhớ – Next-fit: chọn khối nhớ trống phù hơp đau ti â k å từ vò trí h hợ đ à tien ke tư ò t í cấp phát cuối cùng – Worst fit: chọn khối nhớ trong lơn nhat trống lớn nhất -9.25- Phân trang (paging) Cơ chế phân trang cho phép... address space) của một process có thể không liên tục nhau Bộnhớ thưc đươc chia thành các khối kích thươc cố đònh bang nhơ thực được thanh cac khoi thước co bằng nhau gọi là frame – Thông thường kích thước của frame là lũy thừa của 2, từ khoảng 512 byte đến 16MB y Bộnhớ luận lý (logical memory) cũng được chia thành khối cùng kích thước gọi là trang nhớ (page) Hệ điều hanh phai thiết lập một bảng phan... tương ý tưởng cơ sở cho mô hình quanlybộnhớ ảo sau nay: sơ mo quảnlýnhơ ao này: – – – – Phân chia cố đònh (fixed partitioning) Phân chia động (dynamic partitioning) Phan Phân trang đơn giản (simple paging) gian Phân đoạn đơn giản (simple segmentation) -9.18- Phân mảnh (fragmentation) Phân mảnh ngoại (external fragmentation) – Kích thước không gian bộnhớ còn trống đủ để thỏa mãn một yeu cầu... trang (page table) để đieu hành phải thiet bang phân đe ánh xạ đòa chỉ ảo, luận lý thành đòa chỉ thực – Mỗi process có một bảng phân trang được quảnlý bằng một con trỏ lưu giữ trong PCB Công việc nạp bảng phân trang vào hệ thống (do g g g CPU dispatcher thực hiện) là một phần của chuyển ngữ cảnh Cơ chế phân trang khiến bộnhớbò phân mảnh nội, tuy nhiên lại khắc phục được phân mảnh ngoại -9.26- Cơ... f000…0000 f000 0000 d f d f111…1111 p f Nếu kích thước của không gian nhớ thực là 2l bytes, thì mỗi mục của bảng phân trang cóù l bit t l-n bits p y physical memory page table frame number frame offset f (l-n bits) d (n bits) -9.29- Chuyển đổi bộnhớ với paging -9.30- Hiện thực bảng phân trang Bảng phân trang được lưu giữ trong bộnhớ chính (kernel memory) – M ãi process cóù mộät b ûng phâân t Mỗ bả... khong gian nhơ này không liên nhien không nhớ nay khong lien tục phải dùng cơ chế kết khối (compaction) Phâ Ph ân mảûnh nộäi (i t (internal fragmentation) lf t ti ) – Kích thước vùng nhớ được cấp phát hơi lớn hơn vùng nhớ yêu cầu Ví dụ: cấp một khoảng trống 18.464 bytes cho một process yêu cầàu 18.462 bytes – Hiện tượng phân mảnh nội thường xảy ra khi bộnhớ thực (physical memory) được chia thành... 264) – Kích thươc trang nhơ là 4KB (= 212) bảng phan trang se có ~ 232/212 = thước nhớ la ( bang phân sẽ co 220 = 1M entries – Giả sử mỗi phần tử là một con trỏ 32 bit thì mỗi process cần 4MB cho bang phân bảng phan trang Một giải pháp được đặt ra là chia thành nhiều bảng phân trang quảnlý các vùng không gian bộnhớ ảo khác nhau – bảng đa mức (multilevel paging table) Cơ chế tạo bảng phân trang . HỆ ĐIỀU HÀHH Quản lý bộ nhớ Quản lý bộ nhớ Các kiểu đòa chỉ nhớ Chuyển đổi đòa chỉ nhớ Overlay và swapping Mô hình quản lý bộ nhớ đơn giản –. bộ nhớ để thực thi – Medium-term scheduler -9.16- Minh hoïa cô cheá swapping -9.17- Mô hình quản lý bộ nhớ thực Trong chương này, mô hình quản lý bộ