Диаграмма состояний процесса
готовность процесса -> выполнение -> ожидание -> готовность
Готовность – состояние, в котором процессу достаточно для выполнения всех нужных ресурсов кроме одного – процессорного времени.
Выполнение – состояние, в котором в данный момент находится только один процесс. Тот, которому выделено процессорное время.
Ожидание – состояние, в котором процессу не хватает для выполнения каких-либо ресурсов и он ждёт какого-либо события.
Системы, в которых процессы могут переводиться принудительно из выполнения в готовность, называется системами с вытесняющим планированием, если не могут – невытесняющие.
При запуске программы до выполнения кода ни один ресурс не запрашивается, поэтому процесс поступает в очередь готовых, когда в процессе выполнения ресурсы будут запрошены, тогда процесс может перейти в ожидание.
Дескриптор
Дескриптор – идентификатор процесса, который содержит номер процесса, область памяти, где размещён сегмент кода, данные о состоянии процесса. Контекст – хранит состояние регистров, состояние программного счётчика, режим работы процессора, незавершённые операции ввода-вывода, информацию о выполненных системных вызовах.
Планирование и диспетчеризация
3 уровня планирования:
долгосрочное планирование – выбор процесса, который будет запущен в системе;
краткосрочное планирование (диспетчеризация) – определяет поведение системы в ближайшее время вплоть до нескольких тиков таймера;
среднесрочное планирование – выбор процесса, который может быть выгружен во вторичную память с последующим возвратом в оперативную (главную).
Вытесняющее и невытесняющее планирование
Планирование, т.е. принятие решения о выборе процесса из очереди готовых производится в следующих ситуациях:
вынужденная:
а) выполняющийся процесс завершился и покинул систему;
б) вынужденная – выполняющийся процесс может заблокироваться (перейти в состояние ожидания);
невынужденная:
а) окончание кванта времени у выполняющемся процесса;
б) невынужденная – поступление нового процесса в систему;
в) невынужденная – поступление в очередь готовности процесса из блокировки;
Планирование невытесняющее, если принятие решения производиться только в вынужденных ситуациях и вытесняющее, если в невынужденных ситуациях.
Алгоритмы планирования для систем пакетной обработки
Критерии оценки качества алгоритма:
минимизация полного времени оборота, которое включает в себя время с момента поступления процесса в систему до момента завершения его работы;
Алгоритмы:
FCFS (First Come First Served) – невытесняющий алгоритм. Процессы выполняются в том порядке, в каком поступают в очередь готовности. Достоинства: простота в реализации. Недостатки: алгоритм очень сильно зависим от входных данных. Если сначала выполняются длинные процессы, то коротким придётся очень долго ждать их завершения. Следовательно, увеличивается время ожидания и время оборота. Если сначала выполняются короткие, то время ожидания значительно уменьшится;
SJN (Shortest Job Next) – невытесняющий алгоритм. Процессы выполняются согласно необходимому времени выполнения. Следующим помещается процесс, которому нужно меньше времени. Оценить время выполнения с большой точностью – невозможно, поэтому алгоритм нереализуем;
SRN (Shortest Remain Netx) – вытесняющий алгоритм. При поступлении нового процесса, также производится выбор, и процессорное время может быть выделено тому процессу, которому нужно меньше времени для выполнения, чем ещё осталось выполняться текущему. Достоинства: минимизация времени ожидания, поскольку даже при поступлении короткого процесса во время выполнения длительного не нужно ждать его завершения. Оптимальный среди вытесняющих. Недостаток: нереализуем;
