Системное программирование в UNIX средствами Free Pascal


. Группы процессов и идентификаторы группы процессов


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

 

 

 

 

 

 

 

 

 

 

who

 

 

awk '{print $1}'

 

 

sort -u

 

 

 

 

 

 

 

 

 

 

Рис. 5.5. Группа процессов

 

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

Каждая группа процессов (process group) обозначается идентификатором группы процессов (process group-id), имеющим тип pid_t. Процесс, идентификатор которого совпадает с идентификатором группы процессов, считается лидером (leader) группы процессов, и при его завершении выполняются особые действия. Первоначально процесс наследует идентификатор группы во время вызова

fork или ехес.

Процесс может получить свой идентификатор группы при помощи системного вызова getpgrp:




- Начало -  - Назад -  - Вперед -