ГЛАВА 7. УПРАВЛЕНИЕ ПРОЦЕССАМИ 
 
В предыдущей главе был рассмотрен
контекст процесса и описаны
алгоритмы для работы с ним; в данной
главе речь пойдет об использовании
и реализации системных функций,
управляющих контекстом процесса.
Системная функция fork создает новый
процесс, функция exit завершает
выполнение процесса, а wait дает
возможность родительскому
процессу синхронизировать свое
продолжение с завершением
порожденного процесса. Об
асинхронных событиях процессы
информируются при помощи сигналов.
Поскольку ядро синхронизирует
выполнение функций exit и wait при
помощи сигналов, описание
механизма сигналов предваряет
собой рассмотрение функций exit и wait.
Системная функция exec дает процессу
возможность запускать "новую"
программу, накладывая ее адресное
пространство на исполняемый образ
файла. Системная функция brk
позволяет динамически выделять
дополнительную память; теми же
самыми средствами ядро динамически
наращивает стек задачи, выделяя в
случае необходимости
дополнительное пространство. В
заключительной части главы дается
краткое описание основных групп
операций командного процессора shell
и начального процесса init.  
На Рисунке 7.1 показана
взаимосвязь между системными
функциями, рассматриваемыми в
данной главе, с одной стороны, и
алгоритмами, описанными в
предыдущей главе, с другой. Почти во
всех функциях используются
алгоритмы sleep и wakeup, отсутствующие
на рисунке. Функция exec, кроме того,
взаимодействует с алгоритмами
работы с файловой системой, речь о
которых шла в главах 4
и 5.  
  
    
        
| Системные функции, имеющие  | Системные функции,  |  Функции   |
| ющие дело с управлением па- | связанные с синхро- | смешанного |
|            мятью            |      низацией       |    типа    |
+-------+-------+-------+-----+--+----+------+----+-+-----+------+
| fork  | exec  |  brk  |  exit  |wait|signal|kill|setrgrр|setuid|
+-------+-------+-------+--------+----+------+----+-------+------+
|dupreg |detach-|growreg| detach-|                               |
|attach-|  reg  |       |  reg   |                               |
| reg   |alloc- |       |        |                               |
|       |  reg  |       |        |                               |
|       |attach-|       |        |                               |
|       |  reg  |       |        |                               |
|       |growreg|       |        |                               |
|       |loadreg|       |        |                               |
|       |mapreg |       |        |                               |
 
         | 
     
 
 
Рисунок 7.1.
Системные функции управления
процессом и их связь с другими
алгоритмами  
Предыдущая
глава || Оглавление || Следующая
глава 
  
 
 |