Quản lý bộ nhớ

51 855 7
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ÀNH Quản lý bộ nhớ

HỆ ĐIỀU HÀHHQuả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 partitioningCơ 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ươngg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ớ04MOV AX, 10812MOV BX, 20ADD AX, AX, BX16-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 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 òg()äòäytrong đó 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 ò ï ynà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ínhSystem Librarystatic linkingySt-9.6-System Librarydynamic linking Cơ chế thực hiện linkingModule ACALL B LthL0Module AJMP “L”Relocatableobject modules0CALL BReturnLength LL-1JMP “L”ReturnModule BLobject modulesL-1Module BCALL CLength MModule BJMP “L+M”LLoad module0ReturnModule CReturnModule CL+M-1L+MM-10ReturnLength NReturnL+M+N-1N-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: 203002000int I;goto p1;2502250Relocatable addressAbsolute address (Ph i l )Symbolic addressp1-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 đối0JMP 400CPU 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 400LOAD 1200400ghi 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, 1200pp g, p g g,segmentation1200max= 2000-9.10- [...]... 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 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 –... 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) 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ố... “valid”: cho biết là trang bộ nhớ tương ứng nằm trong không gian nhớ địa chỉ ảocủa process do đó là một trang hơp lệchỉ ao cua process, do đo la một trang hợp lệ. – “invalid”: cho biết là trang bộ nhớ tương ứng không nằm trong không gian nhớ địa chỉ ảo của process, do đó là một trang bất hợp lệ. -9.34- Phân trang 2-mức  Một địa chỉ luận (trên hệ thống 32-bit với trang nhớ 4KB) được chia thành... process có thể không liên tục nhau .  Bộ nhớ thưc đươc chia thành cáckhối kích thướccố định bằng  Bộ nhơ thực được chia thanh cac khoi kích thươc co định bang 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 16MBy  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ềuhành phảithiếtlậpmột bảng... 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- 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 d ldit t l–read-only, read-write,... chức của cơ chế phân đoạn  Địa chỉ luận lý là một cặp giá trị <segment-number, offset>  Bảng phân đoạn (segment table) – base – chứa địa chỉ khởi đầu của phân đoạn trong bộ nhớ – limit – xác định kích thướccủa phânđoan– limit – xac định kích thươc cua phan đoạn  Segment-table base register (STBR): trỏ đến vị trí bảng phân đoạn trong bộ nhớtrong bộ nhơ  Segment-table length register (STLR):... Khi cần nạp một process vào bộ nhớ chính  chọn ii h û h á ø ápartition nhỏ nhất còn trống -9.23- Hashed page tables  Các hệ thống 64-bit địa chỉ thường dùng clustered page table, i.e. ãi t h h t bl th hi á ñ á hi à t ( 16 t ) -9.42- mỗi mục trong hash table tham chiếu đến nhiều trang (~ 16 trang) thay vì 1 trang. 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... phai thiet lập một bang phan trang (page table) đ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 gg g 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- ... ngoại (external fragmentation) – Kích thước không gian bộ nhớ còn trống đủ để thỏa mãn một yêucầucấp phát tuy nhiênkhông gian nhớ nàykhông liênyeu cau cap phat, tuy nhien khong gian nhơ nay khong lien tục  phải dùng cơ chế kết khối (compaction). Ph â û h äi (i t l f t ti )  Phân mảnh nội (internal fragmentation) – 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... đề:  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- Chia sẻ các trang nhớ Process 1 ed 1 3 0 0 1 data 1 ed 2 ed 3 4 6 1 1 2 3 Process 2 ed 1 2 data 3 3ed 1 4 d2 data 1 1 3 ed 1 ed 2 ed 3 3 4 6 0 1 2 4 ed 2 5 6ed 3 ed 1 ed . HỆ ĐIỀU HÀHHQuả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– Fixed. vào 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ộ nhớ

Ngày đăng: 12/09/2012, 14:38

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