Планирование заданий, процессов и потоков (7). Уровни планирования (38)

Долгосрочное Решение о добавлении процесса. Определяя степень мультипрограммирования системы, т. е. количество процессов, одновременно находящихся в ней.
Среднесрочное Решение о добавлении процесса к числу процессов, полностью или частично размещенных в основной памяти, свопинг.
Краткосрочное Решение о том, какой из доступных процессов (потоков) будет выполняться процессором
Планирование ввода-вывода Решение о том, какой из запросов процессов (потоков) на операцию ввода-вывода будет выполняться свободным устройством ввода-вывода

В мультипрограммной системе поток может находиться в одном из трех основных состояний:

  • выполнение – активное состояние потока, во время которого поток обладает всеми необходимыми ресурсами и непосредственно выполняется процессором;
  • ожидание – пассивное состояние потока, находясь в котором, поток заблокирован по своим внутренним причинам (ждет осуществления некоторого события, например, завершения операции ввода-вывода, получения сообщения от другого потока или освобождения какого-либо необходимого ему ресурса);
  • готовность – также пассивное состояние потока, но в этом случае поток заблокирован в связи с внешним по отношению к нему обстоятельством (имеет все требуемые ресурсы, готов выполняться, но процессор занят выполнением другого потока).

Алгоритмы планирования можно разделить на два класса : вытесняющие и не вытесняющие алгоритмы планирования.

Смена активного потока происходит, если:

1) поток завершается и покинул систему;

2) произошла ошибка;

3) поток перешел в состояние ожидания;

Исчерпан квант времени, отведенный данному потоку.

Приоритет

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

1) приоритет меняет ОС сама при работе программы с оборудованием

2) с помощью обращения к API

Запуск процесса от имени администратора повышает приоритет.

ОС повышает приоритет для работы с оборудованием и далее может его понизить.

Изменения приоритета могут происходить по инициативе самого потока, когда он обращается с соответствующим вызовом к ОС, или по инициативе пользователя, когда он выполняет соответствующую команду. Кроме этого, сама ОС может изменить приоритеты потоков в зависимости от ситуации, складывающейся в системе. В последнем случае приоритеты называются динамическими в отличие от неизменяемых, фиксированных приоритетов.

Существует две разновидности приоритетного планирования: с относительными и абсолютными приоритетами. В обоих случаях на выполнение выбирается поток, имеющий наивысший приоритет. Но определение момента смены активного потока решается по-разному. В системах с относительными приоритетами активный поток выполняется до тех пор, пока он сам не покинет процессор, перейдя в состояние ожидания (по вводу-выводу, например), или не завершится, или не произойдет ошибка. В системах с абсолютными приоритетами выполнение активного потока прерывается еще и по причине появления потока, имеющего более высокий приоритет, чем у активного потока. В этом случае прерванный поток переходит в состояние готовности.

 

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: