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