Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС_лекции.docx
Скачиваний:
23
Добавлен:
22.02.2015
Размер:
109.07 Кб
Скачать

2.3.2 Процесс Control Block и контекст процесса.

Каждый процесс представлен в ОС некой структурой данных. В этой структуре хранится информация, характеризующая процесс:

  • Состояние, в котором находится процесс;

  • Программный счетчик процесса (адрес команды, которая д/б выполнена следующей);

  • Содержимое регистров процесса;

  • Данные, необходимые для планирования использования процессора и управления памятью (приоритет процессов, размер и расположение адресного пространства);

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

  • Информация о переферийных устройствах, связанные с процессом;

  • Таблица открытых файлов.

Для любого процесса, находящегося в ВС, вся информация хранится в PCB и доступна ОС. Любая операция, которая производится над процессом, отражается в PCB. Информацию, хранящуюся в PCB удобно разделять на две части:

  • Содержимое регистров процессора (содержание счетчика команд) – регистровый контекст;

  • Системный контекст;

  • Иногда: пользовательский контекст– совокупность данных, находящихся в адресном пространстве.

Совокупность всех видов контекста называют контекст процессора.

2.3.3 Одноразовые операции.

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

  1. Процесс пользователя, который совершил специальный/системный вызов

  2. Сама ОС;

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

  1. Порожденный процесс становится дубликатом процесса-родителя

  2. Процесс-ребенок загружается из файла

Когда процесс завершает работу ОС переводит его в состояние завершения => освобождает ресурсы.

2.3.4 Многоразовые операции над процессами.

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

Запуск процесса.

На запуск выбирается процесс, стоящий в очереди готовых процессов. После того как процесс будет запущен его состояние будет изменено и он перейдет из состояния готовности в состояние исполнения => изменение PCB.

Приостановка процесса.

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

Блокировка/разблокировка процесса.

Процесс блокируется, если он не может продолжить работу по каким-либо причинам, например, он должен ожидать появления некоторого события.

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