
- •Тема 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.3.Управление процессами и потоками
2.3.1.Основные функции управления процессами и потоками
Каждый раз, когда процесс завершается, а это происходит благодаря одному из следующих событий: обычный выход, выход по ошибке, выход по неисправимой ошибке, уничтожение другим процессом, - ОС предпринимает шаги, чтобы «зачистить следы» его пребывания в системе.
Подсистема управления процессами закрывает все файлы, с которыми работал процесс, освобождает области оперативной памяти, отведенные под коды, данные и системные информационные структуры процесса.
Выполняется коррекция всевозможных очередей ОС и списка ресурсов, в которых имелись ссылки на завершаемый процесс.
51
Операционные системы

2.3.2. Роль процессов, потоков и волокон в мультипрограммировании
1.Отдельный процесс не может быть выполнен быстрее, чем в однопрограммном режиме.
2.Однако приложение, выполняемое в рамках одного процесса, может обладать внутренним параллелизмом, который в принципе мог бы ускорить его выполнение.
3.Сложно создать программу, реализующую параллелизм в рамках одного процесса.
4.Стандартные средства современных ОС не позволяют создать для одного приложения несколько процессов для параллельных работ.
5.Операционной системе наряду с процессами нужен другой механизм
распараллеливания вычислений, который учитывал бы тесные связи |
|
между отдельными ветвями вычислений одного и того же приложения. |
|
6. Многопоточная обработка позволяет распараллелить вычисления в |
|
рамках одного процесса. |
|
Операционные системы |
52 |
|

2.3.2. Роль процессов, потоков и волокон в мультипрограммировании
7.Потоки одного процесса используют общие файлы, таймеры, устройства, одну и ту же область оперативной памяти, одно и то же адресное пространство; они разделяют одни и те же глобальные переменные.
8.Многопоточная (multithreading) обработка эффективна в многопроцессорных вычислительных системах.
9.Использование аппарата волокон (Windows 2000) повышает эффективность мультипрограммирования за счет сокращения переключения режима (пользовательский - привилегированный), но увеличивает трудоемкость разработки приложений. Для управления волокнами нет системных вызовов, однако есть вызовы Win32 API,
которые не обращаются к системным вызовам.
53
Операционные системы

2.4. Создание процессов и потоков. |
|||
|
Модели процессов и потоков |
||
|
2.4.1.Процессы и их модели |
|
|
Создание процесса состоит в создании (прежде |
|||
всего) |
описателя |
процесса: |
нескольких |
информационных структур, содержащих все сведения |
|||
(атрибуты) о процессе, необходимые операционной |
|||
системе для управления им. |
|
|
|
В число таких сведений могут входить: |
|||
идентификатор процесса, данные о расположении в |
|||
памяти |
исполняемого |
модуля, |
степень |
привилегированности процесса (приоритет и права |
|||
доступа) и т. п. |
|
|
|
|
Операционные системы |
54 |
|
|
|

2.4. Создание процессов и потоков.
Модели процессов и потоков
2.4.1.Процессы и их модели
Примеры описателей процесса:
•блок управления задачей (ТСВ -Task Control Block) в OS/360;
•управляющий блок процесса (РСВ -Process Control Block) в OS/2;
•дескриптор процесса в UNIX;
•объект-процесс (object-process) в Windows NT/2000/2003.
Создание процесса включает загрузку кодов и |
|
данных исполняемой программы данного процесса с |
|
диска в оперативную память. |
|
Операционные системы |
55 |
|

2.4. Создание процессов и потоков. Модели процессов и потоков
2.4.1.Процессы и их модели
Образ процесса: программа, данные, стек и атрибуты процесса
Информация
Данные
пользователя
Пользовательская
программа Системный стек
Управляющий блок процесса
Описание
Изменяемая часть пользовательского адресного пространства (данные программы, пользовательский стек и модифицируемый код)
Программа, которую нужно выполнить
Один или несколько системных стеков для хранения параметров и адресов вызова процедур и системных служб
Данные, необходимые ОС для управления процессом: 1) дескриптор процесса, 2) контекст процесса
56
Операционные системы

2.4. Создание процессов и потоков. Модели процессов и потоков
2.4.1.Процессы и их модели
При управлении процессами ОС использует два основных типа информационных структур: блок управления процессом (дескриптор процесса) и
контекст процесса.
Дескрипторы процессов объединяются в таблицу процессов, которая размещается в области ядра. На основании информации, содержащейся в таблице процессов, ОС осуществляет планирование и синхронизацию процессов.
57
Операционные системы

Дескриптор процесса (блок управления) содержит:
1. Информацию по идентификации процесса
(идентификатор процесса, идентификатор пользователя, идентификаторы родительского и дочерних процессов).
2.Информацию по состоянию процесса
3.Информацию, используемую для управления процессом
58
Операционные системы

Идентификация процесса
Каждому процессу присваивается числовой идентификатор, который может быть просто индексом в первичной таблице процессов.
При создании нового процесса идентификаторы указывают родительский и дочерние процессы.
Процессу может быть присвоен идентификатор пользователя, который указывает, кто из пользователей отвечает за данное задание.
59
Операционные системы

Информация по состоянию и управлению процессом
Состояние процесса, определяющее его готовность к выполнению (выполняющийся, готовый к выполнению, ожидающий события, приостановленный);
Данные о приоритете (текущий, по умолчанию, максимально возможный);
Информация о событиях – идентификация события, наступление которого позволит продолжить выполнение процесса;
Указатели, позволяющие определить расположение образа процесса в оперативной памяти и на диске;
Указатели на другие процессы (находящиеся в очереди на выполнение);
Флаги, сигналы и сообщения, имеющие отношение к обмену информацией между двумя независимыми процессами;
Данные о привилегиях, определяющие права доступа к определенной области памяти или возможности выполнять определенные виды команд, использовать
системные утилиты и службы;Указатели на ресурсы, которыми управляет процесс;
Сведения по использованию ресурсов и процессора;Информация, связанная с планированием.
60
Операционные системы