СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Процессы и потоки

Категория: Информатика

Нажмите, чтобы узнать подробности

Презентация на тему "Процессы и потоки" (дисциплина "Операционные системы и среды")

Просмотр содержимого документа
«Процессы и потоки»

Лекция 3 Процессы и потоки 1

Лекция 3

Процессы и потоки

1

Функции ОС по управлению процессами и потоками ►  планирование процессов; ► создание и уничтожение процессов; ► обеспечение процессов ресурсами; ► реализация обмена данными между процессами; ► синхронизация процессов и потоков. Планирование процессов - распределение процессорного времени между несколькими одновременно выполняющимися в системе процессами 1

Функции ОС по управлению

процессами и потоками

► планирование процессов;

► создание и уничтожение процессов;

► обеспечение процессов ресурсами;

► реализация обмена данными между процессами;

► синхронизация процессов и потоков.

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

1

Процессы и потоки В настоящее время в большинстве операционных систем определены два типа выполнения задач: ►  процессы (они требуют для своего выполнения более мелкие задачи - потоки); ►  потоки (более мелкие задачи). Потоки возникают как средство параллельного вычисления в рамках одного процесса. 1

Процессы и потоки

В настоящее время в большинстве операционных систем определены два типа выполнения задач:

► процессы (они требуют для своего выполнения более мелкие задачи - потоки);

► потоки (более мелкие задачи).

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

1

Процессы Процесс  – это программа, находящаяся в стадии выполнения. Процесс запрашивает и содержит все данные и ресурсы , кроме процессорного времени. Процессорное время выделяется потокам. В простейшем случае процесс состоит из 1 потока. Во многих ОС информация о каждом процессе хранится в таблице процессов ОС. 1

Процессы

Процесс – это программа, находящаяся в стадии выполнения.

Процесс запрашивает и содержит все данные и ресурсы , кроме процессорного времени.

Процессорное время выделяется потокам. В простейшем случае процесс состоит из 1 потока.

Во многих ОС информация о каждом процессе хранится в таблице процессов ОС.

1

Состав процесса Каждый процесс обладает своим адресным пространством. Адресное пространство – это области памяти, с которыми может работать процесс. У каждого процесса есть адресное пространство. Поэтому для обмена данными между двумя процессами им нужно обращаться к ОС. 1

Состав процесса

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

Адресное пространство – это области памяти, с которыми может работать процесс.

У каждого процесса есть адресное пространство.

Поэтому для обмена данными между двумя процессами им нужно обращаться к ОС.

1

Состав процесса ► область команд (содержит инструкции, предназначенные для выполнения процессором); ► область данных (содержит данные, она доступна для изменений); ► область стека (содержит информацию для ОС, используется для переключения между процессами, сохранения и восстановления состояния процесса). У каждого процесса есть адресное пространство. 1

Состав процесса

► область команд (содержит инструкции, предназначенные для выполнения процессором);

► область данных (содержит данные, она доступна для изменений);

► область стека (содержит информацию для ОС, используется для переключения между процессами, сохранения и восстановления состояния процесса).

У каждого процесса есть адресное пространство.

1

Таблица процессов Таблица процессов  (process table) – это структура данных, в которой хранятся указатели на все процессы системы. Идентификационный номер процесса (PID) – это числовое значение, уникальным образом идентифицирующее процесс. 1

Таблица процессов

Таблица процессов (process table) – это структура данных, в которой хранятся указатели на все процессы системы.

Идентификационный номер процесса (PID) – это числовое значение, уникальным образом идентифицирующее процесс.

1

Блоки управления процессами (дескрипторы процессов) Блок управления процессом (PCB или дескриптор процесса) – это структура данных, содержащая информацию о процессе (состояние, адресное пространство и т.д.). PCB 1 Состояние Приоритет Адресное пространство … Process table PID 1 PCB 2 … n Состояние адресное пространства Программный счетчик – это указатель на следующую инструкцию процесса, которая должна быть выполнена процессором. Приоритет процесса Указатель на открытые файлы Указатель на родительский процесс Указатель на дочерние процессы и т.д. PCB 2 Состояние Приоритет Адресное пространство …

Блоки управления процессами (дескрипторы процессов)

Блок управления процессом (PCB или дескриптор процесса) – это структура данных, содержащая информацию о процессе (состояние, адресное пространство и т.д.).

PCB 1

Состояние

Приоритет

Адресное пространство

…

Process table

PID

1

PCB

2

…

n

Состояние

адресное пространства

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

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

Указатель на открытые файлы

Указатель на родительский процесс

Указатель на дочерние процессы

и т.д.

PCB 2

Состояние

Приоритет

Адресное пространство

…

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

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

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

Квант – это промежуток времени, в течение которого процессор остается выделенным одному процессу.

Благодаря квантам предотвращается монопольный захват процессора одним процессом.

Переходы процесса из состояния в состояние Прерывание – это принудительная передача управления от выполняемого процесса к ОС с запоминанием состояния процесса. Таймер прерываний – это аппаратно реализованный таймер, вырабатывающий сигналы прерывания через определенные промежутки времени (кванты) для того, чтобы не допустить монопольного захвата процессора одним процессом.

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

Прерывание – это принудительная передача управления от выполняемого процесса к ОС с запоминанием состояния процесса.

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

Состояния процесса ► новый (процесс только что создан); ► готовый (процесс ожидает освобождения центрального процессора); ► ожидающий (процесс ожидает завершения некоторого события); ► выполняемый (команды программы выполняются в центральном процессоре); ►  завершенный (процесс завершил свою работу).

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

► новый (процесс только что создан);

► готовый (процесс ожидает освобождения центрального процессора);

► ожидающий (процесс ожидает завершения некоторого события);

► выполняемый (команды программы выполняются в центральном процессоре);

► завершенный (процесс завершил свою работу).

Состояния процесса Завершенный Новый прерывание допущен выход Готовый Выполняемый диспетчеризация Ожидание ввода-вывода или наступления события Завершение ввода-вывода или наступление события Ожидающий 12

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

Завершенный

Новый

прерывание

допущен

выход

Готовый

Выполняемый

диспетчеризация

Ожидание ввода-вывода или наступления события

Завершение ввода-вывода или наступление события

Ожидающий

12

Классификация процессов по временным характеристикам ► интерактивные процессы (время их выполнения зависит от времени допустимой реакции компьютера на запросы пользователя); ► пакетные процессы (запускаются один за другим); ► процессы реального времени (должен быть закончен до наступления конкретного момента времени). 12

Классификация процессов по временным характеристикам

► интерактивные процессы (время их выполнения зависит от времени допустимой реакции компьютера на запросы пользователя);

► пакетные процессы (запускаются один за другим);

► процессы реального времени (должен быть закончен до наступления конкретного момента времени).

12

Классификация процессов по генеалогическому признаку ► порождающие процессы (родительские) ; ► порожденные процессы (дочерние) . A B C D В любой ОС по требованию существующего или существовавшего процесса проводится работа по порождению процессов. При этом один и тот же процесс может быть и порождающим и порожденным одновременно. G F E H 14

Классификация процессов по генеалогическому признаку

► порождающие процессы (родительские) ;

► порожденные процессы (дочерние) .

A

B

C

D

В любой ОС по требованию существующего или существовавшего процесса проводится работа по порождению процессов.

При этом один и тот же процесс может быть и порождающим и порожденным одновременно.

G

F

E

H

14

Классификация процессов по результативности Трасса — это порядок и длительность пребывания процесса в допустимых состояниях на интервале существования. Все они имеют одинаковый конечный результат, НО: ► эквивалентные (могут реализовываться по разным программам и имеют разные трассы); ► тождественные (реализуются по одной и той же программе, но имеют разные трассы); ► равные (реализуются по одной программе и имеют одинаковые трассы). 14

Классификация процессов

по результативности

Трасса — это порядок и длительность пребывания процесса в допустимых состояниях на интервале существования.

Все они имеют одинаковый конечный результат, НО:

► эквивалентные (могут реализовываться по разным программам и имеют разные трассы);

► тождественные (реализуются по одной и той же программе, но имеют разные трассы);

► равные (реализуются по одной программе и имеют одинаковые трассы).

14

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

Классификация процессов

по времени развития

► последовательные (интервалы двух процессов не пересекаются во времени);

► параллельные (на рассматриваемом интервале времени существуют одновременно два процесса);

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

14

Определите виды процессов Процесс 2  Процесс 1 t Процесс 2  Процесс 1 t Параллельные Комбинированные Последовательные Процесс 1 Процесс 2  t 14

Определите виды процессов

Процесс 2

Процесс 1

t

Процесс 2

Процесс 1

t

Параллельные

Комбинированные

Последовательные

Процесс 1

Процесс 2

t

14

Классификация процессов по месту развития ► внутренние (реализуются на центральном процессоре); ► внешние (развитие происходит под контролем или управлением ОС, например, процессы ввода-вывода). 14

Классификация процессов

по месту развития

► внутренние (реализуются на центральном процессоре);

► внешние (развитие происходит под контролем или управлением ОС, например, процессы ввода-вывода).

14

Классификация процессов по принадлежности к ОС ► системные (исполняется программа из состава ядра операционной системы); ►  пользовательские (исполняется прикладная программа). 14

Классификация процессов

по принадлежности к ОС

► системные (исполняется программа из состава ядра операционной системы);

► пользовательские (исполняется прикладная программа).

14

Классификация процессов по связности ►  взаимосвязанные , которые имеют какую-то связь (пространственно-временную, информационную и т.д.): ► информационно-независимые (используют совместные ресурсы, но не обмениваются информацией); ►  взаимодействующие (имеют информационные связи и разделяют общие данные); ► конкурирующие (делят одни ресурсы);   ► изолированные – слабо связанные. 14

Классификация процессов

по связности

► взаимосвязанные , которые имеют какую-то связь (пространственно-временную, информационную и т.д.):

► информационно-независимые (используют совместные ресурсы, но не обмениваются информацией);

► взаимодействующие (имеют информационные связи и разделяют общие данные);

► конкурирующие (делят одни ресурсы); ► изолированные – слабо связанные.

14

Отношения между процессами ► предшествования  (один всегда находится в активном состоянии раньше, чем другой); ► приоритетности  (процесс может стать активным, если в состоянии готовности нет процессов с более высоким приоритетом, процессор свободен или на нем реализуется процесс с меньшим приоритетом); ► взаимного исключения (в процессе используется общий ресурс, и процессы не могут развиваться одновременно: если один из них использует критический ресурс, то другой находится в состоянии ожидания). 14

Отношения между процессами

► предшествования (один всегда находится в активном состоянии раньше, чем другой);

► приоритетности (процесс может стать активным, если в состоянии готовности нет процессов с более высоким приоритетом, процессор свободен или на нем реализуется процесс с меньшим приоритетом);

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

14

Потоки Каждый процесс имеет минимум один поток. Поток — это последовательность команд, работающих в рамках некоторого процесса. По сути процедуры программы выполняются в потоках. Потоки позволяют воспольоваться преимуществом параллельного выполнения операций в рамках процесса. 14

Потоки

Каждый процесс имеет минимум один поток.

Поток — это последовательность команд, работающих в рамках некоторого процесса.

По сути процедуры программы выполняются в потоках.

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

14

Потоки Процессорное время выделяется потокам.  Многопоточность — это способность ОС поддерживать в рамках одного процесса выполнение нескольких потоков. 14

Потоки

Процессорное время выделяется потокам.

Многопоточность — это способность ОС поддерживать в рамках одного процесса выполнение нескольких потоков.

14

Потоки При создании процесса ОС создает для него как минимум 1 поток выполнения, при этом создается специальная структура – описатель потока (информация о его приоритете, правах доступа и состоянии и тд.). Созданный поток находится в приостановленном состоянии и становится в очередь на выполнение в соответствии с определенными правилами системы. 14

Потоки

При создании процесса ОС создает для него как минимум 1 поток выполнения, при этом создается специальная структура – описатель потока (информация о его приоритете, правах доступа и состоянии и тд.).

Созданный поток находится в приостановленном состоянии и становится в очередь на выполнение в соответствии с определенными правилами системы.

14

Преимущества использования потоков ►  поток можно создать и завершить быстрее, чем процесс; ► поток требует меньше ресурсов; ► потоки одного процесса могут взаимодействовать друг с другом не обращаясь к ОС, а используя общую память; ► повышается производительность программы. 14

Преимущества использования потоков

► поток можно создать и завершить быстрее, чем процесс;

► поток требует меньше ресурсов;

► потоки одного процесса могут взаимодействовать друг с другом не обращаясь к ОС, а используя общую память;

► повышается производительность программы.

14

Реализация потоков Уровни реализации потоков: ► пользовательский уровень , то есть потоки, управляемые приложениями; ► уровень ядра , то есть потоки, управляемые ядром операционной системы. Потоки ядра обычно медленнее, чем потоки пользователей. 14

Реализация потоков

Уровни реализации потоков:

► пользовательский уровень , то есть потоки, управляемые приложениями;

► уровень ядра , то есть потоки, управляемые ядром операционной системы.

Потоки ядра обычно медленнее, чем потоки пользователей.

14

Состояния потоков ►  выполнение — активное состояние, во время которого поток обладает всеми необходимыми ресурсами и непосредственно выполняется процессором; ►  готовность — пассивное состояние, находясь в котором поток заблокирован по внешним причинам (например, процессор занят другим потоком); ► ожидание — пассивное состояние, находясь в котором поток заблокирован по своим внутренним причинам. 14

Состояния потоков

► выполнение — активное состояние, во время которого поток обладает всеми необходимыми ресурсами и непосредственно выполняется процессором;

► готовность — пассивное состояние, находясь в котором поток заблокирован по внешним причинам (например, процессор занят другим потоком);

► ожидание — пассивное состояние, находясь в котором поток заблокирован по своим внутренним причинам.

14

Увеличить картинку 14

Увеличить картинку

14