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

2.7. Аппаратно-программные средства поддержки мультипрограммирования
2.7.1. Системы прерываний
Операционные системы имеют специальные модули для работы с прерываниями - обработчики прерываний, или процедуры обслуживания прерываний (Interrupt Service Routine, ISR).
Аппаратные прерывания обрабатываются драйверами соответствующих внешних устройств, исключения - специальными модулями ядра, а
программные прерывания - процедурами ОС, обслуживающими системные вызовы.
171
Операционные системы

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

2.7. Аппаратно-программные средства поддержки мультипрограммирования
2.7.1.Системы прерываний
Вслучае векторных прерываний в процессор передается информация о начальном адресе программы обработки прерываний - обработчика прерывания.
При использовании опрашиваемых прерываний
процессор получает от запросившего прерывания устройства только информацию об уровне приоритета прерывания.
Скаждым уровнем может быть связано несколько устройств и соответственно несколько
обработчиков прерываний.
173
Операционные системы

2.7. Аппаратно-программные средства поддержки мультипрограммирования
2.7.1.Системы прерываний
Вэтом случае при возникновении прерывания процессор вызывает поочередно всех обработчиков прерываний данного уровня приоритета, пока один из обработчиков не подтвердит, что прерывание прошло от обслуживаемого им устройства.
Возможен комбинированный подход, сочетающий векторный и опрашиваемый типы
прерываний. Такой подход реализован в ПК на основе
процессоров Intel Pentium.
174
Операционные системы

2.7. Аппаратно-программные средства поддержки |
|||
|
мультипрограммирования |
|
|
2.7.1. Системы прерываний |
|
||
Вектор прерываний в процессор Pentium |
|||
поставляет |
контроллер |
прерываний, |
который |
отображает поступающий от шины сигнал IRQ |
|||
(Interrupt Request) на определенный номер вектора. |
|||
Вектор прерываний представляет собой число, |
|||
указывающее на одну из 256 программ обработки |
|||
прерываний, адреса которых хранятся в таблице |
|||
обработчиков прерываний. |
|
|
|
В том случае, когда к каждой линии IRQ |
|||
подключается только одно устройство, процедура |
|||
прерываний работает как чисто векторная. |
|
||
|
Операционные системы |
175 |
|
|
|

2.7. Аппаратно-программные средства поддержки мультипрограммирования
2.7.1. Системы прерываний
Однако при совместном использовании одного уровня IRQ несколькими устройствами обработка прерываний реализуется по схеме опрашиваемых прерываний, т. е. в данном случае необходимо выполнить опрос всех устройств, подключенных к данному уровню IRQ (Interrupt Request).
176
Операционные системы

2.7. Аппаратно-программные средства поддержки мультипрограммирования
2.7.1. Системы прерываний
Обычно в ОС поддерживается механизм приоритезации и маскирование прерываний.
Каждый класс прерываний имеет свой уровень приоритета.
Приоритеты могут обслуживаться как
относительные и как абсолютные.
Маскирование позволяет запретить прерывания любого приоритета на некоторый промежуток времени.
177
Операционные системы

Последовательность действий при обработке прерываний
1.Первичное аппаратное распознавание типа прерывание. Если прерывания запрещены, продолжается текущая программа. В противном случае вызывается диспетчер прерываний и в зависимости от поступившей в процессор информации (вектор прерывания, приоритет и др.) производится вызов процедуры обработки прерывания.
2.Сохраняется некоторая часть контекста прерванного потока, которая позволит возобновить его исполнение после обработки прерывания (обычно слово состояния процессора – регистр EFLAGS в Pentium, регистры общего назначения). Может быть сохранен и полный контекст, если ОС обслуживает прерывание со сменой процесса.
3.В счетчик команд загружается адрес процедуры обработки прерывания и устанавливается новое PSW, которое определяет привилегированный режим работы процессора при обработке прерывания.
4.Маскированием прерываний временно запрещаются прерывания данного типа, чтобы не образовалась очередь вложенных друг в друга потоков одной и той же процедуры.
5.После обработки прерывания ядром операционной системы, прерванный контекст восстанавливается (частично аппаратно – PSW, содержимое счетчика команд, частично
программно – извлечение данных из стека), снимается обработка прерываний данного типа и работа потока возобновляется с прерванного места.
178
Операционные системы

2.7.2. Системные вызовы
Системный вызов позволяет приложению обратиться к ОС с просьбой выполнить то или иное действие, оформленное как процедура кодового сегмента ОС.
Реализация системных вызовов должна удовлетворять следующим требованиям: o обеспечивать переключение в привилегированный режим;
o обладать высокой скоростью вызова процедур ОС;
o обеспечивать по возможности единообразное обращение к системным вызовам для всех аппаратных платформ, на которых работает ОС;
o допускать простое расширение системных вызовов;
o обеспечивать контроль со стороны ОС за корректным использованием системных вызовов.
Возможные схемы обслуживания системных вызовов:
1. Децентрализованная –за каждым системным вызовом закреплен свой вектор прерываний. Достоинство – высокая скорость обработки системных вызовов, недостаток – разрастание таблицы векторов прерываний.
2. Централизованная – с помощью диспетчера системных вызовов. При любом системном вызове приложение выполняет программное прерывание с определенным и
единственным номером. |
|
Операционные системы |
179 |
|

С |
|
Таблица |
|
и |
|
||
с |
в |
прерываний |
|
т |
ы |
системы |
|
е |
|||
з |
|
||
м |
|
||
о |
|
||
н |
|
||
ы |
в |
|
йАдрес диспетчера
|
|
системных |
|
Вектор |
|||
вызовов |
|||
80h |
|||
|
|||
Linux |
|
||
RQ=21h |
|
INT 2Eh
Pentium
Виртуальное адресное |
пространство |
Диспетчер |
системных вызовов |
Процедура обработки |
системного вызова 21h |
Процедура обработки |
системного вызова 22h |
Процедура обработки |
системного вызова 23h |
Адрес процедуры 21h
Адрес процедуры 22h
Адрес процедуры 23h
Централизованная схема обработки системных вызовов
180
Операционные системы