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