Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Часть 1 панова.doc
Скачиваний:
6
Добавлен:
17.04.2019
Размер:
3.18 Mб
Скачать

33. Иерархия процессов.

В UNIX-подобных системах заложена жесткая иерархия процессов. Новый процесс создается системным вызовом fork и является дочерним процессом предыдущему процессу. Дочернему процессу достается от родительского переменные, регистры и т. д. После вызова fork, как только родительские данные скопированы, последующие изменения в первом процессе не влияют на другой, но процессы «помнят» о том, какой процесс являлся для него родительским. В UNIX существует прародитель всех процессов – процесс init.

В отличие от UNIX-подобных систем, в WINDOW’s нет понятия иерархии процессов, но в этой системе можно задать специальный маркер родительскому процессу, который будет контролировать дочерний процесс и таким образом искусственно создать некое подобие иерархии в процессах.

34. Завершение процесса.

Для завершения процесса используется системный вызов EXIT, EXITPROCESS, при котором освобождаются все используемые ресурсы, т. е. память, структуры таблиц ядра, завершаются процессы-потомки, порожденные данным процессом.

  1. Из памяти удаляются сегменты кода и данных, а сам процесс переходит в состояние «зомби». Это состояние отражается в таблице процессов в поле stat буквой Z. Такие процессы не занимают процессорного времени, но строка в таблице процессов остается, и соответствующие структуры ядра не освобождаются.

  2. После завершения родительского процесса зомби на некоторое короткое время становится потомком процесса init, а затем уже окончательно умирает.

  3. После этого родительский процесс должен очистить все ресурсы, занимаемые дочерними процессами.

Если родительский процесс по какой-либо причине завершится раньше дочернего, то дочерний процесс становится «сиротой». Такие процессы автоматически «усыновляются» программой init, которая выполняется самой первой и принимает сигналы о завершении этих процессов. Процесс может «впасть в сон», который невозможно прервать. В поле stat это состояние обозначается буквой D. Процесс, который находится в таком состоянии, не реагирует на системные запросы и может быть уничтожен только перезагрузкой системы.

События, приводящие к остановке процесса.

  1. Плановое завершение процесса

  2. Плановый выход по известной ошибке

  3. Выход по неисправимой ошибке

  4. Уничтожение другим процессом

Приостановленный процесс состоит из собственного адресного пространства (образа памяти) и компонентов таблицы процессов.

35. Основные характеристики процесса.

-Процесс владеет определенными ресурсами, он размещен в некотором виртуальном адресном пространстве, содержащем образ процесса, и управляет другими ресурсами.

-Процесс подвержен диспетчеризации, т. е. определяется порядок выполнения одной или нескольких программ, при этом каждый процесс имеет состояние выполнения и приоритет диспетчеризации.

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

В каждый момент времени работает только один процесс.

Параллельная модель независимых последовательных процессов.

Для каждого процесса существует 4 счетчика команд ( на самом деле физический счетчик команд существует один единственный и переключения происходят по времени:

Когда время, отведенное текущему процессу, заканчивается, физический счетчик команд сохраняется в памяти в логическом счетчике команд процесса.