Слайд 1Учебный курс
Операционные среды, системы и оболочки
Занятие 5
доктор технических наук
Агеев
Юрий Дмитриевич
Слайд 2Тема 2. Управление процессами в вычислительных машинах
1. Понятия вычислительного процесса
и ресурса
2. Планирование процессов
Слайд 31. Понятия вычислительного процесса и ресурса
Под процессом обычно понимается последовательность
операций при выполнении программы или ее части в совокупности с
используемыми данными.
Программа – это план действий, а процесс – это само действие.
Понятие процесса включает программный код, данные, содержимое стека, содержимое адресного и других регистров процессора.
Слайд 41. Понятия вычислительного процесса и ресурса
Классификация процессов
1. По временным характеристикам
различают
интерактивные процессы,
пакетные процессы
процессы реального времени.
2. По генеалогическому
признаку различают
порождающие процессы
порожденные процессы.
3. По результативности различают
эквивалентные,
тождественные
равные процессы.
4. По времени развития процессы делятся на
последовательные,
параллельные,
комбинированные
Слайд 51. Понятия вычислительного процесса и ресурса
5. По месту развития процессы
делятся на
внутренние
внешние
6. По принадлежности к операционной системе процессы бывают
системные
пользовательские.
7.
По связности различают процессы:
а) взаимосвязанные – имеющие какую-то связь (пространственно-временную, управляющую, информационную)
б) изолированные – слабо связанные;
в) информационно-независимые – использующие совместные ресурсы, но имеющие собственные информационные базы;
г) взаимодействующие – имеющие информационные связи и разделяющие общие структуры данных;
д) взаимосвязанные по ресурсам;
е) конкурирующие.
Слайд 61. Понятия вычислительного процесса и ресурса
Порядок взаимосвязи процессов определяется правилами
синхронизации. Процессы могут находиться в отношении:
а) предшествования
– когда один процесс всегда находится в активном состоянии раньше, чем другой;
б) приоритетности – когда процесс может быть переведен в активное состояние только в том случае, если в состоянии готовности нет процессов с более высоким приоритетом, или если свободен процессор, или если на процессоре реализуется процесс с меньшим приоритетом;
в) взаимного исключения – когда в процессе используется общий критический ресурс, и процессы не могут развиваться одновременно (если один из них использует критический ресурс, то другой находится в состоянии ожидания).
Слайд 71. Понятия вычислительного процесса и ресурса
Ресурс – это любой потребляемый
(расходуемый) объект.
По запасам ресурсы подразделяются на исчерпаемые и неисчерпаемые.
Потребители ресурсов – процессы.
Ресурс – это средство вычислительной машины или вычислительной системы, которое может быть выделено процессу на определенный интервал времени.
Слайд 81. Понятия вычислительного процесса и ресурса
Ресурсы классифицируются по следующим свойствам:
а) по признаку реальности – на физические
и виртуальные (последние только в отдельных свойствах схожи с физическими ресурсами);
б) по возможности расширения свойств – на эластичные и жесткие (не допускающие расширяемости);
в) по степени активности – на пассивные и активные (способные выполнять действия по отношению к другим ресурсам);
г) по времени существования – на постоянные (доступные на протяжении всего времени существования процесса, а также до и после его работы) и временные;
д) по степени важности – на основные и второстепенные (допускающие альтернативное развитие процесса);
Слайд 91. Понятия вычислительного процесса и ресурса
е) по функциональной избыточности при
распределении – на дорогие (но предоставляемые быстро) и дешевые (но
предоставляемые с ожиданием);
ж) по структуре – на составные и простые (которые не содержат составных элементов и могут находиться только в одном из двух состояний: «доступен» или «занят»);
з) по характеру использования – на потребляемые и воспроизводимые (допускающие многократное использование и освобождение), а также – на используемые последовательно и используемые параллельно (использующиеся несколькими процессами);
и) по форме реализации – на жесткие (не допускающие копирования) и мягкие (допускающие тиражирование и в свою очередь подразделяющиеся на программные и информационные ресурсы).
Слайд 102. Планирование процессов
Подсистема управления процессами планирует выполнение процессов, то есть
распределяет процессорное время между несколькими одновременно существующими в системе процессами,
а также занимается созданием и уничтожением процессов, обеспечивает процессы необходимыми системными ресурсами, поддерживает взаимодействие между процессами.
Состояния процесса:
• новый (процесс только что создан);
• готовый (процесс ожидает освобождения CPU);
• выполняемый (команды программы выполняются в CPU);
• ожидающий (процесс ожидает завершения некоторого события, чаще всего операции ввода-вывода);
• завершенный (процесс завершил свою работу).
Слайд 112. Планирование процессов
Каждый процесс представлен в операционной системе набором данных,
называемых «таблица управления процессом» (ТУП) (process control block – РСВ).
В ТУП процесс описывается набором значений и параметров, характеризующих его текущее состояние и используемых операционной системой для управления прохождением процесса через ВМ.
Распределение процессов между имеющимися ресурсами носит название «планирование процессов».
Слайд 122. Планирование процессов
Контекстом процесса называется информация включающая:
- состояние регистров и
программного счетчика,
- режим работы процессора,
- указатели на открытые
файлы,
- информацию о незавершенных операциях ввода-вывода,
- коды ошибок выполняемых процессом системных вызовов и т.д.
Для реализации планирования процессов ОС требуется дополнительная информация (дескриптор процесса):
- идентификатор процесса,
- состояние процесса,
- данные о степени привилегированности процесса,
- место нахождения кодового сегмента и др.
Слайд 132. Планирование процессов
Дескриптор процесса по сравнению с контекстом содержит более
оперативную информацию, которая должна быть легко доступна подсистеме планирования процессов.
Контекст процесса содержит менее актуальную информацию и используется операционной системой только после того, как принято решение о возобновлении прерванного процесса.
Слайд 142. Планирование процессов
Одним из методов планирования процессов, ориентированных на эффективную
загрузку ресурсов, является метод очередей ресурсов. Такой механизм называется диспетчеризацией.
При
прохождении через ВМ процесс мигрирует между различными очередями под управлением программы, которая называется «планировщик» (scheduler).
Очереди процессов представляют собой дескрипторы отдельных процессов, объединенные в списки. Каждый дескриптор содержит по крайней мере один указатель на другой дескриптор, соседствующий с ним в очереди. Такая организация очередей позволяет легко их переупорядочивать, включать и исключать процессы, переводить процессы из одного состояния в другое.
Слайд 152. Планирование процессов
Планирование процессов включает в себя решение следующих задач:
1) определение момента времени для смены
выполняемого процесса;
2) выбор процесса на выполнение из очереди готовых процессов;
3) переключение контекстов «старого» и «нового» процессов.
Первые две задачи решаются программными средствами, а последняя – в значительной степени аппаратно.
Слайд 162. Планирование процессов
Среди множества алгоритмов планирования процессов две группы наиболее
часто встречающихся алгоритмов:
алгоритмы, основанные на квантовании,
алгоритмы, основанные на
приоритетах.
В соответствии с алгоритмами, основанными на квантовании, смена активного процесса происходит в следующих случаях:
процесс завершился и покинул систему;
произошла ошибка;
процесс перешел в состояние «ожидание»;
исчерпан квант процессорного времени, отведенный данному процессу.
Слайд 172. Планирование процессов
Очередь готовых процессов может быть организована:
циклически по правилу
FCFS (First Come First Served – «первым пришел – первым
обслужен»), часто называемого правилом FIFO (First In First Out – «первым вошел – первым вышел»),
по правилу стека LCFS (Last Come First Served – «последним пришел – первым обслужен»), имеющего также наименование правила LIFO (Last In First Out – «последним вошел – первым вышел»).
Слайд 182. Планирование процессов
Приоритет – это число, характеризующее степень привилегированности процесса
при использовании ресурсов ВМ, в частности, процессорного времени: чем выше
приоритет, тем выше привилегии.
Приоритет может выражаться целым или дробным, положительным или отрицательным значением.
Приоритет может оставаться фиксированным на протяжении всей жизни процесса либо изменяться во времени в соответствии с некоторым законом. В последнем случае приоритеты называются динамическими.
Существует две разновидности приоритетных алгоритмов:
алгоритмы, использующие относительные приоритеты,
алгоритмы, использующие абсолютные приоритеты.
Слайд 192. Планирование процессов
Выбор процесса на выполнение из очереди готовых осуществляется
одинаково: выбирается процесс, имеющий наивысший приоритет. По-разному решается проблема определения
момента смены активного процесса:
в системах с относительными приоритетами активный процесс выполняется до тех пор, пока он сам не покинет процессор, перейдя в состояние «ожидание» (или же произойдет ошибка, или процесс завершится).
в системах с абсолютными приоритетами выполнение активного процесса прерывается еще при одном условии: если в очереди готовых процессов появился процесс, приоритет которого выше приоритета активного процесса (в этом случае прерванный процесс переходит в состояние готовности).
Слайд 202. Планирование процессов
Существует два основных типа процедур планирования процессов –
вытесняющие (preemptive) и невытесняющие (non-preemptive).
Невытесняющая многозадачность (non-preemptive multitasking) –
это способ планирования процессов, при котором активный процесс выполняется до тех пор, пока он сам, по собственной инициативе, не отдаст управление планировщику операционной системы для того, чтобы тот выбрал из очереди другой, готовый к выполнению процесс.
Вытесняющая многозадачность (preemptive multitasking) – это такой способ, при котором решение о переключении процессора с выполнения одного процесса на выполнение другого процесса принимается планировщиком операционной системы, а не самой активной задачей.
Слайд 212. Планирование процессов
Основным различием между вытесняющими и невытесняющими вариантами многозадачности
является степень централизации механизма планирования задач.
При вытесняющей многозадачности механизм
планирования задач целиком сосредоточен в операционной системе. При этом ОС выполняет следующие функции:
определяет момент снятия с выполнения активной задачи,
запоминает ее контекст,
выбирает из очереди готовых задач следующую
запускает ее на выполнение, загружая ее контекст.
При невытесняющей многозадачности механизм планирования распределен между ОС и прикладными программами.
Слайд 222. Планирование процессов
Одними из основных движущих сил, изменяющих состояния процессов,
являются определенные системные события, называемые «прерываниями».
Прерывания представляют собой
механизм, позволяющий координировать параллельное функционирование отдельных устройств ВМ и реагировать на особые состояния, возникающие при работе процессора.
Прерывание – это принудительная передача управления от выполняемой программы к системе (а через нее – к соответствующей программе обработки прерывания), происходящая при возникновении определенного события.
Слайд 232. Планирование процессов
Механизм обработки прерываний включает этапы:
1. Установление факта прерывания
(прием сигнала на прерывание) и идентификация прерывания.
2. Запоминание состояния прерванного
процесса.
3. Передача управления (аппаратно) подпрограмме обработки прерывания.
4. Сохранение информации о прерванной программе.
5. Обработка прерывания.
6. Восстановление информации, относящейся к прерванному процессу.
7. Возврат в прерванную программу.
Шаги 1–3 реализуются аппаратно, а шаги 4–7 – программно.
Слайд 242. Планирование процессов
Главные функции механизма прерываний:
– распознавание или классификация прерываний;
–
передача управления соответственно обработчику прерываний;
– корректное возвращение к прерванной программе.
Прерывания,
возникающие при работе ВМ, можно разделить на два основных класса: внешние (асинхронные) и внутренние (синхронные).
Внешние прерывания вызываются асинхронными событиями, которые происходят вне прерываемого процесса
Внутренние прерывания вызываются событиями, которые связаны с работой процессора и являются синхронными с его операциями.