5. Управление процессами Процесс Процесс - абстракция, описывающая выполняющуюся программу. Подсистема управления процессами Подсистема управления процессами.

Презентация:



Advertisements
Похожие презентации
Классификация ОС. Операционные системы могут различаться особенностями реализации внутренних алгоритмов управления основными ресурсами компьютера (процессорами,
Advertisements

Выполнили: Мартышкин А. И. Кутузов В. В., Трояшкин П. В., Руководитель проекта – Мартышкин А. И., аспирант, ассистент кафедры ВМиС ПГТА.
Операционные системы Процессы и потоки Скрипов Сергей Александрович 2009.
Операционные системы Процессы и потоки Скрипов Сергей Александрович 2009.
Учебный курс Основы операционных систем Лекция 3 кандидат физико-математических наук, доцент Карпов Владимир Ефимович.
Лекция 4. Режимы работы микропроцессора. Взаимодействие микропроцессора с остальными устройствами Взаимодействие МП с остальными устройствами МПС происходит.
Лекция 3. Исключения и прерывания в встроенных системах.
6. Средства синхронизации и взаимодействия процессов 6.1. Проблема синхронизации Процессам Процессам часто нужно взаимодействовать друг с другом, например,
Учебный курс Операционные среды, системы и оболочки Лекция 6 Лекции читает доктор технических наук, профессор Назаров Станислав Викторович.
Планирование и диспетчеризация процессов и задач Операционные системы и среды ВМ-1 3 курс.
Операционная система. Базовые понятия Операционная система – это комплекс программ, обеспечивающий контроль за существованием, распределением и использованием.
Прерывания Определение прерывания Прерывания представляют собой механизм, позволяющий координировать параллельное функционирование отдельных устройств.
Лекция 6. Способы адресации в микропроцессорных системах.
Планирование процессов БОП БВП Обработка ЦП Завершение 1 4 Ожидание начала обработки 0 Ожидания операции в/в 2 3 Очередь на выполнение 5 6 Диск свопинг.
Основные виды ресурсов и возможности их разделения.
Лекция 6 Понятие операционных систем Учебные вопросы: 1. Характеристики ОС 2. Свободные и проприетарные ОС.
Операционная система MS Windows* Развитие ОС: пакетная обработка, интерактивные системы, ОС реального времени, системы с разделением времени. Истинная.
Операционные системы, среды и оболочки Понятие операционной системы. Основные функции ОС.
Операционные системы Введение в операционные системы Бленда Николай Андреевич 2009.
Архитектура операционных систем. Архитектура ОС Состав модулей (компонент) ОС Структура связей между отдельными модулями ОС Принципы взаимодействия модулей.
Транксрипт:

5. Управление процессами Процесс Процесс - абстракция, описывающая выполняющуюся программу. Подсистема управления процессами Подсистема управления процессами планирует выполнение процессов, то есть: распределяет процессорное время распределяет процессорное время между несколькими одновременно существующими в системе процессами, занимается созданием занимается созданием и уничтожением процессов, обеспечивает процессы обеспечивает процессы необходимыми системными ресурсами, поддерживает взаимодействие поддерживает взаимодействие между процессами.

5.1. Состояние процессов многозадачной (много процессной) В многозадачной (много процессной) системе процесс может находиться в одном из трех основных состояний: ВЫПОЛНЕНИЕ ВЫПОЛНЕНИЕ - процесс обладает всеми необходимыми ресурсами и непосредственно выполняется процессором; ОЖИДАНИЕ ОЖИДАНИЕ - процесс заблокирован, он не может выполняться по своим внутренним причинам, он ждет осуществления некоторого события, например, завершения операции ввода- вывода, получения сообщения от другого процесса, освобождения какого-либо необходимого ему ресурса; ГОТОВНОСТЬ ГОТОВНОСТЬ - процесс заблокирован в связи с внешними по отношению к нему обстоятельствами: процесс имеет все требуемые для него ресурсы, он готов выполняться, однако процессор занят выполнением другого процесса.

Рис.1. Граф состояний процесса в многозадачной среде

ВЫПОЛНЕНИЕ ОЖИДАНИЕГОТОВНОСТЬ В состоянии ВЫПОЛНЕНИЕ в однопроцессорной системе может находиться только один процесс, а в каждом из состояний ОЖИДАНИЕ и ГОТОВНОСТЬ - несколько процессов, эти процессы образуют очереди соответственно ожидающих и готовых процессов. Жизненный цикл процесса ГОТОВНОСТЬ Жизненный цикл процесса начинается с состояния ГОТОВНОСТЬ, когда процесс готов к выполнению и ждет своей очереди. активизацииВЫПОЛНЕНИЕ ОЖИДАНИЯ "вытеснен" При активизации процесс переходит в состояние ВЫПОЛНЕНИЕ и находится в нем до тех пор, пока либо он сам освободит процессор, перейдя в состояние ОЖИДАНИЯ какого-нибудь события, либо будет насильно "вытеснен" из процессора. ГОТОВНОСТЬ ОЖИДАНИЕ В последнем случае процесс возвращается в состояние ГОТОВНОСТЬ. В это же состояние процесс переходит из состояния ОЖИДАНИЕ, после того, как ожидаемое событие произойдет.

5.2. Алгоритмы планирования процессов Планирование процессов включает в себя решение следующих задач: определение момента времени определение момента времени для смены выполняемого процесса; выбор процесса на выполнение выбор процесса на выполнение из очереди готовых процессов; переключение контекстов переключение контекстов "старого" и "нового" процессов.

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

В соответствии с алгоритмами квантовании В соответствии с алгоритмами, основанными на квантовании, смена активного процесса происходит, если: процесс завершился процесс завершился и покинул систему, произошла ошибка произошла ошибка, процесс перешел процесс перешел в состояние ОЖИДАНИЕ, исчерпан квант исчерпан квант процессорного времени, отведенный данному процессу.

Процесс ГОТОВНОСТЬ квант процессорного времени новый процесс Процесс, который исчерпал свой квант, переводится в состояние ГОТОВНОСТЬ и ожидает, когда ему будет предоставлен новый квант процессорного времени, а на выполнение в соответствии с определенным правилом выбирается новый процесс из очереди готовых. Кванты Кванты, выделяемые процессам, могут быть одинаковыми для всех процессов или различными. Кванты Кванты, выделяемые одному процессу, могут быть фиксированной величины или изменяться в разные периоды жизни процесса.

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

"приоритет" Другая группа алгоритмов использует понятие "приоритет" процесса. Приоритет степень привилегированности процесса чем выше приоритет, тем выше привилегии. Приоритет - это число, характеризующее степень привилегированности процесса при использовании ресурсов вычислительной машины, в частности, процессорного времени: чем выше приоритет, тем выше привилегии. Приоритет Приоритет может выражаться целыми или дробными, положительным или отрицательным значением. привилегии процесса Чем выше привилегии процесса, тем меньше времени он будет проводить в очередях.

Приоритет может: назначаться директивно администратором назначаться директивно администратором системы в зависимости от важности работы или внесенной платы, либо вычисляться самой ОС либо вычисляться самой ОС по определенным правилам, может оставаться фиксированным может оставаться фиксированным на протяжении всей жизни процесса либо изменяться во времени либо изменяться во времени в соответствии с некоторым законом. динамическими В последнем случае приоритеты называются динамическими.

Существует две разновидности приоритетных алгоритмов: относительные приоритеты алгоритмы, использующие относительные приоритеты, абсолютные приоритеты алгоритмы, использующие абсолютные приоритеты. выбирается процесс, имеющий наивысший приоритет. В обоих случаях выбор процесса на выполнение из очереди готовых осуществляется одинаково: выбирается процесс, имеющий наивысший приоритет. В системах с относительными приоритетамиВ системах с относительными приоритетами активный процесс выполняется до тех пор, пока он сам не покинет процессор, перейдя в состояние ОЖИДАНИЕ. В системах с абсолютными приоритетамиВ системах с абсолютными приоритетами выполнение активного процесса прерывается еще при одном условии: если в очереди готовых процессов появился процесс, приоритет которого выше приоритета активного процесса. В этом случае прерванный процесс переходит в состояние готовности.

Рис.1. Граф состояний процесса в многозадачной среде (а) с относительными приоритетами; (б)с абсолютными приоритетами а)б)

5.3. Вытесняющие и вытесняющие алгоритмы планирования Non-preemptive multitasking невытесняющая многозадачностьNon-preemptive multitasking - невытесняющая многозадачность - это способ планирования процессов, при котором активный процесс выполняется до тех пор, пока он сам, по собственной инициативе, не отдаст управление планировщику ОС для того, чтобы тот выбрал из очереди другой, готовый к выполнению процесс. Preemptive multitasking вытесняющая многозадачностьPreemptive multitasking - вытесняющая многозадачность - это такой способ, при котором решение о переключении процессора с выполнения одного процесса на выполнение другого процесса принимается планировщиком ОС, а не самой активной задачей.

preemptivenon- preemptiveстепень централизации механизма планирования задач. Основным различием между preemptive и non- preemptive вариантами многозадачности является степень централизации механизма планирования задач. При вытесняющей многозадачности При вытесняющей многозадачности механизм планирования задач целиком сосредоточен в ОС, и программист пишет свое приложение, не заботясь о том, что оно будет выполняться параллельно с другими задачами. При этом ОС выполняет следующие функции: определяет момент снятия с выполнения активной задачи, запоминает ее контекст, выбирает из очереди готовых задач следующую и запускает ее на выполнение, загружая ее контекст.

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

Существенным преимуществом non-preemptive систем Существенным преимуществом non-preemptive систем является более высокая скорость переключения с задачи на задачу. не вытесняющей многозадачности является файл- сервер NetWare Примером эффективного использования не вытесняющей многозадачности является файл- сервер NetWare, в котором, в значительной степени благодаря этому, достигнута высокая скорость выполнения файловых операций. не вытесняющей многозадачности в операционной среде Windows 3. х Менее удачным оказалось использование не вытесняющей многозадачности в операционной среде Windows 3.х.

вытесняющая многозадачность Однако почти во всех современных операционных системах, ориентированных на высокопроизводительное выполнение приложений (UNIX, Windows NT, OS/2, VAX/VMS), реализована вытесняющая многозадачность. В последнее время дошла очередь и до ОС класса настольных систем, например, OS/2 Warp и Windows 95. истинной многозадачностью Возможно в связи с этим вытесняющую многозадачность часто называют истинной многозадачностью.

5.4. Функции планировщика-диспетчера планировщик-диспетчер Во многих ОС эти функции могут быть представлены неразрывной последовательностью, поэтому введем термин планировщик-диспетчер. Планировщик очередь-на-выполнение Планировщик - это программа, ответственная за постановку процессов в очередь-на-выполнение и управляющая этой очередью. Диспетчер очереди-на-выполнение CPUДиспетчер - это программа, которая выбирает процессы из очереди-на-выполнение, переводит их в активное состояние и передает им контроль над CPU. Основная функция Основная функция - возможность управлять действиями большого числа процессов.

3.4.1 Приостановка процесса В ходе своего выполнения системный процесс может установить, что требуемый ресурс занят или в данный момент процессу не требуется производить каких-либо действий. "сознательно Тогда процесс может "сознательно приостановить свое выполнение до момента активизации его другим процессом. При этой процедуре адрес блока управления процессом (БУП) записывается в стек, затем для активизации другого процесса вызывается системный планировщик. "приостановленный" очередь-на-выполнениене активизируется. Результатом этого действия является то, что "приостановленный" процесс не помещается в очередь-на-выполнение, т.е. не активизируется.

Рис. 3. Схемы очередей блоков управления процессами до а. и после б. "приостановки".

Отсрочка процесса CPU CPU При выполнении длинных кодовых инструкций процесс может надолго занять CPU. Это означает, что за исключением прерываний никакой другой процесс не имеет доступ к CPU. CPU "отсрочить" Для облегчения доступа к CPU процесс может осуществить повторное планирование, тем самым "отсрочить" свое выполнение. "Активизировть", При отсрочке процесса адрес блока управления помещается в стек процесса. Затем процесс выдает запрос на планирование, вызывая процедуру "Активизировть", с указанием адреса собственного БУП (блока управления процессом). Планировщик- диспетчер Планировщик- диспетчер выбирает на выполнение следующий процесс из очереди.

Активизация процесса Процесс "Активизировать"адреса Процесс, вызывающий отсроченный процесс, активизирует его процедурой "Активизировать" с указание адреса блока управления процессом. Алгоритм "Активизировать процесс" "Активизировать"БУПочередь-на- выполнение Процедура "Активизировать" помещает БУП в очередь-на- выполнение. БУП Проверяет, совпадают ли адрес БУП с адресом текущего выполняющегося процесса. очередь-на- выполнение Если не совпадают, то процесс помещается в очередь-на- выполнение. БУПочереди-на- выполнение Если совпадает, то БУП уже находится в конце очереди-на- выполнение.

Ведущие и разделяемые процессами планировщики- диспетчеры S S - планировщик; Pri Pri - процесс. Планировщик-диспетчер i- гоS Планировщик-диспетчер может разделяться процессами, т.е. планировщик вызывается путем обращений i- го процесса к данной системной программе S, что является косвенным результатом операции ядра ОС. Ядро и планировщик тогда потенциально содержатся в адресном пространстве всех процессов и выполняются в составе любого процесса.

планировщика Этот тип планировщика считается отдельным процессом, он может непрерывно проверять заявки системы на планирование или может активизироваться соответствующими сигналами.

Рис. 6. Схема взаимодействия планировщика-диспетчера со структурами системных данных и примитивов ядра

Предполагается наличие следующих структур: диспетчер диспетчер - циклически проходит через очередь задач (процессов); программа инициализации программа инициализации - инициирует переменные и массивы; программа обработки входных данных программа обработки входных данных - обрабатывает приходящие запросы на активацию процессов и на обновление файлов-дублей; программа программа управления таймером; программа обработки условных активаций программа обработки условных активаций - контролирует совпадающие пары запросов на активацию; предпланировщик реконфигурации предпланировщик реконфигурации - генерирует модификацию после получения всех запрошенных отчетов о состоянии управления ресурсами; планировщик процессов планировщик процессов - выбирает из очереди с учетом приоритетов процесс и предоставляет процессор; программа программа обработки завершения процесса; программа управления программа управления ресурсами (перегрузка или недогрузка ресурсов).

Временная диаграмма взаимодействия "Диспетчера" и задач