Операционные системы/Управление процессами
Материал из eSyr's wiki.
(Новая: Рассмотрим типовые этапы обработки процесса в системе, совокупность этих этапов будем назвать '''жизн...) |
(Новая: Рассмотрим типовые этапы обработки процесса в системе, совокупность этих этапов будем назвать '''жизн...) |
Текущая версия
Рассмотрим типовые этапы обработки процесса в системе, совокупность этих этапов будем назвать жизненным циклом процесса в системе. Традиционно, жизненный цикл процесса содержит этапы:
- образование (порождение) процесса;
- обработка (выполнение) процесса;
- ожидание (по тем или иным причинам) постановки на выполнение;
- завершение процесса.
Однако жизненные циклы процессов в реальных системах могут иметь свою, системно-ориентированную совокупность этапов.
Рассмотрим модельную ОС.
Пусть имеется специальный буфер ввода процессов (БВП) – пространство, в котором размещаются и хранятся сформированные процессы от момента их образования, до момента начала выполнения. На данном этапе происходит формирование всех необходимых структур данных, соответствующих процессу. В частности, на данном этапе ОС формирует информацию о предварительно заказанных данным процессом ресурсах. Основная задача БВП – «подпитка» системы новыми процессами, готовыми к исполнению.
После начала выполнения процесса он попадает в буфер обрабатываемых процессов (БОП). В данном буфере размещаются все процессы, находящиеся в системе в мультипрограммной обработке.
Содержание |
[править] Модель пакетной однопроцессной системы
0. Поступление процесса в очередь на начало обработки ЦП (процесс попадает в БВП)
1. Начало обработки процесса на ЦП (из БВП в БОП)
2. Завершение выполнения процесса, освобождение системных ресурсов.
[править] Модель пакетной мультипроцессной системы
0. После формирования процесс поступает в очередь на начало обработки ЦП (попадает в БВП).
1. В БВП выбирается наиболее приоритетный процесс для начала обработки ЦП (попадает в БОП).
2. Процесс прекращает обработку ЦП по причине ожидания операции в/в, поступает в очередь завершения операции обмена (БОП).
3. Операция обмена завершена и процесс поступает в очередь ожидания продолжения выполнения ЦП (БОП).
4. Наиболее приоритетный процесс продолжает выполнение ЦП (БОП).
5. Завершение процесса, освобождение системных ресурсов. Корректное завершение работы процесса, разгрузка информационных буферов, освобождение ресурсов (например, реальный вывод информации на устройство печати).
[править] Модель ОС с разделением времени
0. После формирования процесс поступает в очередь на начало обработки ЦП (попадает в БВП).
1. В БВП выбирается наиболее приоритетный процесс для начала обработки ЦП (попадает в БОП).
2. Процесс прекращает обработку ЦП по причине ожидания операции в/в, поступает в очередь завершения операции обмена (БОП).
3. Операция обмена завершена и процесс поступает в очередь ожидания продолжения выполнения ЦП (БОП).
4. Наиболее приоритетный процесс продолжает выполнение ЦП (БОП).
5. Процесс прекращает обработку ЦП, но в любой момент может быть продолжен (например, истек квант времени ЦП, выделенный процессу). Поступает в очередь процессов, ожидающих продолжения выполнения центральным процессором (БОП).
6. Завершение процесса, освобождение системных ресурсов. Корректное завершение работы процесса, разгрузка информационных буферов, освобождение ресурсов (например, реальный вывод информации на устройство печати).
Возможен (но не обязателен) своппинг (см. ниже).
[править] Контекст процесса
Текущее состояние любого процесса из БОП изменяется во времени в зависимости от самого процесса и состояния ОС. С каждым из процессов из БОП система ассоциирует совокупность данных, характеризующих актуальное состояние процесса – контекст процесса. (в общем случае контекст процесса содержит информацию о текущем состоянии процесса, включая информацию о режимах работы процессора, содержимом регистровой памяти, используемой процессом, системной информации ОС, ассоциированной с данным процессом).
Процессы, находящиеся в одном из состояний ожидания в своих контекстах содержат всю информацию, необходимую для продолжения выполнения - состояние процесса в момент прерывания (копии регистров, режимы ОП, настройки аппарата виртуальной памяти и т. д.). Соответственно при смене выполняемого процесса ОС осуществляет «перенастройку» внутренних ресурсов ЦП, происходит смена контекстов выполняемых процессов.
На этапе выполнения процесса ОС обеспечивает возможность корректного взаимодействия процессов от передачи сигнальных воздействий от процесса к процессу до организации корректной работы с разделяемыми ресурсами.
Составляющие контекста процесса:
- Пользовательская составляющая — текущее состояние программы (совокупность машинных команд, размещенных в ОЗУ)
- Аппаратная составляющая (все регистры и аппаратные таблицы ЦП, используемые активным или исполняемым процессом)
- Системная составляющая
- информация идентификационного характера (PID процесса, PID «родителя»…)
- информация о содержимом регистров (РОН, индексные регистры, флаги...)
- информация, необходимая для управления процессом (состояние процесса, приоритет....)
[править] Типы процессов
В различных системах используются различные трактовки определения термина процесс. Рассмотрим уточнение понятия процесса.
Полновесные процессы – это процессы, выполняющиеся внутри защищенных участков памяти операционной системы, то есть имеющие собственные виртуальные адресные пространства для статических и динамических данных. В мультипрограммной среде управление такими процессами тесно связано с управлением и защитой памяти, поэтому переключение процессора с выполнения одного процесса на выполнение другого является достаточно дорогой операцией. В дальнейшем, используя термин процесс будем подразумевать полновесный процесс. как
Легковесные процессы (их еще называют нитями или сопрограммами) не имеют собственных защищенных областей памяти. Они работают в мультипрограммном режиме одновременно с активировавшей их задачей и используют ее виртуальное адресное пространство, в котором им при создании выделяется участок памяти под динамические данные (стек), то есть они могут обладать собственными локальными данными. Нить описывается как обычная функция, которая может использовать статические данные программы. Для одних операционных систем можно сказать, что нити являются некоторым аналогом процесса, а в других нити представляют собой части процессов. Таким образом, обобщая можно сказать – в любой операционной системе понятие «процесс» включает в себя следующее:
- исполняемый код;
- собственное адресное пространство, которое представляет собой совокупность виртуальных адресов, которые может использовать процесс;
- ресурсы системы, которые назначены процессу ОС;
- хотя бы одну выполняемую нить.
При этом подчеркнем – понятие процесса может включать в себя понятие исполняемой нити, т. е. однонитевую организацию – «один процесс – одна нить». В данном случае понятие процесса жестко связано с понятием отдельной и недоступной для других процессов виртуальной памяти. С другой стороны, в процессе может несколько нитей, т. е. процесс может представлять собой многонитевую организацию.
Нить также имеет контекст. Контекст нити – это информация, которая необходима ОС для того, чтобы продолжить выполнение прерванной нити. Контекст нити содержит текущее состояние регистров, стеков и индивидуальной области памяти, которая используется подсистемами и библиотеками. Как видно, в данном случае характеристики нити во многом аналогичны характеристикам процесса.
С точки зрения процесса, нить можно определить как независимый поток управления, выполняемый в контексте процесса.
[править] Принципы организации свопинга
Мультипрограммные ОС используют свопинг. Пример: простейшая операционная система типа UNIX: полная откачка процесса в свопинговую память.
В системе определенным образом выделяется пространство для области свопинга. Есть пространство оперативной памяти, в котором находятся процессы, обрабатываемые системой в режиме мультипрограммирования. Есть область на ВЗУ, предназначенная для откачки этих процессов по мере необходимости. Упрощенная схема планирования подкачки основывается на использовании некоторого приоритета, который называется P_TIME и также находится в контексте процесса. В этом параметре аккумулируется время пребывания процесса в состоянии мультипрограммной обработки, или в области свопинга.
При перемещении процесса из оперативной памяти в область свопинга или обратно система обнуляет значение параметра P_TIME. Для загрузки процесса в память из области свопинга выбирается процесс с максимальным значением P_TIME. Если для загрузки этого процесса нет свободного пространства оперативной памяти, то система ищет среди процессов в оперативной памяти процесс, ожидающий ввода/вывода и имеющий максимальное значение P_TIME (т.е. тот, который находился в оперативной памяти дольше всех). Если такого процесса нет, то выбирается просто процесс с максимальным значением P_TIME.