Лекция 3
Процессы и потоки
1
Функции ОС по управлению
процессами и потоками
► планирование процессов;
► создание и уничтожение процессов;
► обеспечение процессов ресурсами;
► реализация обмена данными между процессами;
► синхронизация процессов и потоков.
Планирование процессов - распределение процессорного времени между несколькими одновременно выполняющимися в системе процессами
1
Процессы и потоки
В настоящее время в большинстве операционных систем определены два типа выполнения задач:
► процессы (они требуют для своего выполнения более мелкие задачи - потоки);
► потоки (более мелкие задачи).
Потоки возникают как средство параллельного вычисления в рамках одного процесса.
1
Процессы
Процесс – это программа, находящаяся в стадии выполнения.
Процесс запрашивает и содержит все данные и ресурсы , кроме процессорного времени.
Процессорное время выделяется потокам. В простейшем случае процесс состоит из 1 потока.
Во многих ОС информация о каждом процессе хранится в таблице процессов ОС.
1
Состав процесса
Каждый процесс обладает своим адресным пространством.
Адресное пространство – это области памяти, с которыми может работать процесс.
У каждого процесса есть адресное пространство.
Поэтому для обмена данными между двумя процессами им нужно обращаться к ОС.
1
Состав процесса
► область команд (содержит инструкции, предназначенные для выполнения процессором);
► область данных (содержит данные, она доступна для изменений);
► область стека (содержит информацию для ОС, используется для переключения между процессами, сохранения и восстановления состояния процесса).
У каждого процесса есть адресное пространство.
1
Таблица процессов
Таблица процессов (process table) – это структура данных, в которой хранятся указатели на все процессы системы.
Идентификационный номер процесса (PID) – это числовое значение, уникальным образом идентифицирующее процесс.
1
Блоки управления процессами (дескрипторы процессов)
Блок управления процессом (PCB или дескриптор процесса) – это структура данных, содержащая информацию о процессе (состояние, адресное пространство и т.д.).
PCB 1
Состояние
Приоритет
Адресное пространство
…
Process table
PID
1
PCB
2
…
n
Состояние
адресное пространства
Программный счетчик – это указатель на следующую инструкцию процесса, которая должна быть выполнена процессором.
Приоритет процесса
Указатель на открытые файлы
Указатель на родительский процесс
Указатель на дочерние процессы
и т.д.
PCB 2
Состояние
Приоритет
Адресное пространство
…
Переходы процесса из состояния в состояние
Диспетчер – это компонент операционной системы, отбирающий для запуска на процессоре первый процесс из списка готовых к выполнению процессов.
Квант – это промежуток времени, в течение которого процессор остается выделенным одному процессу.
Благодаря квантам предотвращается монопольный захват процессора одним процессом.
Переходы процесса из состояния в состояние
Прерывание – это принудительная передача управления от выполняемого процесса к ОС с запоминанием состояния процесса.
Таймер прерываний – это аппаратно реализованный таймер, вырабатывающий сигналы прерывания через определенные промежутки времени (кванты) для того, чтобы не допустить монопольного захвата процессора одним процессом.
Состояния процесса
► новый (процесс только что создан);
► готовый (процесс ожидает освобождения центрального процессора);
► ожидающий (процесс ожидает завершения некоторого события);
► выполняемый (команды программы выполняются в центральном процессоре);
► завершенный (процесс завершил свою работу).
Состояния процесса
Завершенный
Новый
прерывание
допущен
выход
Готовый
Выполняемый
диспетчеризация
Ожидание ввода-вывода или наступления события
Завершение ввода-вывода или наступление события
Ожидающий
12
Классификация процессов по временным характеристикам
► интерактивные процессы (время их выполнения зависит от времени допустимой реакции компьютера на запросы пользователя);
► пакетные процессы (запускаются один за другим);
► процессы реального времени (должен быть закончен до наступления конкретного момента времени).
12
Классификация процессов по генеалогическому признаку
► порождающие процессы (родительские) ;
► порожденные процессы (дочерние) .
A
B
C
D
В любой ОС по требованию существующего или существовавшего процесса проводится работа по порождению процессов.
При этом один и тот же процесс может быть и порождающим и порожденным одновременно.
G
F
E
H
14
Классификация процессов
по результативности
Трасса — это порядок и длительность пребывания процесса в допустимых состояниях на интервале существования.
Все они имеют одинаковый конечный результат, НО:
► эквивалентные (могут реализовываться по разным программам и имеют разные трассы);
► тождественные (реализуются по одной и той же программе, но имеют разные трассы);
► равные (реализуются по одной программе и имеют одинаковые трассы).
14
Классификация процессов
по времени развития
► последовательные (интервалы двух процессов не пересекаются во времени);
► параллельные (на рассматриваемом интервале времени существуют одновременно два процесса);
► комбинированные (на рассматриваемом интервале найдется хотя бы одна точка, в которой существует один процесс, но не существует другой, и хотя бы одна точка, в которой оба процесса существуют одновременно).
14
Определите виды процессов
Процесс 2
Процесс 1
t
Процесс 2
Процесс 1
t
Параллельные
Комбинированные
Последовательные
Процесс 1
Процесс 2
t
14
Классификация процессов
по месту развития
► внутренние (реализуются на центральном процессоре);
► внешние (развитие происходит под контролем или управлением ОС, например, процессы ввода-вывода).
14
Классификация процессов
по принадлежности к ОС
► системные (исполняется программа из состава ядра операционной системы);
► пользовательские (исполняется прикладная программа).
14
Классификация процессов
по связности
► взаимосвязанные , которые имеют какую-то связь (пространственно-временную, информационную и т.д.):
► информационно-независимые (используют совместные ресурсы, но не обмениваются информацией);
► взаимодействующие (имеют информационные связи и разделяют общие данные);
► конкурирующие (делят одни ресурсы); ► изолированные – слабо связанные.
14
Отношения между процессами
► предшествования (один всегда находится в активном состоянии раньше, чем другой);
► приоритетности (процесс может стать активным, если в состоянии готовности нет процессов с более высоким приоритетом, процессор свободен или на нем реализуется процесс с меньшим приоритетом);
► взаимного исключения (в процессе используется общий ресурс, и процессы не могут развиваться одновременно: если один из них использует критический ресурс, то другой находится в состоянии ожидания).
14
Потоки
Каждый процесс имеет минимум один поток.
Поток — это последовательность команд, работающих в рамках некоторого процесса.
По сути процедуры программы выполняются в потоках.
Потоки позволяют воспольоваться преимуществом параллельного выполнения операций в рамках процесса.
14
Потоки
Процессорное время выделяется потокам.
Многопоточность — это способность ОС поддерживать в рамках одного процесса выполнение нескольких потоков.
14
Потоки
При создании процесса ОС создает для него как минимум 1 поток выполнения, при этом создается специальная структура – описатель потока (информация о его приоритете, правах доступа и состоянии и тд.).
Созданный поток находится в приостановленном состоянии и становится в очередь на выполнение в соответствии с определенными правилами системы.
14
Преимущества использования потоков
► поток можно создать и завершить быстрее, чем процесс;
► поток требует меньше ресурсов;
► потоки одного процесса могут взаимодействовать друг с другом не обращаясь к ОС, а используя общую память;
► повышается производительность программы.
14
Реализация потоков
Уровни реализации потоков:
► пользовательский уровень , то есть потоки, управляемые приложениями;
► уровень ядра , то есть потоки, управляемые ядром операционной системы.
Потоки ядра обычно медленнее, чем потоки пользователей.
14
Состояния потоков
► выполнение — активное состояние, во время которого поток обладает всеми необходимыми ресурсами и непосредственно выполняется процессором;
► готовность — пассивное состояние, находясь в котором поток заблокирован по внешним причинам (например, процессор занят другим потоком);
► ожидание — пассивное состояние, находясь в котором поток заблокирован по своим внутренним причинам.
14
Увеличить картинку
14