1 / 33

Quản lý bộ nhớ

Quản lý bộ nhớ. Bối cảnh. Bộ nhớ của máy thì hữu hạn nhưng nhu cầu của chương trình thì vô hạn. Hệ thống thực hiện nhiều tiến trình cùng lúc, cần làm sao cho tiến trình này không ảnh hưởng đến tiến trình kia. Liên kết địa chỉ.

kaleb
Download Presentation

Quản lý bộ nhớ

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Quảnlýbộnhớ

  2. Bối cảnh • Bộ nhớ của máy thì hữu hạn nhưng nhu cầu của chương trình thì vô hạn. • Hệ thống thực hiện nhiều tiến trình cùng lúc, cần làm sao cho tiến trình này không ảnh hưởng đến tiến trình kia. Operating systems

  3. Liên kết địa chỉ • Khi viết chương trình, lập trình viên chỉ quan tâm đến địa chỉ tượng trưng (tên biến, tên hàm, …). Khi thực thi, các địa chỉ này phải được ánh xạ thành địa chỉ thật. Có thể thực hiện việc ánh xạ tại các thời điểm: • Lúc biên dịch chương trình • Lúc nạp chương trình vào bộ nhớ • Lúc thực thi chương trình Operating systems

  4. Địa chỉ vật lý và địa chỉ luận lý • Địa chỉ luận lý (hay địa chỉ ảo) là địa chỉ mà CPU “nhìn thấy”. • => Không gian địa chỉ ảo là tập hợp tất cả các địa chỉ mà CPU “nhìn thấy”. • Địa chỉ vật lý là địa chỉ thật mà đơn vị quản lý bộ nhớ quản lý. • => Không gian địa chỉ vật lý là khoảng địa chỉ mà đơn vị quản lý bộ nhớ “nhìn thấy”. Operating systems

  5. Địa chỉ luận lý và địa chỉ vật lý Không gian vật lý Không gian luận lý Bộ nhớ vật lý Đơn vị quản lý bộ nhớ Operating systems

  6. Đơn vị quản lý bộ nhớ (MMU) • MMU (Memory Management Unit) là khối phần cứng thực hiện việc chuyển đổi giữa địa chỉ luận và địa chỉ vật lý. • Có chức năng tách rời không gian vật lý với không gian luận lý. • Chương trình chỉ nhìn thấy không gian luận lý. Operating systems

  7. Đơn vị quản lý bộ nhớ (MMU) • MMU được tích hợp bên trong CPU Địa chỉ luận lý Khối CPU Operating systems

  8. Cấp phát động • Chỉ liên kết (link) chương trình khi chương trình được thực thi. • Chỉ nạp chương trình con vào bộ nhớ khi nó chính thức được gọi. • Cơ chế hóan đổi (swap): tạm thời chuyển phần tiến trình chưa sử dụng ra bộ nhớ ngòai (đĩa cứng), khi nào cần sẽ nạp vào lại. Operating systems

  9. Swap Operating systems

  10. Các cơ chế cấp phát bộ nhớ • Cấp phát liên tục (contigous allocation) • Cấp phát không liên tục: • Phân đọan (segmentation) • Phân trang (paging) Operating systems

  11. Cấp phát liên tục • Mô hình 1 (linker-loader): quản lý địa chỉ bắt đầu và kích thước tiến trình Operating systems

  12. Cấp phát liên tục • Mô hình 2 (base&limit) quản lý địa chỉ bắt đầu và địa chỉ kết thúc. Operating systems

  13. Bảo vệ bộ nhớ trong cơ chế base&limit Operating systems

  14. Hiện tượng phân mảnh bộ nhớ Các tiến trình có kích thước khác nhau. Sau khi thực thi xong và ra khỏi bộ nhớ sẽ tạo ra các vùng trống không đều nằm rải rác trong bộ nhớ => phân mảnh. Operating systems

  15. Hiện tượng phân mảnh bộ nhớ • Phân mảnh trong (internal fragmentation): Tiến trình được đưa vào vùng trống lớn hơn kích thước tiến trình => có một phần dư không dùng. • Phân mảnh ngòai (external fragmentation): tổng cộng vùng nhớ trống còn nhiều nhưng không liên tục nên không cấp phát được. Operating systems

  16. Các chiến lược cấp phát động • First-fit: Chọn vùng nhớ trống đầu tiên tìm thấy đủ rộng để chứa tiến trình. • Best-fit: Chọn vùng nhớ trống nhỏ nhất đủ sức chứa tiến trình. • Worst-fit: Chọn vùng nhớ trống lớn nhất để chứa tiến trình. • Chiến lược nào tốt nhất??? Operating systems

  17. Phân đọan • Đối với người sử dụng, một chương trình được chia thành nhiều phần khác nhau: Operating systems

  18. 1 4 2 3 Phân đọan • Mỗi phần được đưa vào một vùng nhớ riêng, có kích thước khác nhau và liên hệ luận lý với nhau gọi là một đọan (segment) 1 2 3 4 Operating systems

  19. Phân đọan • Mỗi đọan bộ nhớ trong không gian địa chỉ luận lý được nhận diện bằng địa chỉ bắt đầu của đọan (base) và kích thước của đọan đó (limit). • Cấu trúc địa chỉ luận lý có dạng <s, d> trong đó s là số hiệu phân đọan, d là địa chỉ tương đối trong phân đọan. Operating systems

  20. Chuyển đổi địa chỉ trong cơ chế phân đọan Operating systems

  21. Một hệ thống phân đọan Operating systems

  22. Dùng chung các phân đọan Operating systems

  23. Phân trang (paging) • Không gian bộ nhớ vật lý được chia thành các đọan có kích thước bằng nhau gọi là khung (frame) • Không gian địa chỉ ảo cũng được chia thành nhiều đọan có kích thước bằng nhau và bằng với khung trang, gọi là các trang địa chỉ (page) Operating systems

  24. Trang và khung Operating systems

  25. Địa chỉ luận lý trong chế độ phân trang Địa chỉ luận lý có dạng <p, d> P: số hiệu trang D: địa chỉ tương đối trong trang Operating systems

  26. Chuyển đổi địa chỉ ảo thành địa chỉ vật lý Operating systems

  27. Truy xuất bộ nhớ với cơ chế phân trang • Liên kết giữa trang và khung được chứa trong bảng trang (page table) • Mỗi thao tác truy xuất bộ nhớ gồm 2 công đọan: • Đọc bảng trang để tìm khung => tạo ra địa chỉ vật lý • Đọc dữ liệu từ địa chỉ vật lý Operating systems

  28. Tăng tốc độ truy xuất bộ nhớ trong cơ chế phân trang Sử dụng bộ nhớ kết hợp TLB (Translation look aside buffer) Operating systems

  29. Bảng trang nhiều cấp Cấu trúc địa chỉ trong bảng trang hai cấp p1 p2 d Operating systems

  30. Bài tập 1 • Giả sử bộ nhớ chính được phân thành các đọan có kích thước là 600K, 500K, 200K, 300K ( theo thứ tự ). Hãy cho biết các tiến trình có kích thước 212K, 417K, 112K và 426K ( theo thứ tự ) sẽ được cấp phát bộ nhớ như thế nào, nếu sử dụng : a) Chiến lược First fit b) Chiến lược Best fit c) Chiến lược Worst fit Operating systems

  31. Bài tập 2 • Tại sao kích thước trang luôn là lũy thừa của 2? • Xét một không gian địa chỉ có 8 trang, mỗi trang có kích thước 1K. Ánh xạ vào bộ nhớ vật lý có 32 khung. a) Địa chỉ luận lý gồm bao nhiêu bit ? b) Địa chỉ vật lý gồm bao nhiêu bit ? Operating systems

  32. Bài tập 3 • Xét một hệ thống sử dụng kỹ thuật phân trang, với bảng trang được lưu trữ trong bộ nhớ chính. a) Nếu thời gian cho một lần truy xuất bộ nhớ bình thường là 200 ns, thì mất bao nhiêu thời gian cho một thao tác truy xuất bộ nhớ trong hệ thống này ? b) Nếu sử dụng TLBs với hit-ratio ( tỉ lệ tìm thấy) là 75%, thời gian để tìm trong TLBs xem như bằng 0, tính thời gian truy xuất bộ nhớ trong hệ thống ( effective memory reference time) Operating systems

  33. Bàitập 4 Cho bảng phân đọan như hình dưới. Xác định địa chỉ vật lý ứng với các địa chỉ sau đây: • 0,430 • 1,10 • 2,500 • 3,400 • 4,112 Operating systems

More Related