Операции над процессами
Подсистема Управление процессом выполняет операции над процессами:
1. Создание:
- создание описателя процесса;
- включение его в очередь;
- выделение процессу начальных ресурсов.
2. Уничтожение (удаление его из системы. Ресурсы возвращаются системе, имя процесса удаляется из списка, блок управления процессом освобождается);
3. Запуск;
4. Блокировка.
5. Приостановка.
6. Возобновление,
7. Изменение приоритета процесса (работа с очередями).
Создать процесс — это прежде всего означает создать описатель процесса, в качестве которого выступает одна или несколько информационных структур, содержащих все сведения о процессе,, необходимые операционной системе для управления им. В число таких сведений могут входить, например, идентификатор процесса, данные о расположении в памяти исполняемого модуля, степень привилегированности процесса (приоритет и права доступа) и т. п. Примерами описателей процесса являются блок управления задачей (ТСВ — Task Control Block) в OS/360, управляющий блок процесса (РСВ — Process Control Block) в OS/2, дескриптор процесса в UNIX, объект-процесс (object-process) в Windows NT.
Создание описателя процесса знаменует собой появление в системе еще одного претендента на вычислительные ресурсы. Начиная с этого момента при распределении ресурсов ОС должна принимать во внимание потребности нового процесса.
Создание процесса включает загрузку кодов и данных исполняемой программы данного процесса с диска в оперативную память.
При управлении процессами операционная система использует два основных типа информационных структур: дескриптор процесса и контекст процесса. Дескриптор процесса содержит такую информацию о процессе, которая необходима ядру в течение всего жизненного цикла процесса независимо от того, находится он в активном или пассивном состоянии, находится образ процесса в оперативной памяти или выгружен на диск. (Образом процесса называется совокупность его кодов и данных.)
Дескрипторы отдельных процессов объединены в список, образующий таблицу процессов. Память для таблицы процессов отводится динамически в области ядра. На основании информации, содержащейся в таблице процессов, операционная система осуществляет планирование и синхронизацию процессов.
Дескриптор содержит следующую информацию:
- состояние процесса;
- расположение образа процесса в оперативной памяти и на диске (образом процесса называется совокупность его кодов и данных);
- значение отдельных составляющих приоритета, а также о его итоговом значении — глобальном приоритете;
- идентификатор пользователя, создавшего процесс;
- информация о родственных процессах;
- информация о событиях, осуществления которых ожидает данный процесс;
- уникальный идентификатор процесса;
- область сохранения регистров;
- указатели выданных процессу ресурсов.
Контекст процесса содержит менее оперативную, но более объемную часть информации о процессе, необходимую для возобновления выполнения процесса с прерванного места:
- содержимое регистров процессора и программного счетчика;
- коды ошибок выполняемых процессором системных вызовов;
- информацию обо всех открытых данным процессом файлах и незавершенных операциях ввода-вывода;
- режим работы процессора.