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

КОНТЕКСТ ПРОЦЕССА
Содержит информацию, позволяющую ОС приостанавливать и возобновлять выполнение процесса с прерванного места:
•Содержимое регистров процессора, доступных пользователю (обычно 8 – 32 регистра и до 100 регистров в RISC – процессорах);
•Содержимое счетчика команд;
•Состояние управляющих регистров и регистров состояния;
•Коды условия, отражающие результат выполнения последней арифметической или логической операции (например, равенство нулю,переполнение);
•Указатели вершин стеков,хранящие параметры и адреса вызова процедур и системных служб.
Значительная часть этой информации фиксируется в виде слова состояния программы PSW (program status word – EFLAGS в процессоре Pentium).
61
Операционные системы

Простейшая модель процесса
|
Диспетчеризация |
Вход |
Выход |
Не выполняется |
Выполняется |
Пауза Граф состояний и переходов
Вход |
Диспетчеризация |
Выход |
|
||
|
Очередь |
CPU |
|
Пауза |
tкв |
62
Операционные системы

Простейшая модель процесса |
|
В любой момент времени процесс либо |
|
выполняется, либо не выполняется, т. е. имеет |
|
только два состояния. |
|
Если бы все процессы были всегда готовы к |
|
выполнению, то очередь по этой схеме могла бы |
|
работать вполне эффективно. |
|
Такая очередь работает по принципу |
|
обработки в порядке поступления, а процессор |
|
обслуживает имеющиеся в наличии процессы |
|
круговым методом (Round-robin). |
|
Каждому процессу отводится определенный |
|
промежуток времени, по истечении которого он |
|
возвращается в очередь. |
|
Операционные системы |
63 |
|

Новый |
Вход |
Готовый к |
Выполняю- |
Завершаю- |
|
||||
|
выполнению |
|||
|
|
щийся |
щийся |
|
|
в систему |
Освобо- |
|
|
|
|
|
ждение |
|
|
|
Блокирова- |
Ожидание |
|
|
|
нный |
события |
|
Поступление |
Очередь готовых процессов |
|
|
|
процесса |
|
|
||
|
|
|
|
|
|
|
|
CPU |
|
|
|
Тайм – аут ( tКВ ) |
|
|
|
|
|
Ожидание события |
Модель с тремя состояниями
64 Операционные системы

Модель с тремя состояниями |
|
Все невыполняющиеся процессы делятся на на |
|
два типа: готовые к выполнению и заблокированные. |
|
Поскольку процессор работает намного быстрее |
|
выполнения операций ввода-вывода, то вскоре все |
|
находящиеся в памяти процессы оказываются в |
|
состоянии ожидания ввода-вывода. |
|
Что делать? |
|
Можно увеличить емкость основной памяти, чтобы в |
|
ней умещалось больше процессов. |
|
Свопинг - перенос части процессов из оперативной |
|
памяти на диск и загрузка другого процесса из |
|
очереди приостановленных (но не блокированных!) |
|
процессов, находящихся во внешней памяти. |
|
Операционные системы |
65 |
|

2.4.2. Потоки и их модели
При создании потоков ОС генерирует специальную информационную структуру - описатель потока, который содержит идентификатор потока, данные о правах доступа и приоритете, о состоянии потока и другую информацию.
Описатель потока: блок управления потоком и контекст потока (в многопоточной системе процессы контекстов не имеют).
Способы реализации пакета потоков:
в пространстве пользователя (user – level threads –
ULT);в ядре (kernel – level threads – KLT).
66
Операционные системы

Поток на уровне пользователя (в пользовательском пространстве) |
|||
|
Процессы |
|
|
|
Потоки |
|
|
Библиотека |
Таблица |
|
|
потоков |
|
||
подпрограмм для |
|
|
|
работы с потоками |
Пространство |
пользователя |
|
Таблица |
Ядро |
||
процессов |
|||
|
|||
|
Операционные системы |
67 |
|
|
|

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

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

Поток на уровне пользователя ДОСТОИНСТВА:
можно реализовать в ОС, не поддерживающей потоки без каких- либо изменений в ОС;
высокая производительность, поскольку процессу не нужно переключаться в режим ядра и обратно;
ядро о потоках ничего не знает и управляет однопоточными процессами;
имеется возможность использования любых алгоритмов
планирования потоков с учетом их специфики; управление потоками возлагается на программу пользователя.
70
Операционные системы