
- •Тема 2. Организация вычислительного процесса.
- •2.1. Концепция процессов и потоков.
- •2.1. Концепция процессов и потоков.
- •2.1. Концепция процессов и потоков.
- •2.1. Концепция процессов и потоков.
- •2.1. Концепция процессов и потоков.
- •2.1. Концепция процессов и потоков.
- •2.1. Концепция процессов и потоков.
- •2.1. Концепция процессов и потоков.
- •2.1. Концепция процессов и потоков.
- •2.1. Концепция процессов и потоков.
- •2.1. Концепция процессов и потоков. Задания,
- •2.1. Концепция процессов и потоков.
- •2.1. Концепция процессов и потоков.
- •2.1. Концепция процессов и потоков.
- •2.1. Концепция процессов и потоков.
- •2.1. Концепция процессов и потоков.
- •2.1. Концепция процессов и потоков.
- •Взаимосвязь между заданиями, процессами и потоками Задание
- •2.1. Концепция процессов и потоков.
- •2.1. Концепция процессов и потоков.
- •Задание (JOB)
- •2.2. Мультипрограммирование. Формы
- •2.2.1. Мультипрограммирование в системах пакетной обработки
- •2.2.1. Мультипрограммирование в системах пакетной обработки
- •2.2.1. Мультипрограммирование в системах пакетной обработки
- •2.2.1. Мультипрограммирование в системах пакетной обработки
- •2.2.2. Мультипрограммирование в системах разделения времени
- •2.2.2. Мультипрограммирование в системах
- •2.2.2. Мультипрограммирование в системах разделения времени
- •2.2.3. Мультипрограммирование в системах реального времени
- •2.2.3. Мультипрограммирование в системах
- •2.2.3. Мультипрограммирование в системах реального времени
- •2.2.3. Мультипроцессорная обработка
- •2.2.3. Мультипроцессорная обработка
- •2.2.3. Мультипроцессорная обработка
- •2.2.3. Мультипроцессорная обработка
- •2.2.3.Мультипроцессорная обработка
- •2.2.3.Мультипроцессорная обработка
- •2.2.3. Мультипроцессорная обработка
- •2.2.3.Мультипроцессорная обработка
- •2.2.3. Мультипроцессорная обработка
- •2.2.3.Мультипроцессорная обработка
- •2.3.Управление процессами и потоками
- •2.3.Управление процессами и потоками
- •2.3.Управление процессами и потоками
- •2.3.Управление процессами и потоками
- •2.3.Управление процессами и потоками
- •2.3.Управление процессами и потоками
- •2.3.Управление процессами и потоками
- •2.3.2. Роль процессов, потоков и волокон в мультипрограммировании
- •2.3.2. Роль процессов, потоков и волокон в мультипрограммировании
- •2.4. Создание процессов и потоков.
- •2.4. Создание процессов и потоков.
- •2.4. Создание процессов и потоков. Модели процессов и потоков
- •2.4. Создание процессов и потоков. Модели процессов и потоков
- •Дескриптор процесса (блок управления) содержит:
- •Идентификация процесса
- •Информация по состоянию и управлению процессом
- •КОНТЕКСТ ПРОЦЕССА
- •Простейшая модель процесса
- •Простейшая модель процесса
- •Новый
- •Модель с тремя состояниями
- •2.4.2. Потоки и их модели
- •Поток на уровне пользователя (в пользовательском пространстве)
- •Поток на уровне пользователя (в
- •Поток на уровне пользователя (в
- •Поток на уровне пользователя ДОСТОИНСТВА:
- •Поток на уровне пользователя НЕДОСТАТКИ:
- •Поток на уровне ядра
- •Поток на уровне ядра
- •Поток на уровне ядра
- •Потоки и их модели
- •2.5.Планирование заданий, процессов и потоков
- •2.5.Планирование заданий, процессов и потоков
- •2.5.Планирование заданий, процессов и потоков
- •2.5.Планирование заданий, процессов и потоков
- •2.5.Планирование заданий, процессов и потоков
- •2.5.Планирование заданий, процессов и потоков
- •2.5.Планирование заданий, процессов и потоков
- •2.5.Планирование заданий, процессов и потоков
- •2.5.Планирование заданий, процессов и потоков
- •Схема планирования с учетом очередей заданий (процессов)
- •Долгосрочное
- •Граф состояния потока
- •Граф состояния потока
- •Граф состояния потока
- •Типичный граф состояния потока
- •Алгоритмы планирования потоков
- •Алгоритмы планирования потоков
- •Алгоритмы планирования потоков
- •Простейший алгоритм планирования, реализующий состояния потока для типичного графа состояния потоков
- •Кванты, выделяемые потокам, могут быть равными или различными (типичное значение десятки - сотни
- •Алгоритм планирования, реализующий предпочтения потокам с интенсивным вводом-выводом
- •Алгоритм планирования, реализующий предпочтения потокам с интенсивным вводом-выводом
- •Алгоритм планирования, реализующий предпочтения потокам с интенсивным вводом-выводом
- •Граф состояния потока
- •Алгоритмы приоритетного планирования
- •Алгоритмы приоритетного планирования
- •Алгоритмы приоритетного планирования
- •Алгоритмы приоритетного планирования
- •Алгоритмы приоритетного планирования
- •Алгоритмы приоритетного планирования
- •приоритеты
- •Алгоритмы приоритетного планирования
- •Алгоритмы приоритетного планирования
- •Изменение базового приоритета потока Увеличение приоритета
- •Работоспособные процессы (потоки)
- •2.6. Взаимодействие и синхронизация процессов и потоков
- •2.6. Взаимодействие и синхронизация процессов и потоков
- •2.6.2. Конкуренция процессов в борьбе за ресурсы
- •Взаимоблокировки (тупики, deadlock)
- •Взаимоблокировки (тупики, deadlock)
- •Взаимоблокировки (тупики, deadlock)
- •Проблема “голодание”
- •Проблема “голодание”
- •Проблема “голодание”
- •2.6.3. Сотрудничество с использованием разделения
- •2.6.3. Сотрудничество с использованием
- •2.6.3. Сотрудничество с использованием
- •2.6.4. Сотрудничество с использованием связи
- •2.6.4. Сотрудничество с использованием связи
- •2.6.4.Методы взаимоисключений
- •3.Использование системных функций входа в критическую секцию
- •4. Семафоры Дейкстры (Dijkstra)
- •5. Мониторы Хоара и Хансена
- •Описание структуры и функциональной схемы
- •Абстрактное описание структуры монитора:
- •Абстрактное описание структуры монитора:
- •Описание функционирования монитора
- •Описание функционирования монитора
- •Пример монитора Хоара
- •Пример монитора Хоара
- •Реализация мониторов
- •Решение задачи производитель-потребитель с помощью мониторов:
- •Решение задачи производитель-потребитель с помощью мониторов:
- •Решение задачи производитель-потребитель с помощью мониторов:
- •2.6.5. Взаимоблокировки (тупики)
- •Методы обнаружения взаимоблокировок
- •Граф ресурсов и процессов
- •2. В системе несколько ресурсов каждого типа.
- •Алгоритм обнаружения тупиков
- •Методы устранения тупиков
- •2.6.6. Синхронизирующие объекты ОС
- •2.6.6. Синхронизирующие объекты ОС
- •2.6.6. Синхронизирующие объекты ОС
- •2.6.7. Средства взаимодействия ОС между
- •Конвейеры
- •Конвейеры
- •Конвейеры
- •Конвейеры
- •Конвейеры
- •Конвейеры
- •2.6.7. Средства взаимодействия ОС между
- •Очереди сообщений
- •Очереди сообщений
- •Очереди сообщений
- •Очереди сообщений
- •Очереди сообщений
- •2.6.7. Средства взаимодействия ОС между
- •Почтовые ящики
- •Почтовые ящики
- •2.6.7. Средства взаимодействия ОС между процессами
- •2.6.7. Средства взаимодействия ОС между
- •2.6.7. Средства взаимодействия ОС между
- •2.7. Аппаратно-программные средства поддержки
- •2.7. Аппаратно-программные средства поддержки мультипрограммирования
- •2.7. Аппаратно-программные средства поддержки мультипрограммирования
- •2.7. Аппаратно-программные средства поддержки мультипрограммирования
- •2.7. Аппаратно-программные средства поддержки мультипрограммирования
- •2.7. Аппаратно-программные средства поддержки
- •2.7. Аппаратно-программные средства поддержки мультипрограммирования
- •2.7. Аппаратно-программные средства поддержки мультипрограммирования
- •Последовательность действий при обработке прерываний
- •2.7.2. Системные вызовы
- •Централизованная схема обработки системных вызовов
- •Централизованная схема обработки системных вызовов
- •Централизованная схема обработки системных вызовов
- •Централизованная схема обработки системных вызовов
- •Централизованная схема обработки системных вызовов

Работоспособные процессы (потоки) |
||
Выбор для |
Резервный |
Переключение |
|
||
выполнения |
|
|
Инициализация (0) |
(3) |
|
|
|
|
Готовый (1) |
Вытеснение |
Выполняющийся |
|
||
|
|
(2) |
|
Снятие блокировки / |
Блокировка / |
Завершение |
Ресурсов |
возобновление. |
||
Ресурсов достаточно |
Приостановка |
|
|
достаточно |
|
|
|
|
Ожидание |
|
Транзит (6) |
(5) |
Завершенный |
|
||
|
|
(4) |
Снятие блокировки. Ресурсов |
35 |
|
|
недостаточно |
|
Неработоспособные процессы (потоки)

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

2.6. Взаимодействие и синхронизация процессов и потоков
2.6.1. Проблемы взаимодействия и синхронизации |
|||
Степень |
Взаимосвязь |
Влияние одного процесса на |
Потенциальные |
осведомленности |
|
другой |
проблемы |
Процессы не осведо- млены друг о друге
Процессы косвенно осведомлены о наличии друг друга
Процессы непосредст венно осведомлены о наличии друг друга
Конкуренция Результат работы одного процес-
са не зависит от действий других.
Возможно влияние одного про
цесса на время работы другого.
ВзаимоисключенияВзаимоблокировкиГолодание
Сотрудничеств |
Результат работы одного процесса |
Взаимоисключения |
о с использо- |
может зависеть от информации, |
Взаимоблокировки |
ванием разде- |
полученной от других. |
Голодание |
ления |
Возможно влияние одного процесса |
Синхронизация |
|
на время работы другого. |
|
Сотрудничеств |
Результат работы одного процесса |
Взаимоблокировки |
о с исполь- |
зависит от информации, полученной |
(расходуемые ресурсы) |
зованием связи |
от других процессов. |
Голодание |
|
Возможно влияние одного процесса |
|
|
на время работы другого. |
|
113
Операционные системы

2.6.2. Конкуренция процессов в борьбе за ресурсы
Конкуренция – ситуация, когда два или более процессов требуют доступ к одному и тому же ресурсу (принтеру, файлу и т.п.), называемому критическим (неразделяемый ресурс). Часть программы, использующая критический ресурс, называется критической секцией.
|
Процесс А попадает в |
|
Процесс А покидает |
|
|
критическую область |
|
|
|
|
|
критическую область |
|
|
Процесс А |
|
|
|
|
|
|
|
T |
|
|
|
|
|
|
|
Процесс В пытается |
|
Процесс В попадает в |
Процесс В покидает |
|
|
критическую область |
||
|
попасть в |
|
критическую область |
|
Процесс В |
|
|
||
критическую область |
|
|
|
|
|
|
|
|
T |
|
Процесс В блокирован |
T4 |
|
|
T1 |
T2 |
T3 |
|
|
|
Необходимость взаимоисключений: |
|
1. Процессы не должны одновременно находиться в критических областях.
2.В программе не должно быть предположений о скорости или количестве процессов.
3.Процесс, находящийся вне критической области, не может блокировать другие процессы.
4.Невозможна ситуация, в которой процесс вечно ждет попадания в критическую область.
114
Операционные системы

Взаимоблокировки (тупики, deadlock)
Группа процессов находится в тупиковой ситуации, если каждый процесс из группы ожидает события, которое может вызвать только другой процесс из этой же группы
Процесс |
P2 |
P1 |
Исходное |
|
|
|
распределение |
Ресурс |
R1 |
R2 |
ресурсов |
|
P1
P2 P1
R1 |
R2 |
R1 R2 P2
Тупиковая ситуация
115
Операционные системы

Взаимоблокировки (тупики, deadlock)
ОС выделяет ресурс R1 процессу Р2, а ресурс R2 - процессу Р1.
В результате каждый процесс ожидает получения одного из двух ресурсов.
При этом ни один из них не освобождает уже имеющийся ресурс, ожидая получения второго ресурса для выполнения функций, требующих наличия двух ресурсов.
В результате процессы оказываются взаимно заблокированными.
116
Операционные системы

Взаимоблокировки (тупики, deadlock) |
|
Удобно моделировать условия |
возникновения |
тупиков, используя направленные графы. |
|
Графы имеют 2 вида узлов: процессы-кружочки |
|
и ресурсы-квадратики. |
|
Ребро, направленное от квадрата (ресурса) к |
|
кружку (процессу), означает, что ресурс был |
|
запрошен, получен и используется. |
|
Ребро, направленное от процесса (кружка) к |
|
ресурсу (квадрату), означает, что процесс в данный |
|
момент заблокирован и находится в состоянии |
|
ожидания доступа к этому ресурсу. Цикл в графе |
|
означает наличие взаимной блокировки процессов. |
|
Операционные системы |
117 |
|

Проблема “голодание”
R
P1 |
P2 |
P3 |
P1 |
P2 |
Активный |
Блокированные |
Блокированные |
||
|
|
|
R
P1 |
P2 |
P3 |
P1 |
P2 |
Активный |
Блокированные |
Блокированные |
||
|
|
|
R
P3
Активный
R
P3
Активный
118
Операционные системы

Проблема “голодание”
Пусть Р1 обладает ресурсом, а Р2 и РЗ приостановлены в ожидании освобождения ресурса R.
После выхода Р1 из критического раздела доступ к ресурсу будет получен одним из процессов Р2 или РЗ.
Пусть ОС предоставила доступ к ресурсу процессу РЗ.
Пока он работает с ресурсом, доступ к ресурсу вновь требуется процессу Р1.
119
Операционные системы

Проблема “голодание”
В результате по освобождении ресурса R процессом РЗ может оказаться, что ОС вновь предоставит доступ к ресурсу процессу Р1.
Тем временем процессу РЗ вновь требуется доступ к ресурсу R.
Теоретически возможна ситуация, в которой процесс Р2 никогда не получит доступа к требуемому ему ресурсу, несмотря на то что никакой взаимной блокировки в данном случае нет.
120
Операционные системы