2.3.3 Нарушения распределения памяти

Физической памяти компьютера должно быть достаточно, чтобы в нее поместились все текущие блоки пользовательских программ. Если основной памяти не хватает, то производительность системы резко падает из-за ошибок страниц и, соответственно постоянного подкачивания страниц. Ошибка страница (Page Fault) - это ситуация, когда процесс обращается по логическому адресу, но соответствующая страница не загружена в основную память. Если возникает ошибка страницы, ОС запускает процедуру управления ошибка страниц, которая блокирует обратившийся по этому адресу процесс, находит во вторичной памяти требуемую страницу и загружает её в основную память. Затем процедура управления ошибками обновляет запись страницы физическим адресом и запускает заблокированный процесс, чтобы тот мог возобновить свою работу.
Если в основной памяти недостаточно места ля новой страницы, ОС применяет алгоритм замещения страниц, согласно которому в памяти отыскивается страница, которую в данный момент можно перенести во вторичную память. Выбор страницы для переноса во вторичную память является очень ответственным, поскольку, если будет выбрана страница, которая скоро потребуется, операционной системе скоро вновь придётся решать проблему ошибки страницы и переносить недавно удалённую страницу обратно в основную память. Может случиться, что в системе возникает большое число ошибок страниц, и ОС приходится непрерывно заниматься их подкачкой. Процессы при этом простаиваю в ожидании страниц. Такая ситуация называется пробуксовкой (Thrashing). Это патологическая ситуация, когда ОС тратит большую часть времени на разрешение ошибок страниц, а процессы не могут выполнять свои задачи. Для решения этой проблемы ОС должна сократить число запущенных процессов. Этого можно блокировкой поцесса и переносом его на жёсткий диск, высвободив при этом место в основной памяти.