Современные операционные системы

Современные операционные системы
Процессы и потоки  Циклическое планирование

Циклическое планирование

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

Циклическое планирование читать полное описание.


Процессы и потоки  Приоритетное планирование

Приоритетное планирование

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

Приоритетное планирование читать полное описание.


Процессы и потоки  Использование нескольких очередей

Использование нескольких очередей

Одной из самых ранних систем приоритетного планирования была CTSS (Compatible Timesharing System — совместимая система разделения времени), разработанная в Массачусетском технологическом институте, которая работала на машине IBM 7094 (Corbato et al., 1962). CTSS страдала от проблемы очень медленного переключения процессов, поскольку машина 7094 была способна содержать в оперативной памяти лишь один процесс. Каждое переключение означало сброс текущего процесса на диск и считывание нового процесса с диска. Разработчики CTSS быстро поняли, что эффективнее было бы время от времени выделять процессам, ограниченным скоростью вычислений, более существенные кванты времени, вместо того чтобы слишком часто выделять им небольшие кванты времени (чтобы сократить обмен данными с диском). С другой стороны, предоставление всем процессам больших квантов времени отразится увеличением времени отклика, о чем мы уже упоминали.

Использование нескольких очередей читать полное описание.


Процессы и потоки  Присваивания процессам классов

Присваивания процессам классов

Для присваивания процессам классов приоритетности используется также множество других алгоритмов. Например, в системе XDS 940 (Lampson, 1968), созданной в Беркли и оказавшей влияние на развитие вычислительной техники, было четыре класса приоритетности, которые назывались терминалом, вводом-выводом, коротким квантом и длинным квантом. Когда процесс, ожидающий ввода с терминала, в конце концов активизировался, он попадал в высший класс приоритетности (терминал). Когда процесс, ожидающий поступления блока дисковой информации, переводился в состояние готовности, он попадал во второй класс.

Присваивания процессам классов читать полное описание.


Процессы и потоки  Выбор следующим самого короткого процесса

Выбор следующим самого короткого процесса

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

Выбор следующим самого короткого процесса читать полное описание.