You are on page 1of 2

Xem 3 chiến lược cấp phát bộ nhớ : first fit, best fit, worst fit

- Khi một tiến trình đến và cần bộ nhớ, hệ thống sẽ tìm kiếm một lỗ hổng đủ lớn
cho tiến trình đó. Nếu lỗ quá lớn, nó được chia thành hai phần. Một phần được phân
bổ
cho tiến trình đến phần còn lại được trả lại cho tập hợp các lỗ. Khi một tiến trình
kết
thúc, nó sẽ giải phóng khối bộ nhớ của nó, khối bộ nhớ này sau đó được đặt trở lại
tập
hợp các lỗ. Nếu lỗ mới liền kề với các lỗ khác, các lỗ liền kề này sẽ được hợp nhất
để
tạo thành một lỗ lớn hơn. Tại thời điểm này, hệ thống có thể cần kiểm tra xem có
các
tiến trình đang chờ bộ nhớ hay không và liệu bộ nhớ mới được giải phóng và kết hợp
lại
này có thể đáp ứng nhu cầu của bất kỳ tiến trình đang chờ nào trong số này hay
không.
Có nhiều giải pháp cho vấn đề này. Các chiến lược phù hợp nhất là những chiến lược
được sử dụng phổ biến nhất để chọn một lỗ trống từ tập hợp các lỗ có sẵn.

- first fit, best fit, worst fit là các chiến lược theo mức độ phù hợp được sử dụng
để chọn 1 lỗ trống từ tập hợp các lỗ có sẵn.

• Phù hợp đầu tiên (first fit): phân bổ lỗ đầu tiên đủ lớn, quá trình tìm kiếm có
thể bắt đầu ở phần đầu của tập hợp các lỗ hoặc tại vị trí mà lần tìm kiếm phù hợp
nhất
trước đó đã kết thúc. Chúng ta có thể ngừng tìm kiếm ngay khi tìm thấy một lỗ trống
đủ
lớn.
• Phù hợp nhất (best fit): phân bổ lỗ nhỏ nhất đủ lớn, chúng ta phải tìm kiếm toàn
bộ danh sách, trừ khi danh sách được sắp xếp theo kích thước. Chiến lược này tạo ra
lỗ
nhỏ nhất còn sót lại.
• Không phù hợp nhất (worst fit): phân bổ lỗ lớn nhất, chúng ta phải tìm kiếm
toàn bộ danh sách, trừ khi nó được sắp xếp theo kích thước. Chiến lược này tạo ra
lỗ
còn lại lớn nhất, có thể hữu ích hơn lỗ còn lại nhỏ hơn từ phương pháp phù hợp
nhất.
Các mô phỏng đã chỉ ra rằng cả sự phù hợp đầu tiên và sự phù hợp tốt nhất đều tốt
hơn phù hợp tồi tệ nhất cả về mặt giảm thời gian và mức sử dụng bộ nhớ. Nhưng phù
hợp
đầu tiên thường nhanh hơn.

- Ví dụ: trong bộ nhớ có 4 vùng trống(lỗ) có kích thước lần lượt như sau 3MB,
8MB, 7MB,
và 10MB; yêu cầu cấp phát vùng nhớ kích thước 6MB. Ba chiến lược cấp phát ở trên sẽ
cho
kết quả như sau:
- Chiến lược first fit sẽ chọn khối 8MB để chia và cấp phát.
- Chiến lược best fit sẽ chọn vùng trống 7MB.
- Chiến lược worst fit sẽ chọn vùng trống 10MB.

28/3/2023

- Cấp phát bộ nhớ liên tục và cấp phát bộ nhớ không liên tục:
+ thường sử dụng k liên tục để sử dụng triệt để không gian bộ nhớ
+ cấp phát bộ nhớ tĩnh: chương trình cần không gian nào thì cấp phát không gian đó
theo dung lượng yêu cầu:
+ cấp phát bộ nhớ động : chọn lỗ trống thích hợp để cấp phát trong số lỗ trống của
bộ nhớ
3 chiến lược: first fit, best fit, worst fit.

- Phân mảnh trong và phân mảnh ngoài:


+ Với bộ nhớ thì chia thành nhiều phân vùng cho việc cấp phát, bảo vệ, phân bổ
lại,...
+ phân mảnh bộ nhớ là khi hầu hết bộ nhớ đã đc cấp phát và để lại % nào đó vùng nhớ
còn lại chưa được sử dụng.
=> phân mảnh là phần bộ nhớ không thể sử dụng được mặc dù nó còn trống.
+ phân mảnh trong: là phần dư của khối sau khi cấp phát
+ phân mảnh ngoài là các khối dư k đủ cấp phát cho tiến trình

giải pháp cho phân mảnh:


+ compaction (nén):
+ non-contiguous allocation ( cấp phát k liên tục ):
kĩ thuật phân trang: BN vật lý đc chia thành các khung, BN logic đc chia thành các
page, page size = frame size
kĩ thuật phân đoạn:

You might also like