Запуск процесса – инициализация
Порождение нового процесса это длительная процедура, поскольку ОС должна выполнить множество действий : 1)выделить процессу необходимые ресурсы (собственное адресное пространство, файлы, устройство и т.д.); 2) произвести инициализацию этих ресурсов (загрузить выполняемую программу в ОП, инициализировать первое начальное значение регистров и стеков, открыть файлы и т.д.); 3) занести всю необходимую информацию в специальную таблицу, описывающую процессу в системе; 4) передать управление новому процессу.
Переключение между отдельными выполняющимися процессами так же длительная процедура. В этом случи ОС должна произвести дополнительные (обычно в таблице соответствующей выполняемому процессу) от регистров соответствующих выполняемому процессу, карту отображения в памяти процесса на реальную физическую память, сохранить состояние всех файлов и устройств используемых процессом. После этого ОС должна выбрать полное описание процесса на который она переключается из таблицы (инициализировать регистры, карту отображения памяти процесса на физическую память, состояние файлов и устройств). Переключение между процессами осуществляется в том числе по прерыванию таймера. Обычно системному программисту предоставляется возможность задания максимального времени выполнения одного процесса, после которого произойдет прерывание по таймеру и переключение на другой процесс. При задании маленького значения этого времени у системы будет мало времени на отклик на возникающие события, однако при этом значительная часть процессорного времени будет тратиться на переключение между процессами. При задании большого времени таймера накладные расходы, связанные с переключениями между процессами будут уменьшаться, однако будет ухудшаться отклик системы на возникающие события.
При завершении процесса происходит закрытие всех файлов, освобождение всех ресурсов, занятых всех ресурсов и вычеркивании его из таблицы процессов.
предыдущая следующая тема