
- •Тема 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.1. Концепция процессов и потоков.
Задания, процессы, потоки (нити), волокна Основные понятия
У каждого потока может быть несколько волокон, с той разницей, что когда волокно логически блокируется, оно помещается в очередь блокированных волокон, после чего для работы выбирается другое волокно в контексте того же потока.
При этом ОС «не знает» о смене волокон, так как все тот же поток продолжает работу.
21

Задание (JOB)
Процесс 1 |
Процесс 2 |
Поток 1 |
Поток 2 |
Поток k |
Thread 1 |
Thread 2 |
Thread k |
Процесс N |
Объекты |
|
|
Название |
Описание |
Задание |
Набор процессов с общими |
|
квотами и лимитами |
Процесс |
Контейнер для ресурсов и |
|
потоков |
Поток |
Исполнение кода в процессе |
Волокно |
Облегченный поток, |
Волокна (Fibers) |
полностью управляемый в |
|
пространстве пользователя |
Операционные системы |
22 |
|

2.2. Мультипрограммирование. Формы |
|||||
многопрограммной работы |
|
||||
2.2.1. Мультипрограммирование в системах |
|||||
|
пакетной обработки |
|
|
||
Системы |
пакетной |
|
обработки |
||
предназначаются для решения задач в |
|||||
основном |
вычислительного |
характера, |
не |
||
требующих быстрого получения результатов. |
|||||
Максимальная |
пропускная |
способность |
|||
компьютера достигается в этом случае |
|||||
минимизацией простоев его устройств и, |
|||||
прежде всего, процессора. |
|
|
|
||
|
Операционные системы |
|
|
23 |
|
|
|
|
|

2.2.1. Мультипрограммирование в системах пакетной обработки
Для достижения этой цели пакет заданий формируется так, чтобы получающаяся мультипрограммная смесь сбалансированно загружала все устройства машины.
Например, в такой смеси желательно присутствие задач вычислительного характера и с интенсивным вводом-выводом.
24
Операционные системы

2.2.1. Мультипрограммирование в системах пакетной обработки
Канал |
Ввод - вывод |
|
Канальная программа |
t |
|
|
|
|
|
|
Команда запуска |
|
Сигнал завершения |
|
|
|
операции ввода-вывода |
|
|
|
канала |
|
|
|
Центральный |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
процессор |
В ы ч и с л е н и я |
|
|
t |
|
|
|
|
О п е р а ц и и в в о д а – в ы в о д а
Контроллеры
t
t
Центральный процессор |
В ы ч и с л е н и я |
25
Операционные системы

2.2.1. Мультипрограммирование в системах пакетной обработки
В компьютерах класса мэйнфреймов совмещение достигается благодаря наличию в машине специализированных процессоров ввода-вывода (каналов).
Ввод-вывод осуществляется одновременно с вычислениями в центральном процессоре, который «отвлекается» только для выдачи команд каналам и приема сигналов о завершении ввода-вывода.
26
Операционные системы

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

|
|
|
|
Ta+Tb=11 |
|
|
|
|
|
|
Ta=6 |
|
|
|
Tb=5 |
|
|
|
|
A |
2 |
2 |
A |
2 |
B |
3 |
B |
1 |
t |
|
|
|
В ы ч и с л е н и я |
|
|
||||
|
|
|
|
|
|
||||
|
A |
2 |
|
|
|
B 1 |
|
|
t |
|
|
|
|
В в о д – в ы в о д |
|
|
|||
|
|
|
|
|
|
|
|||
|
Ta+Tb= 8 |
Tb= 6 |
|
|
|
|
|
||
|
|
Ta= 7 |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
A |
2 B |
|
3 A |
2 B 1 В ы ч и с л е н и я |
t |
||||
|
|
|
|
|
|
|
|
|
|
|
A |
2 |
|
B 1 |
|
В в о д – в ы в о д |
|
|
t |
|
|
|
|
|
|
|
|
|
|
|
|
|
A 1 |
|
B 1 |
Готовность (ожидание процессора) |
|||
|
|
|
|
|
|
|
|
|
t |
|
|
|
|
Операционные системы |
|
|
28 |
||
|
|
|
|
|
|
|

2.2.2. Мультипрограммирование в системах разделения времени
В системах разделения времени
пользователям (в частном случае одному) предоставляется возможность интерактивной работы сразу с несколькими приложениями.
Для этого каждое приложение должно регулярно получать возможность «общения» с пользователем.
ОС принудительно периодически приостанавливает приложения, не дожидаясь, когда они «добровольно» освободят процессор.
29
Операционные системы

2.2.2. Мультипрограммирование в системах |
||||
разделения времени |
||||
Всем |
приложениям |
попеременно |
||
выделяются |
кванты |
времени |
процессора, |
|
таким образом, |
пользователи, |
запустившие |
||
программы |
на |
выполнение, |
получают |
|
возможность поддерживать с ними диалог со |
||||
своего терминала. |
|
|
||
Если время кванта выбрано достаточно |
||||
небольшим, то у всех пользователей |
||||
складывается |
|
впечатление |
единоличной |
|
работы на машине. |
|
|
||
|
|
Операционные системы |
30 |
|
|
|
|