Memory management là gì. Xem qua bài viết bên dưới nhé.
Hệ điều hành của máy tính cần theo dõi nơi dữ liệu được lưu trữ trong bộ nhớ chính (RAM). Thông thường, các hướng dẫn và dữ liệu sẽ được lưu trữ ban đầu trên các bộ nhớ như ổ cứng. Sau đó hệ điều hành sẽ tải dữ liệu và các lệnh vào bộ nhớ chính để có thể xử lý dữ liệu và thực hiện các lệnh.
Hệ điều hành xử lý nhiều hoạt động quản lý bộ nhớ, bao gồm theo dõi trạng thái cấp phát bộ nhớ, xác định yêu cầu lưu trữ và kiểm soát việc sử dụng bộ nhớ.
Xem thêm: Lỗi màn hình xanh Memory Management
Theo dõi trạng thái cấp phát bộ nhớ
Bộ nhớ được chia thành các không gian địa chỉ vật lý. Hệ điều hành ban đầu đánh dấu mỗi không gian là miễn phí . Khi được yêu cầu, Hệ điều hành sẽ tải dữ liệu vào các khoảng trống này và đánh dấu chúng là đã được cấp phát . Khi dữ liệu hoặc hướng dẫn không còn cần thiết, các vết OS không gian như miễn phí một lần nữa, cho phép các dữ liệu được lưu trữ trong các không gian này được ghi đè.
Xác định yêu cầu lưu trữ
Rất hiếm khi dữ liệu cần thiết cho một quá trình có thể nằm trong một vị trí bộ nhớ duy nhất. Do đó, HĐH cần xác định lượng bộ nhớ cần phân bổ cho mỗi tiến trình đang chạy, dựa trên các yêu cầu lập trình của nó. Sau đó, hệ điều hành dự trữ các khối địa chỉ cho mỗi quá trình sử dụng.
Kiểm soát việc sử dụng bộ nhớ
Bộ nhớ là một nguồn tài nguyên hữu hạn. Khi nhiều quy trình sử dụng bộ nhớ hơn, sẽ có ít dung lượng trống hơn. Các phần bộ nhớ có thể cần được giải phóng để cung cấp quyền truy cập bộ nhớ cho các quá trình khác. Hệ điều hành quản lý việc hoán đổi giữa các tiến trình và không gian bộ nhớ của chúng để cung cấp quyền truy cập bộ nhớ theo yêu cầu.
Cách phân bổ
Bộ nhớ chính là tài nguyên phần cứng với các địa chỉ vật lý được sử dụng để định vị các khu vực mà dữ liệu và hướng dẫn có thể được lưu trữ.
Khi một chương trình được thực thi, một loạt các địa chỉ logic được tạo ra. Tổng các địa chỉ logic này tạo nên không gian địa chỉ logic của quá trình đó.
Hệ điều hành phải ánh xạ không gian địa chỉ logic với không gian địa chỉ vật lý và quản lý việc sử dụng bộ nhớ giữa các tiến trình khi thích hợp, ví dụ, thông qua phân trang, phân đoạn và sử dụng bộ nhớ ảo.
Pagging
Không gian địa chỉ logic được chia thành các đơn vị bộ nhớ được gọi là các trang . Khi một trang được tải vào bộ nhớ chính, nó được lưu trữ trong một khung trang , là một khối các địa chỉ tuần tự có cùng kích thước (có cùng số lượng địa chỉ) với một trang. Phân trang cho phép bộ nhớ được cấp phát theo cách không liền kề – điều này có nghĩa là các trang của cùng một quy trình không cần phải được lưu trữ cùng nhau, nhưng có thể được cấp phát ở bất kỳ nơi nào có không gian trống trong bộ nhớ chính. Một bảng trang được sử dụng để theo dõi khung trang nào được phân bổ cho mỗi trang.
Phân đoạn
Các khối bộ nhớ được cấp cho các quá trình được chia thành các phân đoạn có kích thước khác nhau để phù hợp với các yêu cầu bộ nhớ khác nhau của mỗi quá trình. Các phân đoạn không cần phải được lưu trữ liên tục trên một không gian địa chỉ cố định và chúng có thể được di chuyển vào và ra khỏi bộ nhớ theo yêu cầu.
Hệ điều hành theo dõi việc phân bổ bộ nhớ cho mỗi quá trình bằng bảng phân đoạn , bảng này ghi lại vị trí vật lý của mỗi phân đoạn cần thiết cho một quá trình.
Bộ nhớ ảo
Hệ điều hành có thể mở rộng không gian vật lý giới hạn của bộ nhớ bằng cách sử dụng bộ nhớ khác trong máy tính. Ví dụ: một đĩa cứng có thể hoạt động như một bộ nhớ ảo : hệ điều hành có thể hoán đổi các phần của một tiến trình hiện không được sử dụng từ bộ nhớ chính thành một không gian được cấp phát trên đĩa cứng, sau đó hoán đổi nó trở lại bộ nhớ chính khi nó cần thiết.
Điều này có lợi cho việc mở rộng bộ nhớ khả dụng và có thể xuất hiện việc hoán đổi các lệnh và dữ liệu từ bộ nhớ chính sang bộ nhớ phụ có nghĩa là có thể có một lượng lớn bộ nhớ. Tuy nhiên, việc truy cập phương tiện lưu trữ phụ, chẳng hạn như ổ cứng, chậm hơn đáng kể so với truy cập bộ nhớ chính, do đó, nó có thể làm chậm hiệu suất của hệ thống máy tính.