- •Тема 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. Системные вызовы
- •Централизованная схема обработки системных вызовов
- •Централизованная схема обработки системных вызовов
- •Централизованная схема обработки системных вызовов
- •Централизованная схема обработки системных вызовов
- •Централизованная схема обработки системных вызовов
Поток на уровне пользователя НЕДОСТАТКИ:
системный вызов блокирует не только работающий поток, но и все потоки того процесса, к которому он относится;
приложение не может работать в многопроцессорном режиме, так как ядро закрепляет за каждым процессом только один процессор;
при запуске одного потока ни один другой поток а рамках одного процесса не будет запущен пока первый добровольно не отдаст процессор;
внутри одного потока нет прерываний по таймеру, в результате чего невозможно создать планировщик по таймеру для поочередного выполнения потоков.
71
Операционные системы
Поток на уровне ядра
Процессы
Потоки
Пространство пользователя
Ядро |
Таблица |
Таблица |
|
процессов |
потоков |
72
Операционные системы
Поток на уровне ядра
В случае потоков на уровне ядра в области приложения система поддержки исполнения программ не нужна, нет необходимости и в таблицах потоков в каждом процессе.
Вместо этого есть единая таблица потоков, отслеживающая все потоки в системе.
Если потоку необходимо создать новый поток или завершить имеющийся, он выполняет запрос ядра, который создает или завершает поток, внося изменения в таблицу потоков.
Ядро поддерживает информацию контекста процесса как единого целого, а также контексты
каждого отдельного потока процесса. Планирование осуществляется ядром исходя из состояния потоков.
73
Операционные системы
Поток на уровне ядра
ДОСТОИНСТВА:
возможно планирование работы нескольких потоков одного и того же процесса на нескольких процессорах;
реализуется мультипрограммирование в рамках всех процессов (в том числе одного);
при блокировании одного из потоков процесса ядро может выбрать другой поток этого же (или другого процесса);
процедуры ядра могут быть многопоточными.
НЕДОСТАТКИ:
Необходимость двукратного переключения режима
пользователь – ядро, ядро – пользователь для передачи управления от одного потока к другому в рамках одного и того же процесса. 



74
Операционные системы
Потоки и их модели
С целью совмещения преимуществ реализации потоков на уровне пользователя и на уровне ядра были оправданы многие способы смешанной реализации.
Один из методов заключается в использовании управления ядром и последующем мультиплексировании потоков на уровне пользователя.
Предполагается, что у каждого потока ядра есть набор потоков на уровне пользователя, которые используют его по очереди. 
75
Операционные системы
2.5.Планирование заданий, процессов и потоков
1.Виды планирования
Основная цель планирования вычислительного процесса заключается в распределении времени процессора (нескольких процессоров) между выполняющимися заданиями пользователей таким образом, чтобы удовлетворять требованиям, предъявляемым пользователями к вычислительной системе.
Такими |
требованиями |
могут |
быть |
||
пропускная |
способность, |
время |
отклика, |
||
загрузка процессора и др. |
|
|
|
|
|
|
Операционные системы |
|
|
76 |
|
|
|
|
|
||
2.5.Планирование заданий, процессов и потоков
1.Виды планирования
Вид планирования
Долгосрочное
Среднесрочное
Краткосрочное (диспетчериза- ция)
Планирование ввода-вывода
Выполняемые функции
Решение о добавлении задания (процесса) в пул выполняемых в системе
Решение о добавлении процесса к числу процессов полностью или частично размещенных в основной памяти
Решение о том, какой из доступных процессов (потоков) будет выполняться процессором
Решение о том, какой из запросов процессов (потоков) на операцию ввода-вывода будет выполняться свободным устройством ввода-вывода 

77
Операционные системы
2.5.Планирование заданий, процессов и потоков
1.Виды планирования
Вбольшинстве операционных систем универсального назначения планирование осуществляется динамически (on-line), т. е. решения принимаются во время работы системы на основе анализа текущей ситуации, не используя никаких предложений о мультипрограммной смеси.
Найденное оперативно решение в таких
условиях редко бывает оптимальным.
78
Операционные системы
2.5.Планирование заданий, процессов и потоков
1.Виды планирования
Другой тип планирования - статический (предварительный) может быть использован только в специализированных системах с заданным набором задач (заранее определенным), например, в управляющих вычислительных системах или системах реального времени.
В этом случае статический планировщик (или предварительный планировщик)
принимает решение не во время работы системы, а заранее (off-line). 


79
Операционные системы
2.5.Планирование заданий, процессов и потоков
1.Виды планирования
Результатом его работы является расписание - таблица, в которой указано, какому процессу, когда и на какое время должен быть предоставлен процессор.
При этом накладные расходы ОС на исполнение расписания значительно меньше, чем при динамическом планировании.
80
Операционные системы
