![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Создание процесса
Три основных события, приводящие к созданию процессов (вызов fork или CreateProcess): o Загрузка системы o Работающий процесс подает системный вызов на создание процесса o Запрос пользователя на создание процесса Во всех случаях, активный текущий процесс посылает системный вызов на создание нового процесса. В UNIX каждому процессу присваивается идентификатор процесса (PID - Process IDentifier) Завершение процесса Четыре события, приводящие к остановке процесса (вызов exit или ExitProcess): o Плановое завершение (окончание выполнения) o Плановый выход по известной ошибке (например, отсутствие файла) o Выход по неисправимой ошибке (ошибка в программе) o Уничтожение другим процессом Таким образом, приостановленный процесс состоит из собственного адресного пространства, обычно называемого образом памяти (core image), и компонентов таблицы процессов (в числе компонентов и его регистры). Иерархия процессов В UNIX системах заложена жесткая иерархия процессов. Каждый новый процесс созданный системным вызовом fork, является дочерним к предыдущему процессу. Дочернему процессу достаются от родительского переменные, регистры и т.п. После вызова fork, как только родительские данные скопированы, последующие изменения в одном из процессов не влияют на другой, но процессы помнят о том, кто является родительским. В таком случае в UNIX существует и прародитель всех процессов - процесс init. Дерево процессов для систем UNIX
|