Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SRS_IPOVS_OS.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

3.3. Описание процессов

Для управления процессами ОС создает и поддерживает таблицы процессов, которые содержат указатель на образ процесса.

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

Атрибуты процесса включают в себя следующее:

  • Идентификация процесса (идентификатор данного процесса, идентификатор родительского процесса, идентификатор пользователя).

  • Информация о состоянии процесса (содержимое регистров общего назначения, управляющих регистров и регистров состояния, указатели на стек).

  • Управляющая информация процесса (состояние процесса – выполняющийся, готовый к выполнению, блокированный т.д.., приоритет, информация, связанная с планированием; информация о событиях; информация о связи с другими процессами (в очередях, родственные связи); обмен информацией между процессами (различные флаги, сигналы, сообщения); привилегии процесса; информация о владении ресурсами и их использовании.

3.4. Управление процессами Создание процессов

При создании процесса ОС должна выполнить следующие действия:

  1. Присвоить новому процессу уникальный идентификатор. В таблицу процессов вносится новая запись.

  2. Выделить пространство для процесса – для образа процесса и для управляющего блока процесса.

  3. Инициализировать управляющий блок процесса.

  4. Установить необходимые связи. Например, включить новый процесс в очередь готовых процессов.

  5. Создать или расширить другие структуры данных

Переключение процессов

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

Все три причины реализуются через механизм прерываний.

Действия ОС при переключении процессов:

  1. Сохранение контекста процессора в управляющем блоке процесса (содержимое регистров общего назначения и управляющих регистров)

  2. Обновление управляющего блока выполняющегося процесса: изменить состояние процесса, сохранить информацию по учету использования ресурсов.

  3. Помещение управляющего блока данного процесса в соответствующую очередь (например, готовых или заблокированных).

  4. Выбор следующего процесса для выполнения.

  5. Обновление управляющего блока выбранного процесса: установить состояние выполнения.

  6. Обновление структур данных по управлению памятью.

  7. Восстановление контекста процессора для выбранного процесса.

3.5. Выполнение кода ос по отношению к процессам

Поскольку ОС тоже является программой, то возникает вопрос: является ли ОС процессом? Если да, то как осуществляется управление этим процессом?

Существуют следующие подходы к разработке ОС.

Ядро вне процессов (автономное ядро)

Используется во многих ранних ОС. Концепция процесса применяется только к пользовательским программам. Код ОС выполняется как некий отдельный объект, работающий в привилегированном режиме (рис. 3.3, а).

Ядро в составе пользовательских процессов

Используется в небольших ЭВМ (ПК, рабочих станциях). Почти все программы ОС выполняются в контексте пользовательского процесса (рис. 3.3, б). Типичный образ процесса также показан на рис. 3.3, б. При вызове системных процедур, работающих в режиме ядра, и возврата из них используется отдельный стек ядра. Код и данные ОС находятся в совместно используемом адресном пространстве и доступны для использования всеми пользовательскими процессами. Таким образом, при прерывании, включая системный вызов, переключения процессов не происходит, переключается только режим работы процессора (пользовательский <-> ядра) в рамках одного и того же процесса. В ходе процесса могут выполняться и пользовательские программы, и программы ОС. Программы ОС, выполняемые в разных пользовательских процессах, являются идентичными.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]