|
|||
Операции над процессами. Создание процесса [2]– одна из основных операций над процессами3. Операции над процессами Создание процесса [2]– одна из основных операций над процессами Процесс-родитель создает дочерние процессы, которые, в свою очередь, создают другие процессы, тем самым формируя дерево процессов. Возможны различные подходы к созданию процессов, с точки зрения возможности совместного использования (разделения) ресурсов процессом-родителем и дочерним процессом, с точки зрения возможности их параллельного выполнения и с точки зрения адресации и использования памяти. Разделение ресурсов [2]. Возможны следующие подходы:
Исполнение [2]. Возможны следующие подходы:
Адресация и использование памяти [2]. Возможны следующие подходы:
В системе UNIX сформулированные вопросы решены следующим образом. fork – системный вызов, создающий новый процесс. Он клонирует память процесса-родителя и создает для дочернего процесса новое виртуальное адресное пространство. После этого выполняется еще один системный вызов - exec (execve) – системный вызов, с целью замены пространства памяти процесса новой программой. Дочерний процесс продолжает выполняться вместо процесса родителя. При запуске системы создается корневой процесс root. Он, в свою очередь, создает три дочерних процесса: init – инициализация системы; pagedaemon – процесс-демон(процесс, постоянно находящийся в системе до ее перезапуска), управляющей страничной организацией памяти; swapper – процесс, управляющий откачкой и подкачкой. Процесс init после инициализации системы запускает пользовательские процессы. Последние, в свою очередь, могут запускать новые и т.д.
|
|||
|