Лекция 5. Процессы и потоки (нити). Взаимодействие процессов.

Процессы

Понятие процесса

Процесс(задачка) - программка, находящаяся в режиме выполнения.

С каждым процессом связывается его адресное место, из которого он может читать и в которое он может писать данные.

Адресное место содержит:

С каждым процессом связывается набор регистров, к примеру:

В почти всех операционных системах вся информация о каждом процессе, дополнительная к содержимому его собственного адресного места, хранится в таблице процессов операционной системы.

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

Управление процессом Управление памятью Управление файлами
Регистры Счетчик команд Указатель стека Состояние процесса Ценность Характеристики планирования Идентификатор процесса Родительский процесс Группа процесса Время начала процесса Использованное процессорное время Указатель на текстовый сектор Указатель на сектор данных Указатель на сектор стека Корневой каталог Рабочий каталог Дескрипторы файла Лекция 5. Процессы и потоки (нити). Взаимодействие процессов. Идентификатор юзера Идентификатор группы

Модель процесса

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

Разглядим схему с 4-мя работающими программками.

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

С права представлены параллельно работающие процессы, каждый со своим счетчиком команд. Очевидно, по Лекция 5. Процессы и потоки (нити). Взаимодействие процессов. сути существует только один физический счетчик команд, в который загружается логический счетчик команд текущего процесса. Когда время, отведенное текущему процессу, завершается, физический счетчик команд сохраняется в памяти, в логическом счетчике команд процесса.

Создание процесса

Три главных действия, приводящие к созданию процессов (вызов fork либо CreateProcess):

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

Каждому процессу присваивается идентификатор процесса PID - Process IDentifier.

Окончание процесса

(вызов exit либо ExitProcess):

Таким макаром, приостановленный процесс состоит из собственного адресного места, обычно именуемого образом памяти(core image), и компонент таблицы процессов (в числе компонент и его регистры).

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

В UNIX системах заложена жесткая иерархия процессов. Каждый новый процесс сделанный системным вызовом fork, является дочерним к предшествующему процессу. Дочернему процессу достаются от Лекция 5. Процессы и потоки (нити). Взаимодействие процессов. родительского переменные, регистры и т.п. После вызова fork, как родительские данные скопированы, следующие конфигурации в одном из процессов не оказывают влияние на другой, но процессы помнят о том, кто является родительским.

В таком случае в UNIX существует и прародитель всех процессов - процесс init.

Дерево процессов для систем UNIX

В Лекция 5. Процессы и потоки (нити). Взаимодействие процессов. Windows не существует понятия иерархии процессов. Хотя можно задать особый маркер родительскому процессу, позволяющий держать под контролем дочерний процесс.

Состояние процессов

Три состояния процесса:

Вероятные переходы меж состояниями:

1. Процесс блокируется, ждя входных данных

2. Планировщик выбирает другой процесс

3. Планировщик выбирает этот процесс

4. Поступили входные данные

Переходы 2 и 3 вызываются планировщиком процессов операционной системы, так что сами процессы даже не знают об этих переходах. Исходя из убеждений самих процессов есть два состояния выполнения и ожидания.

На серверах для ускорения Лекция 5. Процессы и потоки (нити). Взаимодействие процессов. ответа на запрос клиента, нередко загружают несколько процессов в режим ожидания, и как сервер получит запрос, процесс перебегает из "ожидания" в "выполнение". Этот переход производится намного резвее, чем пуск нового процесса.


lekciya-7-farmacevticheskaya-i-himicheskaya-terminologii.html
lekciya-7-gumanisticheskoe-napravlenie-a-maslou-k-rodzhers.html
lekciya-7-konstrukcii-i-rascheti-orositelnoj-seti.html