Метода управления процессами
Классификация ОС
Классы могут пересекаться
1) По сфере применения
· Универсальные ОС – для выполнения большинства задач (windows, linux)
· Специализированные ОС – предназначены для решения одной или узкого круга задач (QNX – ОС разработана специально для управления атомными электростанциями).
2) По строению (основа ОС – ядро). Ядро ОС может быть трех типов:
· Моноядерное (монолитное ядро) – единое целое
· Мокроядерные – базовые функции ОС разделены между несколькими программами, могут между собой взаимодействовать
· Гибридные – в гибридах ОС взяты лучшие характеристики из моноядерных и микроядерных.
моноядерное микроядерные
гибридные
3) По возможности одновременной работе нескольких возможностей:
· Однопользовательские – в один момент времени может работать один пользователь (windows 9x)
· Многопользовательские (windows XP, Seven)
4) По управлению ресурсами. Существуют два класса:
1. Однозадачные – в один момент времени может выполняться только одна задача. Все ресурсы ЭВМ полностью отданы этой задачи.
2. Многозадачные – ОС может распределять ресурсы между несколькими задачами. Существует 3 подкласса:
· ОС пакетной обработки – в таких ОС перед запуском формируется пакет задач. Каждой
· задачи выделяется конкретное количество ресурсов. На протяжении всего сеанса работы ОС, ресурсы не пересекаются. Снятие и возобновление какой-либо задачи, а так же добавление новых не предусмотрено.
· ОС с разделение времени – в таких ОС задачи могут создаваться и добавляться динамически. Запуск и завершение задач происходит динамически, при этом ОС динамически перераспределяет ресурсы между задачами (windows, linux, mac, sx).
· ОС реального времени – в более реальное время задачи выполняются в строго определенном порядке, который может быть изменен только в случае возникновения аварийной ситуации, после выполнения аварийной ситуации восстанавливать прежний порядок действий, но не из того места где произошло прерывание, а с самой первой задачи.
Ресурсы
Ресурсами ЭВМ принято считать процессорное время и опер. память. Любая многозадачная ОС должна управлять ресурсами таким образом чтобы:
1. Ресурсы распределялись оптимальным образом, т. е. ресурсоемкие задачи должны получать достаточное кол-во ресурсов, а задачи не требовательные ресурсы не занимать излишних ресурсов.
2. В процессе работы ОС (с разделение времени) должна динамически перераспределять ресурсы, т. к. в процессе работы приложения требования к выделению ресурсов изменяется.
3. Т. к. в процессе работы приложения запускаются, приостанавливаются, останавливаются ОС должна обеспечивать динамическое распределение ресурсов.
Управление ресурсами ЭВМ
Подсистема управления ресурсами многозадачной ОС должна обеспечивать выполнение двух задач:
1. Распределение процессорного времени между задачами
2. Распределение доступной опер. памяти.
Распределение времени ЦП
Управление процессами
Программный процесс – последовательность операций направлена на достижение какого – либо результата.
Многозадачная ОС должна распределять задачи между процессами (ЦП) или процессорными ядрами в режиме реального времени, при этом в идеале нагрузка на отдельные ядра должна быть сбалансированной, но в реальности балансировка нагрузки часто не достижима, т. к. не все задачи могут быть разделены на параллельные процессы. (Пр: skype в режиме приема передачи голоса и видео сожжет использовать только одно ядро, несмотря на то, что современные ОС поддерживают многоядерные процессоры). Если распределить задачу кодирование декодирование голоса/видео между различными ядрами не удастся получить распределение в реальном времени, т. к. различные «сегменты» (пакеты) будут декодированы в разное время и невозможно будет восстановить реальную последовательность кадров.
Подсистема управления процессами должна решать следующие задачи:
1. Запуск процессов на выполнение
2. Снятие процесса с выполнения после его завершения
3. Приостановка процесса в случае если он по каким – либо независящем от него причинам не может выполняться (Пр: процесс ждет ввода данных от пользователя)
4. Для обеспечения многозадачности ОС должна менять процессы находящие на выполнение в соответствии с типом многозадачности
5. Завершать процессы в случае, если произошла какая – либо аварийная ситуация и выполнение процесса не может быть продолжено. (Пр: запись блок данных не может быть продолжена если извлечен ночитель).
Метода управления процессами
В современных ОС управление процессами осуществляется на основании 2х алгоритмов:
1. Квантование
2. Очередь на приоритетах
Но на самом деле в современных многозадачных ОС чаще используется гибридный алгоритм с разной степенью гибридностью (смесь алгоритмов с разными процессами).
Алгоритм квантования.
При использовании этого алгоритма процессы выстраиваются в очередь на выполнение, но каждый процесс выполняется в течении строго фиксированного интервала времени. Не зависимо от того завершался процесс или нет после истечения выделенного ему промежутка времени он снимается с выполнения и на выполнение отправляется следующий в очереди процесс. Такой промежуток времени называется квантом.
Достоинства данного метода.
Процессы выполняются последовательно и для каждого процесса гарантированно выделяется квант, т. е. никогда не останется такого процесса очередь которого бы не наступила.
Недостатком такого метода заключается в том, что все процессы выполняются в строго определенной последовательности. Процессы попадают в очередь по мере запуска и данная последовательность сохраняется на протяжении всего времени работы ОС.
Любой процесс не может быть снят с выполнения раньше чем закончится его квант. В случае если процесс выполнения ожидает данных от другого процесса, могут возникнуть кратковременные зависания. Если какой-либо процесс необходимо выполнить в не очереди данный алгоритм не подходит.
Быстродействие ОС основанных на квантовании достаточно низкое.
Очередь на приоритетах.
Каждому процессу присваивается свой приоритет. Очередь процессов выстраивается в соответствии с приоритетом. В начале очереди оказываются те процессы приоритет которых наивысший. Попавший на выполнение процесс будет выполняться до своего полного завершения.
Достоинством данного метода является возможность управления очередью путем изменения приоритета. Через данный алгоритм можно реализовать режим реального времени.
Недостатком данного метода является то, что процессы с низшим приоритетом никогда не попадут на использование пока в очереди есть хотя бы один процесс с большим приоритетом.
Процесс выполняется до те пор пока не будет завершен. Нельзя управлять временем каждого процесса.
Выполнение |
Готовность |
Ожидание |
У любого процесса ОС всегда существует три состояния:
1. Выполнение – в этом состоянии процесс монопольно занимает все ресурсы процесса, т.е. находится на обработке. Из этого состояния процесс может перейти в состояние ожидания.
2. Ожидание – в этом случае если процесс не может выполняться по каким-либо независящим от него причинам. (Пр: процесс ожидает данных от какого-либо другого процесс или устройства; процесс отправил данные в какой-либо другой процесс или на устройство и эти данные еще не обработаны).
3. Готовность – в это. состоянии процесс переводится если процесс может выполняться, но вытеснен из ядра процессом с большим приоритетом или закончился отведенный процессу квант. В режиме ожидания процесс получил данные необходимые для его продолжения/ выполнения.
В состоянии готовность находится очередь (та самая на квантах или приоритетах) готовых к выполнению процессов.
Контекст и дескриптор
Контекстом называется информация о тех ресурсах, которые занимал процесс во время выполнения, а так же состояния этих ресурсов.
Дескриптор – описания процесса, т.е. фактически его паспорт, в котором хранится информация об имени процесса, его приоритете, текущем размещении контекста, по какой причине снят с выполнения зависимости.