Разделы презентаций


Асинхронные процессы

Содержание

Пример из САПРЗадача: Найти периметр прямоугольника с точками с координатами (х1,х2) и (у1,у2)Решение: 1. var1 = x2 - x1 2. var2 = y2 - y1 3. var3 = var1 + var2

Слайды и текст этой презентации

Слайд 1Асинхронные параллельные процессы
Асинхронные параллельные процессы -
Абстрактное понятие, относящееся к программе.

Часто процессом называют программу и все её элементы: адресное пространство,

глобальные переменные , регистры, стек, счетчик команд, состояние, открытые файлы, дочерние процессы и т. д.


Процесс -

Параллельные процессы -

Выполняющиеся вместе процессы.

Строго независимые процессы, поэтому возникает необходимость в их синхронизации.

Асинхронные параллельные процессыАсинхронные параллельные процессы -Абстрактное понятие, относящееся к программе. Часто процессом называют программу и все её

Слайд 2Пример из САПР
Задача: Найти периметр прямоугольника с точками с координатами

(х1,х2) и (у1,у2)
Решение: 1. var1 = x2 - x1 2. var2 = y2

- y1 3. var3 = var1 + var2 4. var4 = var3 * 2

Дейкстра предложил 2 оператора parbegin и parend:

1. parbegin var1 = x2 - x1 var2 = y2 - y1 parend 2. var3 = var1 + var2 3. var4 = var3 * 2

Вывод: при распараллеливании процессов экономим время!

Пример из САПРЗадача: Найти периметр прямоугольника с точками с координатами (х1,х2) и (у1,у2)Решение:  1.	var1 = x2

Слайд 3Синхронизация процессов.
Процесс обмена сообщениями между процессами для исключения гонок и

тупиков.
Критические секции
Семафоры
Мьютексы
События
Таймеры
Способы:

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

Слайд 4Планирование процессов.
определение момента времени переключения процесса – кванта времени
выбор нового

процесса для выполнения

Планирование процессов.определение момента времени переключения процесса – кванта временивыбор нового процесса для выполнения

Слайд 5Диспетчеризация процессов.

«с приоритетом»
«карусель»
Очередь процессов – множество процессов готовых к исполнению.
Каждому

процессу присваивается приоритет, т.о. определяется жесткая очередность их выполнения.
Каждому готовому

к исполнению процессу дается равный шанс запуска.
Диспетчеризация процессов.«с приоритетом»«карусель»Очередь процессов – множество процессов готовых к исполнению.Каждому процессу присваивается приоритет, т.о. определяется жесткая очередность

Слайд 6Взаимоисключение.
процесс 1
процесс 2
процесс 4
процесс 3






Процессор
Счетчик
Если процессы могут перехватить процессор друг

у друга, то может произойти потеря данных. Во избежания этого,

необходимо ввести ВЗАИМОИСКЛЮЧЕНИЕ, то есть не разрешать перехват при обращении к разделяемым данным.
Взаимоисключение.процесс 1процесс 2процесс 4процесс 3ПроцессорСчетчикЕсли процессы могут перехватить процессор друг у друга, то может произойти потеря данных.

Слайд 7Критический участок.
это часть программы, во время выполнения которой обращения других

процессов к разделяемым ресурсам запрещены. Обрамляют критический участок 2 примитива:

входвзаимоисключение и выходвзаимоисключение.

пр 4

пр 1

пр 2

пр 3

ку

ку

ку

ку

ку

ку

ку

...

...

...

...

ку

...

ку

-критический участок процесса

-некритический участок процесса

- ожидание выхода из критической области другого процесса

...

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

Слайд 8Реализация взаимоисключения.
- на машине нет специальных команд взаимоисключение;
- скорости ассинхронных

процессов заранее неизвестны;
- процессы, находящиеся вне критических участков, не должны

мешать другим процессам входить в их собственные критические участки;
- не должно быть бесконечного откладывания момента входа процесса в критическую область

Задача: создать механизм взаимоисключений
для следующих ограничений:

Реализация взаимоисключения.- на машине нет специальных команд взаимоисключение;- скорости ассинхронных процессов заранее неизвестны;- процессы, находящиеся вне критических

Слайд 9Алгоритм Деккера (первый вариант).
NOMER_PROC=1

PROCEDURE 1

IF (NOMER_PROC = 1) DO
крит. участок
NOMER_PROC

= 2
остальные операторы
ELSE
ждать
END

PROCEDURE 2

IF (NOMER_PROC = 2) DO
крит. участок
NOMER_PROC =

1
остальные операторы
ELSE
ждать
END

Преимущества метода: просто реализуется взаимоисключение





Недостатки метода: сначала должен реализоваться процесс 1

-- возможно только поочередное вхождение процессов в критические области

-- если один процесс обращается в критическую область больше, чем другой, то это невозможно

Алгоритм Деккера (первый вариант).NOMER_PROC=1PROCEDURE 1IF (NOMER_PROC = 1) DOкрит. участокNOMER_PROC = 2остальные операторыELSEждатьENDPROCEDURE 2IF (NOMER_PROC = 2)

Слайд 10Алгоритм Деккера (второй вариант).
PR1WNYTRI=0
PR2WNYTRI=0

PROCEDURE 1

IF (PR2WNYTRI = 0)
PR1WNYTRI = 1
крит.

участок
PR1WNYTRI = 0
END

PROCEDURE 2

if (PR1WNYTRI = 0)
PR2WNYTRI = 1
крит. участок
PR2WNYTRI

= 0
END

Преимущества метода: не надо процессам чередоваться





Недостатки метода: после условия и перед присвоением значения перменной PR?WNYTRI возможен вход в критическую область обоих процессов

Алгоритм Деккера (второй вариант).PR1WNYTRI=0PR2WNYTRI=0PROCEDURE 1IF (PR2WNYTRI = 0)PR1WNYTRI = 1крит. участокPR1WNYTRI = 0ENDPROCEDURE 2if (PR1WNYTRI = 0)PR2WNYTRI

Слайд 11Алгоритм Деккера (третий вариант, усовершенствование второго).
PR1WNYTRI=0
PR2WNYTRI=0

PROCEDURE 1


PR1WNYTRI = 1
IF (PR2WNYTRI

= 0)
крит. участок
PR1WNYTRI = 0
END

PROCEDURE 2

PR2WNYTRI = 1
IF (PR1WNYTRI =

0)
крит. участок
PR2WNYTRI = 0
END

Преимущества метода: оба процесса одновременно не могут войти в критическую область





Недостатки метода: возможен тупик (бесконечное ожидание), если оба процесса установят переменные одновременно

Алгоритм Деккера (третий вариант, усовершенствование второго).PR1WNYTRI=0PR2WNYTRI=0PROCEDURE 1PR1WNYTRI = 1IF (PR2WNYTRI = 0)крит. участокPR1WNYTRI = 0ENDPROCEDURE 2PR2WNYTRI =

Слайд 12Алгоритм Деккера (четвертый вариант).
VAR MAINPR: (1,2)
PR1WANT,PR2WANT:logical
PROCEDURE 1;
BEGIN
WHILE 1 DO
BEGIN
PR1WANT:='T';
WHILE PR2WANT

DO
IF (MAINPR=2)
BEGIN
PR1WANT:='F';
WHILE (MAINPRC=2) DO;
PR1WANT:='T';
END
критический участок
MAINPR:2
PR1WANT:='F';
остальные операнды
END
END
Пояснения: процесс 1 устанавливает

флаг PR1WANT в истину (PR1WANT:='T')
- если у второго процесса флаг имеет значение F (false) то переходим к выполнению критического участка (WHILE PR2WANT DO)
- если второй процесс тоже хочет войти в КО, входим во внутренний цикл (IF (MAINPR=2)) :
- если избранный процесс – первый, пропускаем тело (IF (MAINPR=2)) и ждем, когда процесс 2 сбросит флаг
- если избранный процесс – второй, входим в тело (IF (MAINPR=2)), сбрасываем флаг первого процесса (PR1WANT:='F') и зацикливаемся пока процесс 2 не сбросит флаг (WHILE (MAINPR=2) DO), выполнив КО, т.е. сбрасывая флаг PR1WANT:='F' процесс 1 дает возможность второму процессу войти в КО.
Алгоритм Деккера (четвертый вариант).VAR MAINPR: (1,2)PR1WANT,PR2WANT:logicalPROCEDURE 1;BEGINWHILE 1 DOBEGINPR1WANT:='T';WHILE PR2WANT DOIF (MAINPR=2)BEGINPR1WANT:='F';WHILE (MAINPRC=2) DO;PR1WANT:='T';ENDкритический участокMAINPR:2PR1WANT:='F'; остальные операндыENDENDПояснения:

Слайд 13Аппаратная реализация взаимоисключения.
команда testandset


testandset(a,b) –

читает значение логической

переменной b
копирует его в a
устанавливает для b значение

истина
Аппаратная реализация взаимоисключения. команда testandsettestandset(a,b) – читает значение логической переменной b копирует его в a устанавливает для

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

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

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

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


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

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