Составители:
12.4 Обработка процессов в ОС семейства UNIX
UNIX - это многопользовательская многопроцессная система, т.е. в ней
может одновременно быть запущено несколько процессов от имени разных
пользователей. Число процессов, которые можно одновременно запустить,
ограничивается размерами таблицы процессов в ядре и другими настройками
ядра.
Схемы взаимодействия между процессами соответствуют механизму
сопрограмм. Использование сопрограмм упрощает логику ядра системы и
требует одного выделенного процесса, который создается нестандартным
образом. С него начинается работа системы после запуска. В ОС UNIX этот
процесс называется "диспетчерским" ("swapper"), он не имеет
пользовательской фазы.
Все процессы в ОС UNIX, кроме диспетчерского, создаются операцией
"Порождение". В этой операции участвуют два процесса: порождающий и
порожденный. Порождающий выполняет системный вызов (fork), в
результате появляется порожденный процесс. При запуске процесс получает
уникальный идентификатор процесса (Process IDentifier, PID), по которому
он становится доступен другим процессам и планировщику.
На рисунке 12.4 представлена блок-схема жизненного цикла процесса в
ОС UNIX.
Для создания системного процесса используется системный вызов fork
(разветвление), в результате которого получаются два идентичных процесса,
называемые родительский процесс и порожденный (дочерний) процесс. Они
не имеют общей первичной памяти, но совместно используют все открытые
файлы. Для уничтожения процесса имеется вызов EXIT, который завершает
работу данного процесса и передает код возврата (завершения)
родительскому процессу. Сегменты данного процесса уничтожаются.
Остается структура пользования для родительского процесса. Когда
родительский процесс подучил информацию об уничтожении порожденного
им процесса, тогда уничтожается структура пользования и освобождается
место в таблице процессов.
В большинстве систем UNIX реализована возможность выполнять
несколько параллельных подпроцессов внутри процесса. Эти подпроцессы
называют потоками (threads).
183
12.4 Обработка процессов в ОС семейства UNIX UNIX - это многопользовательская многопроцессная система, т.е. в ней может одновременно быть запущено несколько процессов от имени разных пользователей. Число процессов, которые можно одновременно запустить, ограничивается размерами таблицы процессов в ядре и другими настройками ядра. Схемы взаимодействия между процессами соответствуют механизму сопрограмм. Использование сопрограмм упрощает логику ядра системы и требует одного выделенного процесса, который создается нестандартным образом. С него начинается работа системы после запуска. В ОС UNIX этот процесс называется "диспетчерским" ("swapper"), он не имеет пользовательской фазы. Все процессы в ОС UNIX, кроме диспетчерского, создаются операцией "Порождение". В этой операции участвуют два процесса: порождающий и порожденный. Порождающий выполняет системный вызов (fork), в результате появляется порожденный процесс. При запуске процесс получает уникальный идентификатор процесса (Process IDentifier, PID), по которому он становится доступен другим процессам и планировщику. На рисунке 12.4 представлена блок-схема жизненного цикла процесса в ОС UNIX. Для создания системного процесса используется системный вызов fork (разветвление), в результате которого получаются два идентичных процесса, называемые родительский процесс и порожденный (дочерний) процесс. Они не имеют общей первичной памяти, но совместно используют все открытые файлы. Для уничтожения процесса имеется вызов EXIT, который завершает работу данного процесса и передает код возврата (завершения) родительскому процессу. Сегменты данного процесса уничтожаются. Остается структура пользования для родительского процесса. Когда родительский процесс подучил информацию об уничтожении порожденного им процесса, тогда уничтожается структура пользования и освобождается место в таблице процессов. В большинстве систем UNIX реализована возможность выполнять несколько параллельных подпроцессов внутри процесса. Эти подпроцессы называют потоками (threads). 183
Страницы
- « первая
- ‹ предыдущая
- …
- 181
- 182
- 183
- 184
- 185
- …
- следующая ›
- последняя »