CHƯƠNG 3 : QUẢN LÝ BỘ NHỚ
3.9. TÌNH TRẠNG TRÌ TRỆ
Khi số khung cấp cho tiến trình giảm xuống một mức nào đó, tiến trình sẽ rơi vào tình trạng thiếu bộ nhớ và phải đổi trang liên tục. Để nạp một trang mới vào, tiến trình phải đổi một trang. Do các trang đều đang cần dùng tới nên trang vừa bị đổi ra sẽ lập tức gây thiếu trang và quá trình này sẽ tiếp diễn.
Tình trạng đổi trang liên tục do không đủ bộ nhớ được gọi là trì trệ(thrashing). Một tiến trình rơi vào tình trạng trì trệ khi thời gian đổi trang của tiến trình lớn hơn thời gian thực hiện. Dấu hiệu dễ nhận thấy của tình trạng này là hoạt động liên tục của đĩa cứng trong khi tiến trình khơng có tiến triển.
Tình trạng khủng hoảng bộ nhớ ảnh hưởng nghiêm trọng tới tốc độ máy tính và do vậy cần có biện pháp giải quyết.
Tình trạng trì trệ xảy ra khi bộ nhớ máy tính có kích thước hạn chế, tiến trình địi hỏi truy cập đồng thời nhiều trang nhớ và hệ thống có mức độ đa chương trình cao, tức là nhiều tiến trình cùng thực hiện một lúc. Trên thực tế, tình trạng này có thể xảy ra cả khi mức độ đa chương trình thấp, chẳng hạn khi khi tiến trình làm việc với dữ liệu kích thước lớn (ảnh, file dữ liệu) và thuật tốn địi hỏi truy cập những phần khác nhau của dữ liệu cùng một lúc.
3.9.1. Kiểm soát tần suất thiếu trang
Khi tiến trình rơi vào tình trạng trì trệ, tần suất thiếu trang của tiến trình sẽ tăng lên đáng kể. Đây là thông tin quan trọng được sử dụng để phát hiện và giải quyết vấn đề trì trệ.
Cụ thể, hệ thống theo dõi và ghi lại tần suất thiếu trang. Tần suất thiếu trang tăng lên là dấu hiệu cho thấy tiến trình được cấp khơng đủ khung, trong khi tần suất thiếu trang thấp cho thấy tiến trình được cấp đủ hoặc thậm chí thừa khung. Hệ điều hành có thể đặt ra giới hạn trên và giới hạn dưới cho tần suất thiếu trang của tiến trình. Khi tần suất vượt giới hạn trên, hệ thống cấp cho tiến trình thêm khung mới. Ngược lại, khi tần suất thiếu trang thấp hơn giới hạn dưới, hệ thống thu hồi một số khung của tiến trình.
Trong trường hợp tần suất vượt giới hạn trên và hệ thống khơng thể tìm khung để cấp thêm, tiến trình sẽ bị treo (suspend) hoặc bị kết thúc. Giải pháp này một mặt tránh cho tiến
trình khơng rời vào trì trệ, đồng thời cho phép giải phóng một số khung để cấp cho tiến trình
khác.