Процесс Control Block и контекст процесса.
Набор операций.
Операции над процессами и связанные с ними понятия
Процесс из состояния в состояние переводит ОС. Переход из состояния в состояние удобно объединить в пары:
1. Рождение процесса – завершение процесса;
2. Приостановка процесса (перевод из состояния исполнения в состояние готовности) – запуск процесса (перевод из состояния готовности в состояние исполнения);
3. Блокирование процесса (перевод из состояния исполнения в состояние ожидания) – разблокирование процесса (перевод из состояния ожидания в состояние готовности)
Каждый процесс представлен в ОС некой структурой данных. В этой структуре хранится информация, характеризующая процесс:
· Состояние, в котором находится процесс;
· Программный счетчик процесса (адрес команды, которая д/б выполнена следующей);
· Содержимое регистров процесса;
· Данные, необходимые для планирования использования процессора и управления памятью (приоритет процессов, размер и расположение адресного пространства);
|
|
· Учетные данные (идентификационные номера; имя пользователя, котороый инициировал работу; общее время использования процессора текущим процессом)
· Информация о переферийных устройствах, связанные с процессом;
· Таблица открытых файлов.
Для любого процесса, находящегося в ВС, вся информация хранится в PCB и доступна ОС. Любая операция, которая производится над процессом, отражается в PCB. Информацию, хранящуюся в PCB удобно разделять на две части:
· Содержимое регистров процессора (содержание счетчика команд) – регистровый контекст;
· Системный контекст;
· Иногда: пользовательский контекст – совокупность данных, находящихся в адресном пространстве.
Совокупность всех видов контекста называют контекст процессора.
Процесс появляется в системе через его рождение. Активное участие в рождении процесса принимает ОС. В самых простых ОС все процессы рождаются в момент запуска ОС. Более сложные ОС создают процесс во время работы ВС, т.е. создают динамический процесс. Инициатором рождения процесса может быть:
1. Процесс пользователя, который совершил специальный/системный вызов
2. Сама ОС;
Процесс, который породил другой процесс, называется родительским процессом (parent process). В результате получается генеалогическое дерево процессов. Для своей работы порожденный процесс требует выделения ресурсов: памяти, файлов, переферийных устройств. Ресурсы выделяются по разному. В первом случае часть ресурсов родителя передается потомку, во втором случае выделяются ресурсы из запасов ОС. После наделения порожденного процесса ресурсами в его адресное пространство записывается программный код, значение данных и устанавливается программный счетчик. В итоге:
1. Порожденный процесс становится дубликатом процесса-родителя
2. Процесс-ребенок загружается из файла
Когда процесс завершает работу ОС переводит его в состояние завершения => освобождает ресурсы.