Планирование свопинга в ОС Unix

При принятии нового процесса на обработку необходимо освободить ресурсы. Какой - то процесс скидывается в область своппинга.

Область свопинга - специально выделенное системой пространство внешней памяти

 

P_TIME – счетчик, находящийся в контексте процесса. Суммирует время нахождения процесса в состоянии мультипрограммной обработки или в области свопинга. При переходе из одного состояния в другое счетчик обнуляется. Для загрузки процесса в память из области свопинга выбирается процесс с максимальным значением P_TIME. Если для загрузки этого процесса нет свободного пространства оперативной памяти, то система ищет среди процессов в оперативной памяти процесс, ожидающий ввода/вывода (сравнительно медленных операций, процессы у которых приоритет выше значения P_ZERO) и имеющий максимальное значение P_TIME (т.е. тот, который находился в оперативной памяти дольше всех). Если такого процесса нет, то выбирается просто процесс с максимальным значением P_TIME.

 

 

Работа диспетчерского процесса.

 

Надо определить принципы, исходя из которых происходят откачка процесса на диск м запуск на выполнение.

- Поиск процесса для ввода в оперативную память. Иначе выбирается процесс с максимальным значением p_time (обозначим outage). Если (outage < 3), то процесс не загружается.

- Если места в ОП нет, диспетчерский процесс определяет кандидата на выгрузку, прежде всего среди процессов в системной фазе, ждущих завершения сравнительно медленных операций. (По определению их приоритет > PZERO)

Из них – занимающий наибольшее место. Если такого нет – с максимальным значением p_time (обозначим inage). При (inage < 2) процесс не выгружается.

При отказе загрузки (нет претендентов) / выгрузки (невозможен выбор) диспетчерский процесс переходит в состояние ожидания

 

 

Планирование обработки прерываний

Правильное планирование обработки прерываний – залог правильного планирования процессов.

 

ОСдолжна обеспечивать контроль над ходом выполнения системных процедур, вызываемых по прерываниям . Это необходимое условие для правильного планирования пользовательских процессов.

 

Рассмотрим пример, в котором обработчик прерываний принтера блокирует на длительное время обработку прерываний от таймера, в результате чего системное время на некоторое время «замирает», и один из процессов (2), критически важный для пользователя, не получат управление в запланированное время.

 

Упорядоченное планирование прерываний

Механизм прерываний поддерживает приоритезацию и маскирование прерываний.

Источники прерываний делятся на классы – каждому классу свой уровень приоритета запроса на прерывание.