Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Концепция процессов и потоков. Задания, процессы, потоки, волокна

Содержание

Операционные системыВзаимосвязь между заданиями, процессами и потокамиПроцессыTTPTЗаданиеСтек в режиме пользователяПотокиТаблица процессаТаблица процессаМаркеры доступаСтеки потоков в режиме ядраTP
Операционные системы2.1. Концепция процессов и потоков. Задания, процессы, потоки (нити), волокна Ресурсы Операционные системыВзаимосвязь между заданиями, процессами и потокамиПроцессыTTPTЗаданиеСтек в режиме пользователяПотокиТаблица процессаТаблица процессаМаркеры Операционные системыЗадание (JOB)ОбъектыПроцесс 2Процесс NПроцесс 1Поток 2Thread 2Поток kThread kПоток 1Thread 1Волокна (Fibers)(нити) Операционные системыКанальная программаВвод - выводВ ы ч и с л е н Операционные системы2.2.2. Мультипрограммирование в системах разделения времени123…nЦентральный процессорTКВ = 0,02 мс2.2.3. Мультипрограммирование Операционные системы2.3.2. Роль процессов, потоков и волокон в мультипрограммировании Отдельный процесс не Операционные системы2.3. Управление процессами и потоками2.3.1. Основные функции управления процессами и потокамиСоздание Операционные системы2.4. Создание процессов и потоков. Модели процессов и потоков 2.4.1.Процессы и Операционные системыДескриптор процесса содержит:Информацию по идентификации процесса (идентификатор процесса, идентификатор пользователя, идентификаторы Операционные системыИнформация по состоянию и управлению процессом   Состояние процесса, определяющее Операционные системыКОНТЕКСТ ПРОЦЕССА Содержимое регистров процессора, доступных пользователю (обычно 8 – 32 Операционные системыПростейшая модель процессаДиспетчеризацияПаузаНе выполняетсяВыполняетсяВходВыходCPUВходВыходОчередьПаузаДиспетчеризацияCPUГраф состояний и переходовtкв Операционные системыНовыйГотовый к выполнениюВыполняю-щийсяВходв системуОжиданиеЗавершаю-щийсяОсвобо-ждениесобытияБлокирова-нныйCPUПоступление процессаОчередь готовых процессовТайм – аут ( tКВ )Ожидание события Операционные системы2.4.2. Потоки и их модели Описатель потока: блок управления потоком и Операционные системыПоток на уровне пользователя (в пользовательском пространстве)ПроцессыПространство  пользователяПотокиБиблиотека подпрограмм для работы с потокамиЯдроТаблица процессовТаблицапотоков Операционные системы Поток на уровне пользователя   можно реализовать в ОС, Операционные системы       Поток на уровне пользователя Операционные системыПоток на уровне ядраПроцессыПотокиЯдроПространство пользователяТаблица процессовТаблица потоков Операционные системы          Поток Операционные системы2.5. Планирование заданий, процессов и потоковВиды планирования Операционные системыСхема планирования с учетом очередей заданий (процессов)НовыйГотовый / Приостановлен-ныйГотовый в ОПВыполняющийся Операционные системыДолгосрочное планированиеТайм-аутОчередь готовых заданийСреднесрочное планированиеСреднесрочное планированиеОчередь готовых приостановленных заданийОчередь заблокированных приостановленных Операционные системыТипичный граф состояния потокаВЫПОЛНЕНИЕГОТОВНОСТЬОЖИДАНИЕПоток завершен или ошибкаПоток ожидает завершения ввода-вывода или Операционные системыАлгоритмы планирования потоковНевытесняющие (non-preemptive) планирование распределяется между ОС и прикладными программами; Операционные системыПростейший алгоритм планирования, реализующий состояния потока по кадру 27Тайм - аутПроцессорОжидание Операционные системыАлгоритм планирования, реализующий предпочтения потокам с интенсивным вводом-выводомОжидание событияТайм - аутПроцессорНовый Операционные системыГраф состояния потокаВыполнениеОжиданиеОчередь готовых потоков 1Очередь готовых потоков 2Вновь созданный потокtКВtКВТайм-аутЗавершение(ошибка)Событие (завершение ввода-вывода)Запрос ввода-вывода Операционные системыАлгоритмы приоритетного планированияПроцессорНазначение приоритетаТайм-аутОчередь высшего приоритетаОчередь низшего приоритетаОжидание событияОжидание событияТайм-аутЗавершение (ошибка)Новый потокПриоритетное переключение с квантованием Операционные системы313016-1015Системные приоритетыПользоват. приоритеты786НаивысшийПовышенныйОбычныйПониженныйНаинизшийПоток обнуления страницПустой потокБазовый приоритетНаивысшийНаинизшийОчереди системных потоков и потоков псевдореального времениНаивысшийНаинизшийПРОЦЕССОР Операционные системыИзменение базового приоритета потока Операционные системыРезервный (3)Выполняющийся (2)Готовый (1)Ожидание (5)Транзит (6)Завершенный (4)ПереключениеВытеснениеБлокировка / ПриостановкаСнятие блокировки / Операционные системы2.6. Взаимодействие и синхронизация процессов и потоков 2.6.1. Проблемы взаимодействия и синхронизации Операционные системы2.6.2. Конкуренция процессов в борьбе за ресурсыКонкуренция – ситуация, когда два Операционные системыВзаимоблокировки (тупики, deadlock) Группа процессов находится в тупиковой ситуации, если каждый Операционные системыПроблема “голодание”RRRRP1P2P3P1P2P3P1P2P3P1P2P3АктивныйБлокированныеБлокированныеАктивныйАктивныйБлокированныеБлокированныеАктивный Операционные системы2.6.3. Сотрудничество с использованием разделенияПроцессы, взаимодействующие с другими процессами без наличия Операционные системы2.6.4. Методы взаимоисключенийЗапрещение прерываний при входе в критическую область и разрешение Операционные системы3.Использование системных функций входа в критическую секциюСистемный вызовEnterCriticalSection() Попытка доступа к Операционные системы4. Семафоры Дийкстры (Dijkstra)Семафор: переменная S, примитивы P (proberen – проверка; Операционные системыfeNНачальные значения семафоровe = N; f = 0P(e)Работа с разделяемым ресурсом Операционные системы2.6.5. Взаимоблокировки (тупики)Условия возникновения взаимоблокировки (тупиковой) ситуации:Взаимное исключение. Каждый ресурс в Операционные системыМетоды обнаружения взаимоблокировокВ системе один ресурс каждого типа. Например, пусть система Операционные системыциклRACSFDBTEUWGVГраф ресурсов и процессов Операционные системы2. В системе несколько ресурсов каждого типа. P = {P1, P2, Операционные системыАлгоритм обнаружения тупиковОснован на сравнении векторов ресурсов. В исходном состоянии все Операционные системыМетоды устранения тупиковПринудительная выгрузка ресурсов. Изъятие ресурса у процесса, передача его Операционные системы2.6.6. Синхронизирующие объекты ОСДля синхронизации потоков, принадлежащих разным процессам, ОС должна Операционные системы2.7. Аппаратно-программные средства поддержки мультипрограммирования2.7.1. Системы прерыванийКлассы прерываний: внешние, внутренние, программные1. Операционные системыПоследовательность действий при обработке прерыванийПервичное аппаратное распознавание типа прерывание. Если прерывания Операционные системы2.7.2. Системные вызовыСистемный вызов позволяет приложению обратиться к ОС с просьбой Операционные системыТаблица прерываний системыАдрес диспетчера системных вызововДиспетчер системных вызововПроцедура обработки системного вызова
Слайды презентации

Слайд 2 Операционные системы

Взаимосвязь между заданиями, процессами и потоками





Процессы



T




T
P
T
Задание
Стек в

Операционные системыВзаимосвязь между заданиями, процессами и потокамиПроцессыTTPTЗаданиеСтек в режиме пользователяПотокиТаблица процессаТаблица

режиме пользователя
Потоки
Таблица процесса
Таблица процесса
Маркеры доступа
Стеки потоков в режиме ядра
T
P



Слайд 3 Операционные системы

Задание (JOB)
Объекты

Процесс 2
Процесс N
Процесс 1


Поток 2
Thread 2

Поток

Операционные системыЗадание (JOB)ОбъектыПроцесс 2Процесс NПроцесс 1Поток 2Thread 2Поток kThread kПоток 1Thread 1Волокна (Fibers)(нити)

k
Thread k




Поток 1
Thread 1
Волокна (Fibers)
(нити)



Слайд 4 Операционные системы

Канальная программа
Ввод - вывод


В ы ч и

Операционные системыКанальная программаВвод - выводВ ы ч и с л е

с л е н и я

Канал
Центральный процессор
Команда запуска канала
Сигнал

завершения операции ввода-вывода





2.2. Мультипрограммирование. Формы многопрограммной работы
2.2.1. Мультипрограммирование в системах пакетной обработки

О п е р а ц и и в в о д а – в ы в о д а

Контроллеры







Центральный процессор

В ы ч и с л е н и я




Слайд 5 Операционные системы


2.2.2. Мультипрограммирование в системах разделения времени






1
2
3

n

Центральный процессор
TКВ

Операционные системы2.2.2. Мультипрограммирование в системах разделения времени123…nЦентральный процессорTКВ = 0,02 мс2.2.3.

= 0,02 мс
2.2.3. Мультипрограммирование в системах реального времени
Управление техническими

объектами, технологическими процессами, системами обслуживания и т. п.
Фиксированный набор заранее разработанных задач.
Жесткие ограничения на время обслуживания.
Режим типа запрос – ответ.

2.2.4. Мультипроцессорная обработка
Операционные системы : Windows NT/2000/2003, Sun Solaris 2/x, Santa Cruz Operations Open Server 3.x, OS/2 и др.
Симметричная архитектура и асимметричная архитектура.




Слайд 6 Операционные системы
2.3.2. Роль процессов, потоков и волокон в

Операционные системы2.3.2. Роль процессов, потоков и волокон в мультипрограммировании Отдельный процесс

мультипрограммировании
Отдельный процесс не может быть выполнен быстрее, чем в

однопрограммном режиме.
Сложно создать программу, реализующую параллелизм в рамках одного процесса.
Стандартные средства современных ОС не позволяют создать для одного приложения несколько процессов для параллельных работ.
Многопоточная обработка позволяет распараллелить вычисления в рамках одного процесса.
Многопоточная (multithreading) обработка эффективна в многопроцессорных вычислительных системах.
Использование аппарата волокон (Windows 2000) повышает эффективность мультипрограммирования за счет сокращения переключения процессов, но увеличивает трудоемкость разработки приложений.




Слайд 7 Операционные системы


2.3. Управление процессами и потоками
2.3.1. Основные функции

Операционные системы2.3. Управление процессами и потоками2.3.1. Основные функции управления процессами и

управления процессами и потоками
Создание процессов и потоков.
Обеспечение процессов и

потоков необходимыми ресурсами.
Изоляция процессов.
Планирование выполнения процессов и потоков.
Диспетчеризация потоков.
Синхронизация процессов и потоков.
Завершение и уничтожение процессов и потоков.

События, приводящие к созданию процессов:
Инициализация (загрузка) ОС.
Запрос процесса на создание дочернего процесса.
Запрос пользователя на создание процесса (например, при входе в систему в интерактивном режиме).
Инициирование пакетного задания.
Создание операционной системой процесса какой-либо службы.




Слайд 8 Операционные системы
2.4. Создание процессов и потоков. Модели процессов

Операционные системы2.4. Создание процессов и потоков. Модели процессов и потоков 2.4.1.Процессы

и потоков
2.4.1.Процессы и их модели

Образ процесса: программа, данные, стек

и атрибуты процесса




Слайд 9 Операционные системы
Дескриптор процесса содержит:
Информацию по идентификации процесса (идентификатор процесса,

Операционные системыДескриптор процесса содержит:Информацию по идентификации процесса (идентификатор процесса, идентификатор пользователя,

идентификатор пользователя, идентификаторы родительского и дочерних процессов).
2. Информацию по состоянию

процесса
3. Информацию, используемую для управления процессом




Слайд 10 Операционные системы

Информация по состоянию и управлению процессом

Операционные системыИнформация по состоянию и управлению процессом  Состояние процесса, определяющее

Состояние процесса, определяющее его готовность к выполнению (выполняющийся, готовый

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




Слайд 11 Операционные системы

КОНТЕКСТ ПРОЦЕССА
Содержимое регистров процессора, доступных пользователю

Операционные системыКОНТЕКСТ ПРОЦЕССА Содержимое регистров процессора, доступных пользователю (обычно 8 –

(обычно 8 – 32 регистра и до 100 регистров

в RISC – процессорах);
Содержимое счетчика команд;
Состояние управляющих регистров и регистров состояния;
Коды условия, отражающие результат выполнения последней арифметической или логической операции (например, равенство нулю,переполнение);
Указатели вершин стеков,хранящие параметры и адреса вызова процедур и системных служб.
Значительная часть этой информации фиксируется в виде слова состояния программы PSW (program status word – EFLAGS в процессоре Pentium).




Слайд 12 Операционные системы

Простейшая модель процесса

Диспетчеризация
Пауза
Не выполняется
Выполняется
Вход
Выход

CPU
Вход
Выход
Очередь
Пауза
Диспетчеризация

CPU
Граф состояний и переходов


tкв

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

Слайд 13 Операционные системы





Новый

Готовый к выполнению
Выполняю-щийся
Вход
в систему
Ожидание
Завершаю-щийся
Освобо-ждение
события
Блокирова-нный

CPU
Поступление процесса
Очередь готовых процессов
Тайм

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

– аут ( tКВ )
Ожидание события


Слайд 14 Операционные системы


2.4.2. Потоки и их модели

Описатель потока: блок

Операционные системы2.4.2. Потоки и их модели Описатель потока: блок управления потоком

управления потоком и контекст потока (в многопоточной системе процессы

контекстов не имеют).

Способы реализации пакета потоков:
в пространстве пользователя (user – level threads – ULT);
в ядре (kernel – level threads – KLT).

Слайд 15 Операционные системы



Поток на уровне пользователя (в пользовательском пространстве)








Процессы
Пространство

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

пользователя
Потоки
Библиотека подпрограмм для работы с потоками
Ядро
Таблица процессов
Таблицапотоков


Слайд 16 Операционные системы

Поток на уровне пользователя

можно реализовать

Операционные системы Поток на уровне пользователя  можно реализовать в ОС,

в ОС, не поддерживающей потоки без каких-либо изменений в

ОС;
высокая производительность, поскольку процессу не нужно переключаться в режим ядра и обратно;
ядро о потоках ничего не знает и управляет однопоточными процессами;
имеется возможность использования любых алгоритмов планирования потоков с учетом их специфики;
управление потоками возлагается на программу пользователя.

ДОСТОИНСТВА:


Слайд 17 Операционные системы

Операционные системы    Поток на уровне пользователя

Поток на уровне пользователя

НЕДОСТАТКИ:

системный вызов блокирует не только работающий поток, но и все потоки того процесса, к которому он относится;
приложение не может работать в многопроцессорном режиме, так как ядро закрепляет за каждым процессом только один процессор;
при запуске одного потока ни один другой поток в рамках одного процесса не будет запущен пока первый добровольно не отдаст процессор;
внутри одного потока нет прерываний по таймеру, в результате чего невозможно создать планировщик по таймеру для поочередного выполнения потоков.

Слайд 18 Операционные системы


Поток на уровне ядра


Процессы
Потоки
Ядро


Пространство пользователя
Таблица процессов
Таблица потоков

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

Слайд 19 Операционные системы


Операционные системы     Поток на уровне ядра

Поток на уровне ядра

ДОСТОИНСТВА:
возможно планирование работы нескольких потоков одного и того же процесса на нескольких процессорах;
реализуется мультипрограммирование в рамках всех процессов (в том числе одного);
при блокировании одного из потоков процесса ядро может выбрать другой поток этого же (или другого процесса);
процедуры ядра могут быть многопоточными.

НЕДОСТАТКИ:
Необходимость двукратного переключения режима пользователь – ядро, ядро – пользователь для передачи управления от одного потока к другому в рамках одного и того же процесса.

Слайд 20 Операционные системы
2.5. Планирование заданий, процессов и потоков
Виды планирования

Операционные системы2.5. Планирование заданий, процессов и потоковВиды планирования

Слайд 21 Операционные системы
Схема планирования с учетом очередей заданий (процессов)







Новый
Готовый

Операционные системыСхема планирования с учетом очередей заданий (процессов)НовыйГотовый / Приостановлен-ныйГотовый в

/ Приостановлен-ный
Готовый в ОП
Выполняющийся в ОП
Завершаю-щийся
Долгосрочное планирование
Вызов ОС
Активация
Приостановка
Приостановка
Активация
Среднесрочное планирование

Освобождение
Ожидание

события (прерывание ввода-вывода, сообщение)

Диспетчеризация (краткосрочное планирование)

Тайм-аут (таймер)

Блокированный / Приостановленный

Диск

Диск

Блокированный в ОП

Наступление события

С в о п и н г

Наступление события


Слайд 22 Операционные системы





Долгосрочное планирование
Тайм-аут
Очередь готовых заданий
Среднесрочное планирование
Среднесрочное планирование
Очередь готовых

Операционные системыДолгосрочное планированиеТайм-аутОчередь готовых заданийСреднесрочное планированиеСреднесрочное планированиеОчередь готовых приостановленных заданийОчередь заблокированных

приостановленных заданий
Очередь заблокированных приостановленных заданий
Очередь
заблокированных заданий
Событие
Интерактивные пользователи
Пакетные задания
Ожидание

события

ЦП

Выход

ОП

Диск

Диск

ОП


Слайд 23 Операционные системы
Типичный граф состояния потока



ВЫПОЛНЕНИЕ
ГОТОВНОСТЬ
ОЖИДАНИЕ
Поток завершен или ошибка
Поток

Операционные системыТипичный граф состояния потокаВЫПОЛНЕНИЕГОТОВНОСТЬОЖИДАНИЕПоток завершен или ошибкаПоток ожидает завершения ввода-вывода

ожидает завершения ввода-вывода или другого события
Ввод-вывод завершен (событие произошло)
Поток

вытеснен (исчерпал квант)

Поток выбран на выполнение

Вновь созданный поток


Слайд 24 Операционные системы
Алгоритмы планирования потоков
Невытесняющие (non-preemptive)
планирование распределяется между

Операционные системыАлгоритмы планирования потоковНевытесняющие (non-preemptive) планирование распределяется между ОС и прикладными

ОС и прикладными программами;
необходимость частых передач управлений ОС,

в противном случае возможна монополизация процессора приложением;
зависания приложений могут привести к краху системы
2. Вытесняющие (preemptive)
функции планирования сосредоточены в ОС;
планирование на основе квантования процессорного времени;
планирование на основе приоритетов потоков: статических, динамических, абсолютных, относительных, смешанных;

Слайд 25 Операционные системы
Простейший алгоритм планирования, реализующий состояния потока по

Операционные системыПростейший алгоритм планирования, реализующий состояния потока по кадру 27Тайм -

кадру 27

Тайм - аут
Процессор
Ожидание события
Очередь заблокированных потоков
Ввод-вывод завершен
Новый
поток
Очередь готовых

потоков

Выход


Слайд 26 Операционные системы

Алгоритм планирования, реализующий предпочтения потокам с интенсивным

Операционные системыАлгоритм планирования, реализующий предпочтения потокам с интенсивным вводом-выводомОжидание событияТайм -

вводом-выводом


Ожидание события
Тайм - аут
Процессор
Новый поток
Очередь 2
Очередь 1


Переключение контекстов потоков

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

Слайд 27 Операционные системы
Граф состояния потока




Выполнение
Ожидание
Очередь готовых потоков 1
Очередь готовых

Операционные системыГраф состояния потокаВыполнениеОжиданиеОчередь готовых потоков 1Очередь готовых потоков 2Вновь созданный потокtКВtКВТайм-аутЗавершение(ошибка)Событие (завершение ввода-вывода)Запрос ввода-вывода

потоков 2

Вновь созданный поток
tКВ
tКВ
Тайм-аут
Завершение
(ошибка)
Событие (завершение ввода-вывода)
Запрос ввода-вывода


Слайд 28 Операционные системы
Алгоритмы приоритетного планирования


Процессор
Назначение приоритета
Тайм-аут
Очередь высшего приоритета
Очередь низшего

Операционные системыАлгоритмы приоритетного планированияПроцессорНазначение приоритетаТайм-аутОчередь высшего приоритетаОчередь низшего приоритетаОжидание событияОжидание событияТайм-аутЗавершение (ошибка)Новый потокПриоритетное переключение с квантованием

приоритета
Ожидание события
Ожидание события
Тайм-аут
Завершение (ошибка)
Новый поток
Приоритетное переключение с квантованием


Слайд 29 Операционные системы
31
30
16
-1
0
15
Системные приоритеты
Пользоват. приоритеты
7
8
6






Наивысший
Повышенный
Обычный
Пониженный
Наинизший
Поток обнуления страниц
Пустой поток

Базовый приоритет

Наивысший
Наинизший

Очереди

Операционные системы313016-1015Системные приоритетыПользоват. приоритеты786НаивысшийПовышенныйОбычныйПониженныйНаинизшийПоток обнуления страницПустой потокБазовый приоритетНаивысшийНаинизшийОчереди системных потоков и потоков псевдореального времениНаивысшийНаинизшийПРОЦЕССОР

системных потоков и потоков псевдореального времени
Наивысший
Наинизший
ПРОЦЕССОР


Слайд 30 Операционные системы


Изменение базового приоритета потока

Операционные системыИзменение базового приоритета потока

Увеличение приоритета
+ 1 – завершение ввода-вывода по диску; + 2 – для последовательной линии; + 6 – клавиатура; + 8 – звуковая карта; + 2 – снимается блокировка по семафору (для потока переднего плана); + 1 - снимается блокировка по семафору (для потока непереднего плана); приоритет 15 на 2 кванта процессора, если готовый к выполнению поток простаивает более некоторого директивного времени.

Уменьшение приоритета
- 1 – если полностью использован квант времени процессора (многократно, вплоть до базового приоритета).

Слайд 31 Операционные системы








Резервный (3)
Выполняющийся (2)
Готовый (1)
Ожидание (5)
Транзит (6)
Завершенный (4)
Переключение
Вытеснение
Блокировка

Операционные системыРезервный (3)Выполняющийся (2)Готовый (1)Ожидание (5)Транзит (6)Завершенный (4)ПереключениеВытеснениеБлокировка / ПриостановкаСнятие блокировки

/ Приостановка
Снятие блокировки / возобновление. Ресурсов достаточно
Снятие блокировки. Ресурсов

недостаточно

Ресурсов достаточно

Выбор для выполнения

Завершение

Работоспособные процессы (потоки)

Неработоспособные процессы (потоки)

35

Инициализация (0)


Слайд 32 Операционные системы
2.6. Взаимодействие и синхронизация процессов и потоков 2.6.1.

Операционные системы2.6. Взаимодействие и синхронизация процессов и потоков 2.6.1. Проблемы взаимодействия и синхронизации

Проблемы взаимодействия и синхронизации


Слайд 33 Операционные системы

2.6.2. Конкуренция процессов в борьбе за ресурсы
Конкуренция

Операционные системы2.6.2. Конкуренция процессов в борьбе за ресурсыКонкуренция – ситуация, когда

– ситуация, когда два или более процессов требуют доступ

к одному и тому же ресурсу (принтеру, файлу и т.п.), называемому критическим. Часть программы, использующая критический ресурс, называется критической секцией.



Процесс А

Процесс В

Процесс А попадает в критическую область

T1

T2

T3

T4

Процесс А покидает критическую область

Процесс В пытается попасть в критическую область


Процесс В блокирован

Процесс В попадает в критическую область

Процесс В покидает критическую область

T

T


Процессы не должны одновременно находиться в критических областях.
В программе не должно быть предположений о скорости или количестве процессов.
Процесс, находящийся вне критической области, не может блокировать другие процессы.
Невозможна ситуация, в которой процесс вечно ждет попадания в критическую область.

Необходимость взаимоисключений:


Слайд 34 Операционные системы

Взаимоблокировки (тупики, deadlock)
Группа процессов находится в

Операционные системыВзаимоблокировки (тупики, deadlock) Группа процессов находится в тупиковой ситуации, если

тупиковой ситуации, если каждый процесс из группы ожидает события,

которое может вызвать только другой процесс из этой же группы



Процесс

Ресурс



R1

P2



R2

P1

Исходное распределение ресурсов



R1

P2



R2

P1





P2

P1

R1

R2

Тупиковая ситуация



Слайд 35 Операционные системы




Проблема “голодание”
















R
R
R
R
P1
P2
P3
P1
P2
P3
P1
P2
P3
P1
P2
P3



Активный
Блокированные
Блокированные
Активный
Активный
Блокированные
Блокированные
Активный

Операционные системыПроблема “голодание”RRRRP1P2P3P1P2P3P1P2P3P1P2P3АктивныйБлокированныеБлокированныеАктивныйАктивныйБлокированныеБлокированныеАктивный

Слайд 36 Операционные системы



2.6.3. Сотрудничество с использованием разделения
Процессы, взаимодействующие с

Операционные системы2.6.3. Сотрудничество с использованием разделенияПроцессы, взаимодействующие с другими процессами без

другими процессами без наличия явной информации о друг друге,

обращаются к разделяемым переменным, к совместно используемым файлам или базам данных.

Проблемы: взаимоисключение, взаимоблокировка, голодание. Дополнительно: синхронизация процессов для обеспечения согласованности данных
Пример: пусть должно выполняться a = b при начальном значении a = b = 1
1-й вариант: процессы выполняются последовательно
P1: a = a + 1; b = b + 1; P2: b = 2 * b; a = 2 * a;
2-й вариант: процессы прерывают друг друга
P1: a = a + 1; прерывание; P2: b = 2 * b; прерывание;
P1: b = b + 1; прерывание; P2: a = 2 * a;
Согласование нарушено: a = 4, b = 3

Ситуации, в которых два или более процессов обрабатывают разделяемые данные (файлы) и конечный результат зависит от скоростей процессов (потоков), называются гонками.


Слайд 37 Операционные системы

2.6.4. Методы взаимоисключений
Запрещение прерываний при входе в

Операционные системы2.6.4. Методы взаимоисключенийЗапрещение прерываний при входе в критическую область и

критическую область и разрешение прерываний после выхода из критической

области. Достоинства: простота реализации. Недостатки: монополизация процессора, возможный крах ОС при сбое процесса, невозможность использования в многопроцессорных системах.
Блокирующие переменные (программный подход)


F(D)=1?




Да, свободен

Нет, занят

Попытка доступа к разделяемому ресурсу D

Занять ресурс F(D)=0

Критическая секция (работа с ресурсом D)

Освободить ресурс F(D)=1


Неделимая операция “проверка-установка”
Команды TC, BTR, BTS процессора Pentium (анализ и присвоение значения логической переменной)


Недостатки: необходимость постоянного опроса другими потоками, требующими тот же ресурс, блокирующей переменной; дополнительные затраты процессорного времени.


Слайд 38 Операционные системы




3.Использование системных функций входа в критическую секцию






Системный

Операционные системы3.Использование системных функций входа в критическую секциюСистемный вызовEnterCriticalSection() Попытка доступа

вызов
EnterCriticalSection()
Попытка доступа к разделяемому ресурсу D

F(D)=1?
Нет
Да
Перевести данный поток

в ожидание D

Установить блокирующую переменную в состояние “Занято”, F(D) = 0


Критическая секция (работа с ресурсом D)

Установить блокирующую переменную в состояние “Свободно”, F(D) = 1

Перевести поток, ожидающий ресурс D, в состояние Готовность

Системный вызов
LeaveCriticalSection()

Достоинство: исключается потеря времени процессора на циклическую проверку освобождения занятого ресурса.

Недостаток: растут накладные расходы ОС на по реализации функции входа в критическую секцию и выхода из нее


Слайд 39 Операционные системы


4. Семафоры Дийкстры (Dijkstra)

Семафор: переменная S, примитивы

Операционные системы4. Семафоры Дийкстры (Dijkstra)Семафор: переменная S, примитивы P (proberen –

P (proberen – проверка; down) и V (verhogen –

увеличение, up)
V(S) – переменная S увеличивается на 1 единым действием. Выборка, наращивание и запоминание не могут быть прерваны. К переменной S нет доступа во время выполнения этой операции.
P(S) – переменная S уменьшается на 1, если это возможно, составясь в области неотрицательных значений. Если S уменьшить невозможно, поток, выполняющий операцию P, ждет, пока это уменьшение станет возможным. Операция P неделима.
В частном случае семафор S может принимать двоичные значения 0 и 1, превращаясь в блокирующую переменную (двоичный семафор).
Операция P заключает в себе потенциальную возможность перехода процесса, который ее выполняет, в состояние ожидания (если S = 0).
Операция V может при некоторых обстоятельствах активизировать процесс, приостановленный операцией P.
Для хранения процессов, ожидающих семафоры, используется очередь, работающая по принципу FIFO.

Слайд 40 Операционные системы














f
e
N
Начальные значения семафоров
e = N; f =

Операционные системыfeNНачальные значения семафоровe = N; f = 0P(e)Работа с разделяемым

0






P(e)
Работа с разделяемым ресурсом (e=e-1)
V(f) ( f=f+1)
Потоки-писатели
Потоки-читатели
Буферный пул
e >

0

P(f)

f > 0

Работа с разделяемым ресурсом (f=f-1)

V(e) (e=e+1)


e – пустые буферы, f – занятые буферы


Слайд 41 Операционные системы

2.6.5. Взаимоблокировки (тупики)
Условия возникновения взаимоблокировки (тупиковой) ситуации:
Взаимное

Операционные системы2.6.5. Взаимоблокировки (тупики)Условия возникновения взаимоблокировки (тупиковой) ситуации:Взаимное исключение. Каждый ресурс

исключение. Каждый ресурс в данный момент или отдан ровно

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

Стратегии борьбы с взаимоблокировками:
1. Пренебрежение проблемой в целом. 2. Обнаружение и устранение взаимоблокировок (восстановление). 3. Недопущение тупиковых ситуаций с помощью аккуратного распределения ресурсов. 4. Предотвращать с помощью структурного опровержения одного из четырех условий, необходимых для взаимоблокировки


Слайд 42 Операционные системы


Методы обнаружения взаимоблокировок
В системе один ресурс каждого

Операционные системыМетоды обнаружения взаимоблокировокВ системе один ресурс каждого типа. Например, пусть

типа.
Например, пусть система из семи процессов (A, B,

C, D, E, F, G) и шести ресурсов (R, S, T, V, W, U) в некоторый момент соответствует следующему списку:
Процесс A занимает ресурс R и хочет получить ресурс S.
Процесс B ничего не использует, но хочет получить ресурс T.
Процесс C ничего не использует, но хочет получить ресурс S.
Процесс D занимает ресурс U и хочет получить ресурсы S и T.
Процесс E занимает ресурс T и хочет получить ресурс V.
Процесс F занимает ресурс W и хочет получить ресурс S.
Процесс G занимает ресурс V и хочет получить ресурс U.
ВОПРОС: Заблокирована ли эта система и если да, то какие процессы в этом участвуют?
ОТВЕТ МОЖНО ПОЛУЧИТЬ, ПОСТРОИВ ГРАФ РЕСУРСОВ И ПРОЦЕССОВ.




Слайд 43 Операционные системы
















цикл
R
A
C
S
F
D
B
T
E
U
W
G
V
Граф ресурсов и процессов

Операционные системыциклRACSFDBTEUWGVГраф ресурсов и процессов

Слайд 44 Операционные системы




2. В системе несколько ресурсов каждого типа.
P

Операционные системы2. В системе несколько ресурсов каждого типа. P = {P1,

= {P1, P2, . . . , Pn} –

множество процессов, n – число процессов;
E = {E1, E 2, . . . , Em } – множество ресурсов, m – число типов ресурсов;
A = {A1, A2, . . . , Am} – вектор свободных ресурсов; AJ <= EJ, j = 1, m;
C = {cI J | i = 1, n; j = 1, m } – матрица текущего распределения ресурсов;
R = {ri j | i = 1, n; j = 1, m } – матрица запрашиваемых ресурсов.
Существующие ресурсы Доступные ресурсы
E = {E1, E 2, . . . , Em } A = {A1, A2, . . . , Am}
c11 c12 . . . . c1m r11 r12 . . . . r1m
c21 c21 . . . . c2m r21 r22 . . . . r2m
. . . . . . . . . . . . . .

cn1 cn2 cnm rn1 rn2 . . . . Rnm

Слайд 45 Операционные системы


Алгоритм обнаружения тупиков
Основан на сравнении векторов ресурсов.

Операционные системыАлгоритм обнаружения тупиковОснован на сравнении векторов ресурсов. В исходном состоянии

В исходном состоянии все процессы не маркированы (не отмечены).

По мере реализации алгоритма на процессы будет ставиться отметка, обозначающая, что они могут закончить свою работу, т. е. не находятся в тупике. После завершения алгоритма любой немаркированный процесс находится в тупиковой ситуации.


Алгоритм
Ищется процесс Pi , для которого i – я строка матрицы R меньше вектора
A, т. е. Ri <= Aj или ri j <= Aj , j = 1, m.
Если такой процесс найден, он маркируется, и далее прибавляется I - я
строка матрицы С к вектору A, т.е. Aj := Aj + сi j , j = 1, m.
Возврат к шагу 1.
3. Если таких процессов не существует, работа алгоритма заканчивается. Если есть немаркированные процессы, то они попали в тупик.


Слайд 46 Операционные системы


Методы устранения тупиков
Принудительная выгрузка ресурсов. Изъятие ресурса

Операционные системыМетоды устранения тупиковПринудительная выгрузка ресурсов. Изъятие ресурса у процесса, передача

у процесса, передача его другому процессу, а затем возврат

ресурса таким образом, что исходный процесс этого “ не замечает” (сложно и чаще всего невозможно).
Восстановление через “откат”. Прцессы периодически создают контрольные точки, позволяющие запустить процесс с предыстории. При возникновении тупика процесс, занимающий необходимый ресурс “откатывается” к контрольной точке, после которой он получил ресурс. Если возобновленный процесс вновь попытается получить данный ресурс, он переводится в режим ожидания освобождения этого ресурса.
Восстановление путем уничтожения процессов.

Недопущение тупиков путем безопасного распределения ресурсов. Подобные алгоритмы базируются на концепции безопасных состояний. Например, Дейкстрой был разработан алгоритм планирования, позволяющий избегать взаимоблокировок (алгоритм банкира).

Слайд 47 Операционные системы


2.6.6. Синхронизирующие объекты ОС
Для синхронизации потоков, принадлежащих

Операционные системы2.6.6. Синхронизирующие объекты ОСДля синхронизации потоков, принадлежащих разным процессам, ОС

разным процессам, ОС должна предоставлять потокам системные объекты синхронизации.
К

таким объектам относятся события (event), мьютексы (mutex – mutual exclusion – взаимное исключение), системные семафоры и др.
Объект-событие используется для того, чтобы оповестить потоки о том, что некоторые действия завершены.
Мьютекс (простейший двоичный семафор) используется для управления доступом к данным.
Семафоры используются для оповещения свершения последовательности событий.

Для синхронизации используются также “обычные ” объекты ОС: файлы, процессы, потоки

Все объекты синхронизации могут находиться в сигнальном и несигнальном (свободном) состоянии. Поток с помощью системного вызова WAIT(X) может синхронизировать свое выполнение с объектом синхронизации X. С помощью системного вызова SET(X) поток может перевести объект X в сигнальное состояние. Кроме того, в ОС определен набор сигналов для логической связи меду процессами, а также процессами и пользователями (терминалами).


Слайд 48 Операционные системы


2.7. Аппаратно-программные средства поддержки мультипрограммирования
2.7.1. Системы прерываний
Классы

Операционные системы2.7. Аппаратно-программные средства поддержки мультипрограммирования2.7.1. Системы прерыванийКлассы прерываний: внешние, внутренние,

прерываний: внешние, внутренние, программные

1. Внешние прерывания – результат действий

пользователя, сигналы от периферийных устройств компьютера и управляемых объектов.

2. Внутренние прерывания – результат появления аварийных ситуаций при выполнении инструкции программы.

3. Программные прерывания – результат выполнения запланированных в программе особых инструкций (системный вызов).

Принципы построения систем прерываний:
аппаратная поддержка (контроллер прерываний, контроллер DMA, контроллеры внешних устройств, шины подключения внешних устройств, средства микропроцессора);
векторный, опрашиваемый и комбинированный способы прерываний;
приоритетный механизм обслуживания (с абсолютными и относительными приоритетами);
маскирование прерываний;
диспетчер прерываний и процедуры обслуживания прерываний.


Слайд 49 Операционные системы





Последовательность действий при обработке прерываний
Первичное аппаратное распознавание

Операционные системыПоследовательность действий при обработке прерыванийПервичное аппаратное распознавание типа прерывание. Если

типа прерывание. Если прерывания запрещены, продолжается текущая программа. В

противном случае вызывается диспетчер прерываний и в зависимости от поступившей в процессор информации (вектор прерывания, приоритет и др.) производится вызов процедуры обработки прерывания.

Сохраняется некоторая часть контекста прерванного потока, которая позволит возобновить его исполнение после обработки прерывания (обычно слово состояния процессора – регистр EFLAGS в Pentium, регистры общего назначения). Может быть сохранен и полный контекст, если ОС обслуживает прерывание со сменой процесса.
В счетчик команд загружается адрес процедуры обработки прерывания и устанавливается новое PSW, которое определяет привилегированный режим работы процессора при обработке прерывания.

Маскированием прерываний временно запрещаются прерывания, чтобы не образовалась очередь вложенных друг в друга потоков одной и той же процедуры.

После обработки прерывания ядром операционной системы, прерванный контекст восстанавливается (частично аппаратно – PSW, содержимое счетчика команд, частично программно – извлечение данных из стека), снимается обработка прерываний данного типа и работа потока возобновляется с прерванного места.

Слайд 50 Операционные системы


2.7.2. Системные вызовы
Системный вызов позволяет приложению обратиться

Операционные системы2.7.2. Системные вызовыСистемный вызов позволяет приложению обратиться к ОС с

к ОС с просьбой выполнить то или иное действие,

оформленное как процедура кодового сегмента ОС.

Реализация системных вызовов должна удовлетворять следующим требованиям:
обеспечивать переключение в привилегированный режим;
обладать высокой скоростью вызова процедур ОС;
обеспечивать по возможности единообразное обращение к системным вызовам для всех аппаратных платформ, на которых работает ОС;
допускать простое расширение системных вызовов;
обеспечивать контроль со стороны ОС за корректным использованием системных вызовов.

Возможные схемы обслуживания системных вызовов:
1. Децентрализованная –за каждым системным вызовом закреплен свой вектор прерываний. Достоинство – высокая скорость обработки системных вызовов, недостаток – разрастание таблицы векторов прерываний. 2. Централизованная – с помощью диспетчера системных вызовов.


  • Имя файла: kontseptsiya-protsessov-i-potokov-zadaniya-protsessy-potoki-volokna.pptx
  • Количество просмотров: 119
  • Количество скачиваний: 0