Chương 3: Quản lý bộ nhớ trong hệ điều hành

Chuyên khảo phân tích Chương 3 quản lý bộ nhớ, đánh giá các khía cạnh quan trọng, đề xuất hướng nghiên cứu tiếp theo., phục vụ nghiên cứu và ứng dụng thực tiễn

Người đăng

Ẩn danh
59
4
0

Phí lưu trữ

30 Point

Mục lục chi tiết

3. CHƯƠNG 3: Quản lý bộ nhớ

3.1. Dẫn nhập

3.2. Chức năng quản lý bộ nhớ của OS

3.3. Địa chỉ và chuyển đổi địa chỉ (1)

3.4. Địa chỉ và chuyển đổi địa chỉ (2)

3.5. Địa chỉ và chuyển đổi địa chỉ (4)

3.6. Địa chỉ và chuyển đổi địa chỉ (3)

3.7. Các bước chuyển đổi chương trình

3.8. Các loại địa chỉ

3.9. Chuyển đổi địa chỉ (1)

3.10. Chuyển đổi địa chỉ (2)

3.11. Chuyển đổi địa chỉ (3)

3.12. Các yêu cầu quản lý bộ nhớ

3.13. Các mô hình tổ chức bộ nhớ

3.14. Cấp phát liên tục

3.15. Cấp phát liên tục – fixed partitioning

3.16. Cấp phát liên tục – fixed partitioning (tiếp)

3.17. Cấp phát liên tục – fixed partitioning (nhận xét)

3.18. Cấp phát liên tục – dynamic partitioning

3.19. Cấp phát liên tục – dynamic partitioning (nhận xét)

3.20. Cấp phát liên tục – dynamic partitioning (tiếp)

3.21. Bài tập 1

3.22. Cấp phát liên tục (cách chuyển đổi địa chỉ)

3.23. Cấp phát liên tục (tiếp)

3.24. Hai thanh ghi hỗ trợ chuyển đổi địa chỉ

3.25. Cấp phát không liên tục

3.26. Cấp phát không liên tục Segmentation (1)

3.27. Cấp phát không liên tục Segmentation (2)

3.28. Cấp phát không liên tục Segmentation (3)

Cấp phát không liên tục Segmentation (4)

3.30. Cấp phát không liên tục Segmentation (5)

3.31. Cấp phát không liên tục Segmentation (6)

3.32. Cấp phát không liên tục Segmentation (7)

3.33. Cấp phát không liên tục Segmentation (8)

3.34. Cấp phát không liên tục Paging (1)

3.35. Cấp phát không liên tục Paging (2)

3.36. Cấp phát không liên tục Paging (3)

3.37. Cấp phát không liên tục Paging (4)

3.38. Cấp phát không liên tục Paging (5)

3.39. Bài tập phân trang

3.40. Phân tích bài tập phân trang (1642)

3.41. Phân tích bài tập phân trang (3671)

3.42. Cấp phát không liên tục Paging (7)

3.43. Lưu trữ Page table

3.44. Cấp phát không liên tục Paging (9)

3.45. Cấp phát không liên tục Paging (10)

3.46. Bảng trang nghịch đảo

3.47. Bộ nhớ ảo

3.48. Bộ nhớ ảo với cơ chế phân trang

Tóm tắt

I. Tổng quan về quản lý bộ nhớ trong hệ điều hành

Quản lý bộ nhớ là một trong những chức năng quan trọng nhất của hệ điều hành. Bộ nhớ chính là nơi mà CPU thực hiện các thao tác và lưu trữ dữ liệu tạm thời. Hệ điều hành cần phải đảm bảo rằng bộ nhớ được sử dụng hiệu quả, tránh lãng phí và đảm bảo an toàn cho các tiến trình đang chạy.

1.1. Chức năng của quản lý bộ nhớ trong hệ điều hành

Quản lý bộ nhớ bao gồm việc phân bổ và giải phóng bộ nhớ cho các tiến trình, đảm bảo rằng mỗi tiến trình có không gian riêng biệt để hoạt động mà không xâm phạm vào bộ nhớ của tiến trình khác.

1.2. Vai trò của bộ nhớ trong hệ điều hành hiện đại

Bộ nhớ không chỉ là nơi lưu trữ dữ liệu mà còn là yếu tố quyết định hiệu suất của hệ thống. Hệ điều hành hiện đại sử dụng nhiều kỹ thuật để tối ưu hóa việc sử dụng bộ nhớ, bao gồm phân trang và phân đoạn.

II. Vấn đề và thách thức trong quản lý bộ nhớ

Quản lý bộ nhớ đối mặt với nhiều thách thức, đặc biệt là trong môi trường đa nhiệm. Các vấn đề như phân mảnh bộ nhớ, bảo vệ bộ nhớ và chia sẻ thông tin giữa các tiến trình là những vấn đề cần được giải quyết.

2.1. Phân mảnh bộ nhớ và cách khắc phục

Phân mảnh bộ nhớ xảy ra khi bộ nhớ được phân bổ không đồng đều, dẫn đến việc lãng phí không gian. Các kỹ thuật như phân vùng cố định và phân vùng động có thể giúp giảm thiểu vấn đề này.

2.2. Bảo vệ bộ nhớ giữa các tiến trình

Bảo vệ bộ nhớ là cần thiết để ngăn chặn các tiến trình xâm phạm vào vùng nhớ của nhau. Hệ điều hành sử dụng các cơ chế như bảng trang và bảng phân đoạn để đảm bảo an toàn cho dữ liệu.

III. Phương pháp quản lý bộ nhớ hiệu quả

Có nhiều phương pháp quản lý bộ nhớ khác nhau, mỗi phương pháp có ưu và nhược điểm riêng. Việc lựa chọn phương pháp phù hợp có thể cải thiện hiệu suất của hệ thống.

3.1. Phân trang và lợi ích của nó

Phân trang là một kỹ thuật cho phép chia nhỏ bộ nhớ thành các khối có kích thước cố định, giúp giảm thiểu phân mảnh và tối ưu hóa việc sử dụng bộ nhớ.

3.2. Phân đoạn và ứng dụng thực tiễn

Phân đoạn cho phép chia bộ nhớ thành các khối có kích thước khác nhau, phù hợp với nhu cầu của từng tiến trình. Kỹ thuật này giúp cải thiện khả năng chia sẻ và bảo vệ bộ nhớ.

IV. Ứng dụng thực tiễn của quản lý bộ nhớ

Quản lý bộ nhớ không chỉ là lý thuyết mà còn có ứng dụng thực tiễn trong các hệ thống máy tính hiện đại. Các nghiên cứu cho thấy rằng việc tối ưu hóa quản lý bộ nhớ có thể cải thiện đáng kể hiệu suất hệ thống.

4.1. Nghiên cứu về hiệu suất bộ nhớ

Nhiều nghiên cứu đã chỉ ra rằng việc áp dụng các kỹ thuật quản lý bộ nhớ hiện đại có thể giảm thiểu thời gian truy cập bộ nhớ và tăng tốc độ xử lý của CPU.

4.2. Các công cụ hỗ trợ quản lý bộ nhớ

Có nhiều công cụ và phần mềm hỗ trợ quản lý bộ nhớ, giúp các nhà phát triển tối ưu hóa ứng dụng của họ và cải thiện hiệu suất tổng thể của hệ thống.

V. Kết luận về tương lai của quản lý bộ nhớ

Quản lý bộ nhớ sẽ tiếp tục là một lĩnh vực nghiên cứu quan trọng trong công nghệ thông tin. Với sự phát triển của các hệ thống máy tính và nhu cầu ngày càng cao về hiệu suất, các phương pháp quản lý bộ nhớ sẽ ngày càng được cải tiến.

5.1. Xu hướng mới trong quản lý bộ nhớ

Các xu hướng như bộ nhớ ảo và công nghệ đám mây đang thay đổi cách thức quản lý bộ nhớ, mở ra nhiều cơ hội mới cho các nhà phát triển và người dùng.

5.2. Tương lai của bộ nhớ trong hệ điều hành

Với sự phát triển không ngừng của công nghệ, tương lai của quản lý bộ nhớ hứa hẹn sẽ mang lại nhiều cải tiến, giúp tối ưu hóa hiệu suất và bảo mật cho các hệ thống máy tính.

14/08/2025
Chương 3 quản lý bộ nhớ

Trích đoạn nội dung tài liệu

Chương 3 Quản lý bộ nhớ 1 Dẫn nhập: • Bộ nhớ chính là thiết bị lưu trữ duy nhất thông qua đó CPU có thể trao đổi thông tin với môi trường ngoài • Bộ nhớ chính được tổ chức như một mảng một chiều các từ nhớ (word), mỗi từ nhớ có một địa chỉ • Hầu hết các hệ điều hành hiện đại đều cho phép chế độ đa nhiệm => có nhiều process trong bộ nhớ tại một thời điểm => cần vai trò quản lý bộ nhớ của OS 2 Chức năng quản lý bộ nhớ của OS • Sự tương ứng giữa địa chỉ logic và địa chỉ vật lý (physic) : làm cách nào để chuyển đổi một địa chỉ tượng trưng (symbolic) trong chương trình thành một địa chỉ thực trong bộ nhớ chính? • Quản lý bộ nhớ vật lý: làm cách nào để mở rộng bộ nhớ có sẵn nhằm lưu trữ được nhiều tiến trình đồng thời? • Chia sẻ thông tin: làm thế nào để cho phép hai tiến trình có thể chia sẻ thông tin trong bộ nhớ? • Bảo vệ: làm thế nào để ngăn chặn các tiến trình xâm phạm đến vùng nhớ được cấp phát cho tiến trình khác? 3 Địa chỉ và chuyển đổi địa chỉ (1) • Địa chỉ – Logic => không gian địa chỉ logic – Vật lý => không gian đia chỉ vật lý • Chuyển đổi địa chỉ logic => vật lý – 3 thời điểm chuyển đổi • Được thực hiện bởi ai? • Ưu nhược điểm ? 4 Địa chỉ và chuyển đổi địa chỉ (2) Test.cpp Bộ nhớ chính 5 Địa chỉ và chuyển đổi địa chỉ (4) 6 Địa chỉ và chuyển đổi địa chỉ (3) • Các bước chuyển đổi chương trình 7 Các loại địa chỉ 8 Chuyển đổi địa chỉ (1) • Việc chuyển đổi địa chỉ logic -> địa chỉ vật lý có thể thực hiện vào một trong 3 thời điểm – compile time – load time – execution time • Nhận xét – Compile time : • Thực hiện vào thời điểm biên dịch • Phải biết trước vị trí nap tiến trình trong bộ nhớ -> biêndịchlại cho những lần nạp sau 9 Chuyển đổi địa chỉ (2) • Nhận xét • load time – Thựchiện bởi bộ loader, khi nạp vào bộ nhớ – Khi có sự thay đổi vị trí của tiến trình (sau đó) cần load lại để tính toán lại địa chỉ • execution time – Nếu trong quá trình thực thi tiến trình có di chuyển vị trí tiến trình thì thời điểm chuyển đổi địa chỉ là run time – Cần dùng cơ chế phần cứng đặc biệt 10 Chuyển đổi địa chỉ (3) • MMU (memory-management unit)– phần cứng giúp chuyển đổi địa chỉ vào thời điểm run-time 11 Các yêu cầu quản lý bộ nhớ 12 Các mô hình tổ chức bộ nhớ • Tiến trình được nạp toàn bộ vào bộ nhớ • Vùng nhớ cấp cho tiến trình có thể : – Liên tục • Fixed partitioning • Dynamic partitioning – Không liên tục • Segmentation • Paging 13 Cấp phát liên tục 14 Cấp phát liên tục – fixed partitioning • Fixed partitioning – Có 2 loại partition : • Kích thước bằng nhau • Không bằng nhau 15 Cấp phát liên tục – fixed partitioning • Fixed partitioning – Chiến lược cấp phát • Sử dụng hàng đợi – Nhiều hàng đợi – 1 hàng đợi 16 Cấp phát liên tục – fixed partitioning • Fixed partitioning- Nhận xét : – Phân mảnh nội (internal fragmentation) – Mức độ đa chương phụ thuộc bởi số partition 17 Cấp phát liên tục – dynamic partitioning • Dynamic partitioning 18 Cấp phát liên tục – dynamic partitioning • Dynamic partitioning – nhận xét – Phân mảnh ngoại (external fragmentation) 19 Cấp phát liên tục dynamic partitioning 20 Cấp phát liên tục dynamic partitioning 21 • Bài tập 1 Trong mô hình cấp phát bộ nhớ liên tục, có bốn phân mảnh bộ nhớ theo thứ tự với kích thước là 600KB, 500KB, 200KB, 300KB. Giả sử có 4 tiến trình đang chờ cấp phát bộ nhớ theo thứ tự P1, P2, P3, P4. Kích thước tương ứng của các tiến trình trên là: 212 KB, 417 KB, 112 KB, 426 KB. Hãy cấp phát bộ nhớ cho các tiến trình trên theo thuật toán First-fit, Best-fit, Worst-fit.

22 Cấp phát liên tục • Cách chuyển đổi địa chỉ – Linker Loader • Thực hiện vào thời điểm nạp – Base & Bound • Thực hiện vào thời điểm run-time 23 Cấp phát liên tục 24 Hai thanh ghi hổ trợ chuyển đổi địa chỉ 25 Cấp phát không liên tục • Cho phép nạp tiến trình vào BNC ở nhiều vùng nhớ không liên tục • Không gian địa chỉ logic : phân chia thành – Segmentation – Paging • Không gian địa chỉ vật lý : có thể được tổ chức – Variable partitions : segmentation – Fixed partitions : frame 26 Cấp phát không liên tục Segmentation (1) 27 Cấp phát không liên tục Segmentation (2) • Chuyển đổi địa chỉ vào lúc run-time - MMU thi hành - sử dụng segment table để lưu thông tin cấp phát bộ nhớ - mỗi tiến trình một segment table • Lưu trữ segment table : - Cache : nếu đủ nhỏ - Bộ nhớ chính : segment-table base register, segment- table length register • Số phần tử của segment table = số segment của chương trình 28 Cấp phát không liên tục Segmentation (3) 29 Cấp phát không liên tục Segmentation (4) 30 Cấp phát không liên tục Segmentation (5) 31 Cấp phát không liên tục Segmentation (6) 32 Cấp phát không liên tục Segmentation (7) • Bài tập : một segment table Segment Length Base 0 500 215 1 25 2100 2 100 120 Xác định địa chỉ vật lý của các địa chỉ logic sau ? • 0.300 33 Cấp phát không liên tục Segmentation (8) 34 Cấp phát không liên tục Paging (1) • Mô hình – Phân chia chương trình thành các page có kích thước bằng nhau – KGVL ( bộ nhớ) được tổ chức thành các fixed partitions có kích thước bằng nhau, gọi là frame – Page size = frame size – Các page của 1 chương trình có thể nạp vào những frame không nằm liên tục nhau 35 Cấp phát không liên tục Paging (2) 36 Cấp phát không liên tục Paging (3) • Chuyển đổi địa chỉ trong mô hình paging 37 Cấp phát không liên tục Paging (4) 38 Cấp phát không liên tục Paging (5) • Bài tập : Một tiến trình được nạp vào bộ nhớ theo mô hình phân trang với kích thước trang là 1024 byte. Bảng trang P F 0 1 1 4 2 2 3 6 Chuyển địa chỉ logic thành địa chỉ vật lý : 1642 3671 39 • 1642 xác định p? d? 1642 div 1024 = 1 => p =1 1642 mod 1024 = 618 => d = 618 Xác định f ? Theo bảng trang : f =4 Xác định địa chỉ vật lý : 1642 => 4 * 1024 + 618 = 4714 40 • 3671 Xác định p? d? 3671 div 1024 = 3 => p =3 3671 mod 1024 = 599 =>d = 599 Xác định f ? F = 6 Xác định địa chỉ vật lý ? 3671 => 6 * 1024 + 599 = 6743 41 Cấp phát không liên tục Paging (6) 42 Cấp phát không liên tục Paging (7) • Lưu trữ Page table : tiết kiệm không gian – Sử dụng bảng trang đa cấp • Chỉ lưu thường trực bảng trang cấp 1, sau đó khi cần sẽ nạp bảng trang thích hợp – Sử dụng bảng trang nghịch đảo • Mô tả không gian vật lý thay vì KGĐC 43 Cấp phát không liên tục Paging (8) 44 Cấp phát không liên tục Paging (9) 45 Cấp phát không liên tục Paging (10) • Bảng trang nghịch đảo : – Sử dụng duy nhất một bảng trang nghịch đảo cho tất cả các tiến trình – Mỗi phần tử trong bảng trang nghịch đảo mô tả một frame có cấu trúc • <page> : số hiệu page mà frame đang chứa • <idp> : id của tiến trình đang sở hữu trang – Địa chỉ ảo là <idp, p, d> 46 Cấp phát không liên tục Paging (11) 47 Bộ nhớ ảo • Các mô hình quản lý bộ nhớ đã học : – Nạp toàn bộ tiến trình vào bộ nhớ rồi thi hành Vấn đề : (1) Nếu kích thước tiến trình lớn hơn dung lượng bộ nhớ chính (2) Tại một thời điểm chỉ có 1 chỉ thị được thi hành • Mô hình bộ nhớ ảo : – Nạp và thi hành từng phần của tiến trình 48 Bộ nhớ ảo • Bộ nhớ ảo với cơ chế phân trang – Phân chia Không gian địa chỉ logic thành các page – Dùng bộ nhớ phụ (disk) để mở rộng bộ nhớ chính, lưu trữ các phần của tt chưa được nạp – Bổ sung bit cờ hiệu trong Page Table để nhận dạng tình trạng của một page đã được nạp vào bộ nhớ chính chưa – Cơ chế chuyển đổi giữa BNC và BNP : swapping 49 50

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ