Архитектура современных операционных систем

58 При отсутствии блокированных процессов или если места было недоста- точно, своппер по тому же правилу выбирал претендента из готовых процессов. Кроме того, своппер периодически просматривал выгруженные на диск процессы и определял, не являются ли они готовыми. Если таковые находи- лись, то в качестве претендента на загрузку своппер выбирал тот процесс, кото- рый дольше всего находился на диске. После выбора претендента на загрузку своппер определял, будет ли его загрузка легкой или тяжелой. Легкой считается загрузка без выгрузки других процессов. Своппер продолжал анализировать выгруженные процессы до тех пор, пока не выполнялись следующие условия: 1) на диске не оставалось выгруженных процессов; 2) в памяти не оставалось места для новых процессов. При выгрузке готовых процессов из памяти для снижения системных из- держек, своппер не выгружал процессы, находящиеся в памяти меньше 2 се- кунд. Свободное место памяти в файле выгрузки учитывалось при помощи свя- занных списков. Всякий раз, когда свопперу было нужно место в памяти или на диске, он выбирал соответствующий список и в нем искал первый, подходящий по размеру элемент. После выбора свободного пространства элементы списка корректировались. Страничная организация памяти в UNIX При страничной организации памяти ядро устанавливает соответствие между виртуальными адресами области и физическими адресами путем отоб- ражения логических номеров страниц в физические с помощью таблиц страниц. Таблица страниц представляет следующую структуру (табл. 2.6.): Табл. 2.6. Логический номер страницы Физический номер страницы Атрибут 0 573 1 52

RkJQdWJsaXNoZXIy MTY0OTYy