- •Лекция 5. Процессы и потоки. Прерывания. Процесс. Состояния процесса. Операции над процессами. Процесс
- •Состояния процесса
- •Блок управление процессом
- •Реализация мультизадачности
- •Операции над процессами
- •Создание процесса.
- •Уничтожение процесса.
- •Приостановка процесса.
- •Процессы и потоки windows
- •Ресурсы
- •Создание нового процесса
- •Контекст процесса
- •Состояние процесса
- •Идентификаторы пользователя
- •Приоритет процесса
- •Состояние процесса (unix)
Лекция 5. Процессы и потоки. Прерывания. Процесс. Состояния процесса. Операции над процессами. Процесс
Понятие процесс (process) введено разработчиками ОС с 60-х годов, как программа во время выполнения. Заметим, что программа - это всего лишь файл в формате загрузки, сохраняемый на диске, а процесс расположен в памяти на этапе выполнения.
Состояния процесса
Для процесса характерен ряд дискретных состояний, причем смену этих состояний могут вызывать различные события. Первоначально ограничимся рассмотрением трех основных состояний процесса.
Процесс находится в состоянии выполнения, если в данный момент ему выделен центральный процессор (ЦП).
Процесс находится в состоянии готовности, если он мог бы сразу использовать центральный процессор, предоставленный в его распоряжение.
Процесс находится в состоянии блокировки, если он ожидает некоторого события, чтобы получить возможность продолжать выполнение.
Заметим, что в однопроцессорной машине в состоянии выполнения в каждый конкретный момент времени может находится только один процесс. В состояниях же готовности и блокировки могут находиться несколько процессов, т.е. есть возможность создать список готовых и список заблокированных процессов.
Список готовых процессов упорядочен по приоритету, первым в распоряжение получает ЦП первый процесс из списка. При создании списка готовых процессов, каждый новый процесс помещается в конец списка, а по мере завершения выполнения предыдущих процессов продвигается в головную часть списка. Список же заблокированных процессов не упорядочен, т.к. разблокировка процессов осуществляется в том порядке, в котором происходят ожидаемые ими события.
Рис.1 Смена состояний процесса X
Запуск, или выбор процесса для выполнения - это предоставление ЦП первому процессу из списка готовых процессов. Запуск осуществляется с помощью программы - диспетчер.
Блок управление процессом
Блок управления процессом (РСВ - process control block) - это объект, который определяет процесс для операционной системы и является структурой данных, сосредотачивающей всю ключевую информацию о процессе:
текущее состояние процесса;
уникальный идентификатор процесса;
приоритет процесса;
указатели памяти процесса;
указатели выделенных процессу ресурсов;
область сохранения регистров (когда ОС переключает ЦП с процесса на процесс, она использует области сохранения регистров, предусмотренные в РСВ, чтобы запомнить информацию, необходимую для повторного запуска каждого процесса, когда он получит в очередной раз в свое распоряжение ЦП).
По сути порождение любого процесса - это создание некоторой виртуальной машины. Она имеет свое собственное адресное пространство, куда помещается процедурный сегмент и сегмент данных.
Дескриптор и контекст процесса.
Системные данные, используемые для идентификации процесса, которые существуют в течение всего времени его жизни, образуют дескриптор (описатель) процесса. Множество дескрипторов образуют таблицу процессов.
Дескриптор процесса содержит следующие параметры процесса:
расположение (адрес в памяти);
размер выгружаемой части образа процесса;
идентификатор процесса и пользователя.
Другая важная информация о процессе хранится в таблице пользователя (называемой также - контекст процесса), здесь записаны:
идентификационные номера пользователей, для определения привилегий доступа к файлам;
ссылки на системную таблицу файлов для всех открытых процессом файлов;
указатель на индексный дескриптор текущего каталога в таблице индексных дескрипторов;
список реакций на различные сигналы.
Поток – единица активности в процессе, абстракция, несущая ответственность за исполнение кода и поддержания состояния выполнения процесса.
Демон – это процесс, выполняющийся в фоновом режиме, не подключенный ни к одному из управляющих терминалов.
