BỘ NHỚ CHÍNH

Quản lý bộ nhớ là chức năng của hệ điều hành trong việc xử lý và di chuyển các tiến trình qua lại giữa bộ nhớ chính và đĩa trong quá trình thực thi. Hệ điều hành theo dõi từng vị trí bộ nhớ, bất kể nó được cấp phát cho một số tiến trình hay nó đang trống. Hệ điều hành kiểm tra lượng bộ nhớ được cấp cho các tiến trình. Nó quyết định tiến trình nào sẽ nhận được bộ nhớ vào thời điểm nào. Nó theo dõi bất cứ khi nào một số bộ nhớ được giải phóng hoặc không được cấp phát và tương ứng nó sẽ cập nhật trạng thái.

Bài học này giúp các bạn chạy thử các giải thuật cấp phát bộ nhớ chính trong hệ điều hành. Cụ thể các bạn sẽ viết và chạy các thuật toán cấp phát bộ nhớ là: FirstFit, BestFit và WorstFit.

Trước khi viết chương trình minh họa, chúng ta cùng khảo sát một ví dụ để phân tích việc cấp phát bộ nhớ bằng các thuật toán đã đề cập ở trên.

Bài toán: Cho 6 phân vùng nhớ theo thứ tự: 300 KB, 600 KB, 350 KB, 200 KB, 750 KB, và 125 KB. Các tiến trình với kích thước theo thứ tự: 115 KB, 500 KB, 358 KB, 200 KB, và 375 KB sẽ được cấp phát bộ nhớ như thế nào theo các giải thuật: first-fit, best-fit, và worst-fit.

Bảng phân tích việc cấp phát bộ nhớ theo các thuật toán như sau:

Theo giải thuật First-fit

Yêu cầu (Kích thước tiến trình)

Kích thước hole được chọn

Các kích thước hole còn lại

115KB

300KB

185KB, 600KB, 350KB, 200KB, 750KB, 125KB

500KB

600KB

185KB, 100KB, 350KB, 200KB, 750KB, 125KB

358KB

750KB

185KB, 100KB, 350KB, 200KB, 392KB, 125KB

200KB

350KB

185KB, 100KB, 150KB, 200KB, 392KB, 125KB

375KB

392KB

185KB, 100KB, 150KB, 200KB, 17KB, 125KB

Theo giải thuật Best-fit

Yêu cầu

Kích thước hố nhớ được chọn

Các kích thước hố nhớ còn lại

115KB

125KB

300KB, 600KB, 350KB, 200KB, 750KB, 10KB

500KB

600KB

300KB, 100KB, 350KB, 200KB, 750KB, 10KB

358KB

750KB

300KB, 100KB, 350KB, 200KB, 392KB, 10KB

200KB

200KB

300KB, 100KB, 350KB, 392KB, 10KB

375KB

392KB

300KB, 100KB, 350KB, 17KB, 10KB

Theo giải thuật Worst-fit

Yêu cầu

Kích thước hố nhớ được chọn

Các kích thước hố nhớ còn lại

115KB

750KB

300KB, 600KB, 350KB, 200KB, 635KB, 125KB

500KB

635KB

300KB, 600KB, 350KB, 200KB, 135KB, 125KB

358KB

600KB

300KB, 242KB, 350KB, 200KB, 135KB, 125KB

200KB

350KB

300KB, 242KB, 150KB, 200KB, 135KB, 125KB

375KB

Không thể thực thi

300KB, 242KB, 150KB, 200KB, 135KB, 125KB

Chương trình minh họa giải thuật First-Fit

Kết quả chạy chương trình trên hệ điều hành CentOS, biên dịch bằng GCC

Chương trình minh họa giải thuật Best-Fit

Kết quả chạy chương trình trên hệ điều hành CentOS, biên dịch bằng GCC

Chương trình minh họa giải thuật Worst-Fit

Kết quả chạy chương trình trên hệ điều hành CentOS, biên dịch bằng GCC

Last updated