Quản lý bộ nhớ

51 408 0
Quản lý bộ nhớ

Đ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

HỆ ĐIỀU HÀHH Quản bộ nhớ Quản bộ nhớ  Các kiểu đòa chỉ nhớ  Chuyển đổi đòa chỉ nhớ  Overlay và swapping  Mô hình quản 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ản 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ản 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 (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 (logical address) là một vò trí nhớ độc lập với cấu trúc, tổ chức vật 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  Đòa chỉ tương đối (relative address) là một kiểu đòa chỉ luận ò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 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ú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 bộ nhớ thực    Trong chương này, mô hình quản 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 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 (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 quan ly bộ nhớ ảo sau nay: sơ mo quản 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 thành đòa chỉ thực – Mỗi process có một bảng phân trang được quản 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ớ 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ản 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ộ

Ngày đăng: 10/10/2013, 05:20

Hình ảnh liên quan

 Mô hình quản lý bộ nhớ đơn giản - Quản lý bộ nhớ

h.

ình quản lý bộ nhớ đơn giản Xem tại trang 2 của tài liệu.
Mô hình chuyển đổi địa chỉ - Quản lý bộ nhớ

h.

ình chuyển đổi địa chỉ Xem tại trang 28 của tài liệu.
 Dùng PTLR để kiểm tra kích thước bảng phân trang - Quản lý bộ nhớ

ng.

PTLR để kiểm tra kích thước bảng phân trang Xem tại trang 35 của tài liệu.
Mô hình bảng 2-mức (two-level) - Quản lý bộ nhớ

h.

ình bảng 2-mức (two-level) Xem tại trang 37 của tài liệu.
– Trong sơ đồ phân trang 2-mức, số mục của bảng phân trang = 252  (264/212= 252)  quá lớn - Quản lý bộ nhớ

rong.

sơ đồ phân trang 2-mức, số mục của bảng phân trang = 252 (264/212= 252)  quá lớn Xem tại trang 40 của tài liệu.
Mô hình cơ chế phân đọan user space  physical memory space - Quản lý bộ nhớ

h.

ình cơ chế phân đọan user space physical memory space Xem tại trang 46 của tài liệu.

Từ khóa liên quan

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

Tài liệu liên quan