Quản lý bộ nhớ trong hệ điều hành: Bộ nhớ liền kề, Bộ nhớ hoán đổipingSự phân mảnh
⚡ Tóm tắt thông minh
Quản lý bộ nhớ là quá trình của hệ điều hành điều khiển và phối hợp bộ nhớ máy tính, phân bổ các khối bộ nhớ cho các chương trình đang chạy để tối ưu hóa hiệu năng. tracNó kiểm tra mọi vị trí bộ nhớ, di chuyển các tiến trình giữa bộ nhớ chính và ổ đĩa, và bảo vệ các tiến trình khỏi nhau.

Quản lý bộ nhớ là gì?
Quản lý bộ nhớ là quá trình kiểm soát và điều phối bộ nhớ máy tính, gán các phần được gọi là khối cho các chương trình đang chạy khác nhau để tối ưu hóa hiệu suất tổng thể của hệ thống.
Chức năng quan trọng nhất của hệ điều hành là quản lý bộ nhớ chính. Nó giúp các tiến trình di chuyển qua lại giữa bộ nhớ chính và ổ đĩa thực thi. Nó giúp hệ điều hành duy trì sự ổn định. track của mọi vị trí bộ nhớ, bất kể nó được cấp phát cho tiến trình nào hay vẫn còn trống.
Tại sao nên sử dụng quản lý bộ nhớ?
Dưới đây là những lý do cần sử dụng quản lý bộ nhớ:
- Nó cho phép bạn kiểm tra xem cần phân bổ bao nhiêu bộ nhớ cho các tiến trình để quyết định bộ xử lý nào sẽ nhận bộ nhớ vào thời điểm nào.
- Tracks thực hiện thao tác này mỗi khi hàng tồn kho được giải phóng hoặc hủy phân bổ, và cập nhật trạng thái tương ứng.
- Nó phân bổ không gian cho các thói quen ứng dụng.
- Điều này cũng đảm bảo rằng các ứng dụng này không gây xung đột với nhau.
- Giúp bảo vệ các quy trình khác nhau khỏi sự can thiệp lẫn nhau.
- Nó đặt các chương trình vào bộ nhớ để bộ nhớ được sử dụng hết mức.
Kỹ thuật quản lý bộ nhớ
Dưới đây là một số kỹ thuật quản lý bộ nhớ quan trọng nhất:
Phân bổ liền kề duy nhất
Đây là kỹ thuật quản lý bộ nhớ đơn giản nhất. Trong phương pháp này, tất cả các loại bộ nhớ của máy tính, ngoại trừ một phần nhỏ dành riêng cho hệ điều hành, đều có sẵn cho một ứng dụng duy nhất. Ví dụ, hệ điều hành MS-DOS phân bổ bộ nhớ theo cách này. Hệ thống nhúng cũng hoạt động dựa trên một ứng dụng duy nhất.
Phân bổ được phân vùng
Nó chia bộ nhớ chính thành nhiều phân vùng bộ nhớ khác nhau, chủ yếu là các vùng bộ nhớ liền kề. Mỗi phân vùng lưu trữ tất cả thông tin cho một tác vụ hoặc công việc cụ thể. Phương pháp này bao gồm việc cấp phát một phân vùng cho một công việc khi nó bắt đầu và giải phóng nó khi nó kết thúc.
Quản lý bộ nhớ phân trang
Phương pháp này chia bộ nhớ chính của máy tính thành các đơn vị có kích thước cố định được gọi là khung trang. Đơn vị quản lý bộ nhớ phần cứng này ánh xạ các trang thành các khung cần được phân bổ trên cơ sở trang.
Quản lý bộ nhớ phân đoạn
Bộ nhớ được phân đoạn là phương pháp quản lý bộ nhớ duy nhất không cung cấp cho chương trình của người dùng một không gian địa chỉ tuyến tính và liền kề.
Các phân đoạn cần được hỗ trợ phần cứng dưới dạng bảng phân đoạn. Nó chứa địa chỉ vật lý của phần trong bộ nhớ, kích thước và các dữ liệu khác như trạng thái và bit bảo vệ quyền truy cập.
Trao đổi là gì?ping?
Trao đổiping Đây là một phương pháp trong đó một tiến trình sẽ được tạm thời chuyển từ bộ nhớ chính sang bộ nhớ đệm. Sau đó, nó sẽ được đưa trở lại bộ nhớ chính để tiếp tục thực thi.
Thiết bị lưu trữ dự phòng là ổ cứng hoặc thiết bị lưu trữ phụ khác, phải đủ lớn để chứa bản sao của tất cả các ảnh bộ nhớ cho tất cả người dùng. Nó cũng có khả năng cung cấp quyền truy cập trực tiếp vào các ảnh bộ nhớ này.
Lợi ích của việc hoán đổiping
Dưới đây là những lợi ích/ưu điểm chính của việc hoán đổi.ping:
- Nó cung cấp mức độ đa chương trình cao hơn.
- Cho phép di chuyển vị trí động. Ví dụ, nếu sử dụng liên kết địa chỉ tại thời điểm thực thi, thì các tiến trình có thể được hoán đổi đến các vị trí khác nhau. Ngược lại, trong trường hợp liên kết tại thời điểm biên dịch và tải, các tiến trình nên được di chuyển đến cùng một vị trí.
- Nó giúp sử dụng bộ nhớ tốt hơn.
- Giảm thiểu tối đa sự lãng phí thời gian CPU khi hoàn thành, do đó nó có thể dễ dàng được áp dụng vào phương pháp lập lịch dựa trên ưu tiên để cải thiện hiệu suất.
Phân bổ bộ nhớ là gì?
Cấp phát bộ nhớ là một quá trình trong đó các chương trình máy tính được cấp phát bộ nhớ hoặc không gian.
Ở đây, bộ nhớ chính được chia thành hai loại phân vùng:
- Bộ nhớ thấp - Operahệ thống ting nằm trong loại bộ nhớ này.
- Bộ nhớ cao – Các tiến trình người dùng được lưu trữ trong bộ nhớ cao.
Phân bổ phân vùng
Bộ nhớ được chia thành các khối hoặc phân vùng khác nhau. Mỗi quá trình được phân bổ theo yêu cầu. Phân bổ phân vùng là một phương pháp lý tưởng để tránh phân mảnh nội bộ.
Dưới đây là các phương án phân bổ phân vùng khác nhau:
- Phù hợp đầu tiên: Trong kiểu phân vùng này, phân vùng được cấp phát là khối đủ dung lượng đầu tiên tính từ đầu bộ nhớ chính.
- Phù hợp nhất: Nó phân bổ tiến trình cho phân vùng là phân vùng đủ nhỏ nhất trong số các phân vùng trống.
- Không phù hợp nhất: Nó phân bổ tiến trình cho phân vùng có dung lượng trống đủ lớn nhất trong bộ nhớ chính.
- Phù hợp tiếp theo: Nó chủ yếu tương tự như thuật toán First Fit, nhưng thuật toán Fit này tìm kiếm phân vùng đủ điều kiện đầu tiên từ điểm phân bổ cuối cùng.
Phân trang là gì?
Phân trang là một cơ chế lưu trữ cho phép hệ điều hành truy xuất các tiến trình từ bộ nhớ phụ vào bộ nhớ chính dưới dạng các trang. Trong phương pháp phân trang, bộ nhớ chính được chia thành các khối bộ nhớ vật lý nhỏ có kích thước cố định, được gọi là khung (frame). Kích thước của một khung phải được giữ bằng với kích thước của một trang để tối đa hóa việc sử dụng bộ nhớ chính và tránh phân mảnh bộ nhớ ngoài. Phân trang được sử dụng để truy cập dữ liệu nhanh hơn và đó là một khái niệm logic.
Phân mảnh là gì?
Các tiến trình được lưu trữ và loại bỏ khỏi bộ nhớ, tạo ra các khoảng trống bộ nhớ quá nhỏ để các tiến trình khác có thể sử dụng.
Sau một thời gian, các tiến trình đó không thể được cấp phát vào các khối bộ nhớ do kích thước của chúng quá nhỏ, và các khối bộ nhớ luôn bị bỏ trống. Điều này được gọi là phân mảnh bộ nhớ. Loại vấn đề này xảy ra trong hệ thống cấp phát bộ nhớ động khi các khối trống khá nhỏ, do đó chúng không thể đáp ứng bất kỳ yêu cầu nào.
Hai loại phương pháp phân mảnh là:
- Phân mảnh bên ngoài
- Phân mảnh nội bộ
- Sự phân mảnh bên ngoài có thể được giảm bớt bằng cách sắp xếp lại nội dung bộ nhớ để đặt tất cả bộ nhớ trống vào một khối duy nhất.
- Có thể giảm thiểu sự phân mảnh nội bộ bằng cách gán phân vùng nhỏ nhất, vẫn đủ tốt để xử lý toàn bộ tiến trình.
Phân khúc là gì?
Phương pháp phân đoạn hoạt động gần giống với phương pháp phân trang. Sự khác biệt duy nhất giữa hai phương pháp là các phân đoạn có độ dài thay đổi, trong khi ở phương pháp phân trang, các trang luôn có kích thước cố định.
Một phân đoạn chương trình bao gồm chức năng chính của chương trình, cấu trúc dữ liệu, chức năng tiện ích, v.v. HĐH duy trì một bảng bản đồ phân đoạn cho tất cả các quy trình. Nó cũng bao gồm một danh sách các khối bộ nhớ trống cùng với kích thước, số phân đoạn và vị trí bộ nhớ của nó trong bộ nhớ chính hoặc bộ nhớ ảo.
Tải động là gì?
Tải động là một thủ tục của chương trình mà chỉ được nạp khi chương trình gọi nó. Tất cả các thủ tục này nên được chứa trên đĩa ở định dạng tải có thể di chuyển được. Chương trình chính sẽ được nạp vào bộ nhớ và được thực thi. Tải động cũng giúp sử dụng không gian bộ nhớ hiệu quả hơn.
Liên kết động là gì?
Liên kết là một phương pháp giúp hệ điều hành thu thập và hợp nhất nhiều mô-đun mã và dữ liệu khác nhau thành một tệp thực thi duy nhất. Tệp này có thể được tải vào bộ nhớ và thực thi. Hệ điều hành có thể liên kết các thư viện cấp hệ thống vào một chương trình kết hợp các thư viện tại thời điểm tải. Trong phương pháp liên kết động, các thư viện được liên kết tại thời điểm thực thi, do đó kích thước mã chương trình có thể vẫn nhỏ.
Sự khác biệt giữa tải tĩnh và tải động
| Tải tĩnh | Tải động |
|---|---|
| Tải tĩnh được sử dụng khi bạn muốn tải chương trình của mình một cách tĩnh. Khi đó, tại thời điểm biên dịch, toàn bộ chương trình sẽ được liên kết và biên dịch mà không cần bất kỳ mô-đun hoặc chương trình phụ thuộc bên ngoài nào. | Trong một chương trình được tải động, các tham chiếu sẽ được cung cấp và việc tải sẽ được thực hiện tại thời điểm thi hành. |
| Tại thời điểm tải, toàn bộ chương trình được tải vào bộ nhớ và bắt đầu thực hiện. | Các quy trình của thư viện chỉ được tải vào bộ nhớ khi chúng được yêu cầu trong chương trình. |
Sự khác biệt giữa liên kết tĩnh và liên kết động
Dưới đây là những điểm khác biệt chính giữa liên kết tĩnh và liên kết động:
| Liên kết tĩnh | Liên kết động |
|---|---|
| Liên kết tĩnh được sử dụng để kết hợp tất cả các mô-đun khác mà chương trình cần vào một mã thực thi duy nhất. Điều này giúp hệ điều hành tránh mọi sự phụ thuộc khi chạy. | Khi sử dụng liên kết động, nó không cần phải liên kết trực tiếp mô-đun hoặc thư viện với chương trình. Thay vào đó, nó sử dụng một tham chiếu đến mô-đun động được cung cấp tại thời điểm biên dịch và liên kết. |

