Gỉa sử bộ nhớ chính được phân thành các phân vùng có kích thước là 900K, 400K, 600K, 300K (theo thứ tự) và con trỏ đang trỏ vào vùng nhớ 400K, cho biết các tiến trình có kích thước 700K, 400K, 300K và 200K (theo thứ tự) sẽ được cấp phát bộ nhớ như thế nào, nếu sử dụng:

  • First Fit
  • Next Fit
  • Worst Fit
  • Best Fit

Bài làm:

First Fit: (Duyệt từ đầu. Thấy vùng nhớ trống nào đủ để cấp phát cho Process thì cấp luôn)

  • 700K được cấp phát cho vùng nhớ 900K
  • 400K được cấp phát cho vùng nhớ 400K
  • 300K được cấp phát cho vùng nhớ 600K
  • 200K được cấp phát cho vùng nhớ 200k (vùng nhớ còn dư của 900K – 700K = 200K)

Next Fit: (Giống First Fit nhưng điểm xuất phát là từ con trỏ)

  • 700K phải chờ vì không có vùng nhớ trống thỏa yêu cầu
  • 400K được cấp phát cho vùng nhớ 400K
  • 300K được cấp phát cho vùng nhớ 600K
  • 200K được cấp phát cho vùng nhớ 300K (vùng nhớ còn dư của 600K – 300K = 300K)

Worst Fit: (Cũng duyệt từ đầu NHƯNG cấp theo kiểu đại gia – thấy vùng trống nào có kích thước lớn nhất thời điểm hiện tại thì mới dùng nó để cấp cho Process)

  • 700K được cấp phát cho vùng nhớ 900K
  • 400K được cấp phát cho vùng nhớ 600K
  • 300K được cấp phát cho vùng nhớ 400K
  • 200K được cấp phát cho vùng nhớ 200k (vùng nhớ còn dư của 900K – 700K = 200K)

Best Fit: (Cấp phát vùng nhớ trống nhỏ nhất đủ lớn)

  • 700K được cấp phát cho vùng nhớ 900K
  • 400K được cấp phát cho vùng nhớ 400K
  • 300K được cấp phát cho vùng nhớ 300K
  • 200K được cấp phát cho vùng nhớ 200k (vùng nhớ còn dư của 900K – 700K = 200K)

[Carry by: TungTTr –  Date: 12/07/2017]