
- •Тема 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. Системные вызовы
- •Централизованная схема обработки системных вызовов
- •Централизованная схема обработки системных вызовов
- •Централизованная схема обработки системных вызовов
- •Централизованная схема обработки системных вызовов
- •Централизованная схема обработки системных вызовов

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

Алгоритмы приоритетного планирования
При назначении приоритетов вновь созданному процессу ОС учитывается, является ли этот процесс системным или прикладным, каков статус пользователя, запустившего процесс (администратор, пользователь, часть и т. п.), было ли явное указание пользователя на присвоение процессу определенного уровня приоритета.
Поток может быть инициирован не только по команде пользователя, но и в результате выполнения системного вызова другим потоком. В этом случае ОС учитывает значения параметров системного вызова.
102
Операционные системы

|
Алгоритмы приоритетного планирования |
|
|||
|
|
Тайм-аут |
|
|
|
|
Назначение приоритета |
Очередь высшего приоритета |
Процессор |
Завершение (ошибка) |
|
Новый поток |
|
Ожидание |
|||
Тайм-аут |
события |
||||
|
|||||
Очередь низшего приоритета |
|||||
|
|
||||
|
|
|
Ожидание |
|
|
|
|
|
события |
|
|
|
|
Приоритетное переключение с квантованием |
|
103
Операционные системы

Алгоритмы приоритетного планирования
Во многих ОС предусматривается возможность изменения приоритета в течение жизни потока.
Изменения приоритета могут происходить по инициативе самого потока, когда он обращается с соответствующим вызовом к ОС, или по инициативе пользователя, когда он выполняет соответствующую команду.
Кроме этого, сама ОС может изменить приоритеты потоков в зависимости от ситуации, складывающейся в системе.
В последнем случае приоритеты называются динамическими в отличие от неизменяемых, фиксированных приоритетов.
104
Операционные системы

Алгоритмы приоритетного планирования
Существуют две разновидности приоритетного планирования: с относительными и абсолютными приоритетами.
Всистемах с относительными приоритетами
активный поток выполняется до тех пор, пока он сам не покинет процессор, перейдя в состояние ожидания (по вводу-выводу, например), или не завершится, или произойдет ошибка.
Всистемах с абсолютными приоритетами
выполнение активного потока прерывается еще и по причине появления потока, имеющего более высокий приоритет, чем у активного потока. В этом случае прерванный поток переходит в состояние готовности.
105
Операционные системы

Алгоритмы приоритетного планирования |
||||||
В Windows 2000/2003 (W2K) приоритеты |
||||||
организованы в виде двух групп, или классов: |
||||||
реального времени и переменные. |
|
|
|
|||
Каждая из групп состоит из 16 уровней |
||||||
приоритетов. |
|
|
|
|
|
|
Потоки, |
требующие |
немедленного |
внимания, |
|||
находятся в классе реального времени, который |
||||||
включает такие функции, как осуществление |
||||||
коммуникаций и задачи реального времени. |
|
|||||
Поскольку |
W2K |
использует |
вытесняющий |
|||
планировщик с учетом приоритетов, потоки с |
||||||
приоритетами |
|
реального |
времени |
имеют |
||
преимущество по отношению к прочим потокам. |
||||||
|
|
Операционные системы |
|
|
106 |
|
|
|
|
|
|

приоритеты |
31 |
|
|
|
30 |
|
|
|
|
|
Наивысший |
Очереди системных |
П |
|
|
потоков и потоков |
|||
Системные |
|
|||
|
|
псевдореального |
Р |
|
|
|
времени |
О |
|
|
|
|
Ц |
|
16 |
Наинизший |
|
Е |
|
|
|
|||
|
15 |
Наивысший |
|
С |
|
|
С |
||
приоритеты |
|
|
|
|
|
|
Наивысший |
О |
|
|
|
Р |
||
8 |
|
Повышенный |
||
Базовый приоритет |
Обычный |
|
||
7 |
|
|||
|
Пониженный |
|
||
6 |
|
|
||
Пользоват. |
|
|
||
|
Наинизший |
|
||
|
|
|
||
|
Наинизший |
|
|
|
0 |
Поток обнуления страниц |
|
||
-1 |
Пустой поток |
|
|
|
|
|
|
||
|
|
|
Операционные системы |
107 |
|
|
|
|

Алгоритмы приоритетного планирования
В классе приоритетов реального времени все потоки имеют фиксированный приоритет (от 16 до 31), который никогда не изменяется, и все активные потоки с определенным уровнем приоритета располагаются в круговой очереди данного класса (t^- 20 мс для W2K Professional, 120 мс - для однопроцессорных серверов).
108
Операционные системы

Алгоритмы приоритетного планирования |
|
В классе переменных приоритетов поток |
|
начинает работу с базового приоритета процесса, |
|
который может принимать значение от 1 до 15. |
|
Каждый поток, связанный с процессом, имеет свой |
|
базовый приоритет, равный базовому приоритету |
|
процесса, или отличающийся от него не более чем на 2 |
|
уровня в большую или меньшую сторону. |
|
После активации потока его динамический |
|
приоритет может колебаться в определенных пределах |
|
- он не может упасть ниже наименьшего базового |
|
приоритета данного класса, т. е. 15. (Для потоков с |
|
приоритетом 16 и выше никогда не делается никаких |
|
изменений приоритетов.) |
|
Операционные системы |
109 |
|

Изменение базового приоритета потока Увеличение приоритета
+1 – завершение ввода-вывода по диску;
+2 – для последовательной линии;
+6 – клавиатура;
+8 – звуковая карта;
+2 – снимается блокировка по семафору (для потока
переднего плана); |
+ 1 |
- снимается блокировка по семафору (для потока непереднего плана); приоритет |
|
15 на 2 кванта процессора, если готовый к выполнению поток простаивает |
|
более некоторого директивного времени. |
|
Уменьшение приоритета
-1 – если полностью использован квант времени процессора (многократно,
вплоть до базового приоритета).
Последняя модификация алгоритма планирования W2K заключается в том, что когда окно становится окном переднего плана, все его потоки получают более длительные кванты времени (величина прибавки хранится в системном реестре).
110
Операционные системы