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

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


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

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

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

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

Презентация на тему Взаимодействующие параллельные процессы

Содержание

Параллельные процессы
Взаимодействующие параллельные процессы Параллельные процессы Взаимодействующие процессы Взаимодействующие процессыНезависимые процессы имеют свое множество переменных и ресурсов. Другие процессы не Использование общего ресурсаВ результате прерывания последовательность действий обеих программ может измениться. Пусть Проблема критического участка    Общий ресурс, совместно используемый несколькими параллельными Методы взаимоисключения    Используется множество методов взаимоисключения взаимодействующих параллельных процессов Параллельные процессы без взаимоисключенияCobegin(нач. установка) PROC1; PROC2;coend1234(переменные управления взаимоисключением) Взаимоисключение строгим чередованием процессовvar NP: 1,2;Begin  NP:=1; cobegin PROC1; PROC2; coend;end.1234 Попытка взаимоисключение с использованием флаговvar C1, C2: boolean;Begin  C1:=false; C2:=false; cobegin PROC1; PROC2; coend;end.1234 Алгоритм ДеккераVAR C1,C2:Boolean; NP:1,2;beginNP:=1;C1:=FALSE; C2:=FALSE;Cobegin  PROC1; PROC2;  coend;end. Алгоритм Петерсонаvar C1, C2: boolean; var NP:1,2;begin  C1:=false; C2:=false; cobegin PROC1; PROC2;  coend;end.1234 Взаимоисключение операцией проверка и установка (Test and Set)begin Common:=false;cobegin PROC1; PROC2; coend;end.1234Var Операция Test and SetProcedure TS (Лок, Общ);begin	Лок:=Общ;	Общ:=TRUE;end;Общ:=false;(критич. участок свободен)Лок1:=True;While Лок1 do TS(Лок1,Общ); Семафоры    Семафоры, как средство синхронизации параллельных процессов, предложил голландский Свойства числового семафора   Работу числового семафора можно сравнить с работой Логический семафор - mutex    Вместо числовой переменной S.C может Взаимоисключение числовым семафоромVAR S:Semaphore;beginS.C:=1;cobegin PROC1; PROC2;coend;end. Синхронизация процессов «Главный – Подчиненный»VAR Event:Semaphore;beginEvent.C:=0;cobegin MASTER; SLAVE; coend;end.   Обратите Синхронизация процессов «Производитель – Потребитель»VAR Buf:Record;  Start,Finish:Semaphore;beginStart.C:=0; Finish.C:=1;cobegin Repeat PRODUSER Until «Производитель – Потребитель» множественный буферVAR Buf:array [1..N] of Record;  Full,Empty,S:Semaphore;beginS.C:=1; «Читатели – Писатели» с приоритетом читателейVAR Nrdr:integer; W,R:Semaphore;Begin  Nrdr:=0; W.C:=1; R.C:=1;cobegin «Читатели – Писатели» с приоритетом писателейVAR Nrdr:integer; W,R,S:Semaphore;Begin  Nrdr:=0; W.C:=1; R.C:=1;
Слайды презентации

Слайд 2 Параллельные процессы

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

Слайд 3 Взаимодействующие процессы

Взаимодействующие процессы

Слайд 4 Взаимодействующие процессы
Независимые процессы имеют свое множество переменных и

Взаимодействующие процессыНезависимые процессы имеют свое множество переменных и ресурсов. Другие процессы

ресурсов. Другие процессы не могут изменить значения переменных этого

процесса.

Взаимодействующие процессы – совместно используют общие ресурсы, и выполнение одного процесса влияет на результат другого. Ресурсами могут быть области памяти, файлы данных, ВУ и т.д.

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

Слайд 5 Использование общего ресурса

В результате прерывания последовательность действий обеих

Использование общего ресурсаВ результате прерывания последовательность действий обеих программ может измениться.

программ
может измениться. Пусть Count = 10 и эта

последовательность станет
1-4-5-6-2-3.


1 CX = 10
4 CX = 10
5 CX = 9
6 Count = 9
CX = 11
Count = 11

Правильное значение CX = 10 Эта ситуация называется коллизией.
Работа с Count не является единой неделимой операцией.

1 inc Count 2 dec Count


Слайд 6 Проблема критического участка
Общий ресурс,

Проблема критического участка  Общий ресурс, совместно используемый несколькими параллельными процессами,

совместно используемый несколькими параллельными процессами, получил название – критический

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

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


Слайд 7 Методы взаимоисключения
Используется множество методов

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

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

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

Слайд 8 Параллельные процессы без взаимоисключения
Cobegin
(нач. установка)
PROC1; PROC2;
coend

1





2

3






4
(переменные управления

Параллельные процессы без взаимоисключенияCobegin(нач. установка) PROC1; PROC2;coend1234(переменные управления взаимоисключением)

взаимоисключением)


Слайд 9 Взаимоисключение строгим чередованием процессов
var NP: 1,2;
Begin
NP:=1;

Взаимоисключение строгим чередованием процессовvar NP: 1,2;Begin NP:=1; cobegin PROC1; PROC2; coend;end.1234

cobegin
PROC1; PROC2; coend;
end.
1





2

3






4


Слайд 10 Попытка взаимоисключение с использованием флагов
var C1, C2: boolean;
Begin

Попытка взаимоисключение с использованием флаговvar C1, C2: boolean;Begin C1:=false; C2:=false; cobegin PROC1; PROC2; coend;end.1234


C1:=false; C2:=false;
cobegin
PROC1; PROC2; coend;
end.
1





2


3





4


Слайд 11 Алгоритм Деккера
VAR C1,C2:Boolean; NP:1,2;
begin
NP:=1;
C1:=FALSE; C2:=FALSE;
Cobegin PROC1; PROC2;

Алгоритм ДеккераVAR C1,C2:Boolean; NP:1,2;beginNP:=1;C1:=FALSE; C2:=FALSE;Cobegin PROC1; PROC2; coend;end.

coend;
end.


Слайд 12 Алгоритм Петерсона
var C1, C2: boolean; var NP:1,2;
begin

Алгоритм Петерсонаvar C1, C2: boolean; var NP:1,2;begin C1:=false; C2:=false; cobegin PROC1; PROC2; coend;end.1234

C1:=false; C2:=false; cobegin PROC1; PROC2; coend;
end.
1





2



3





4


Слайд 13 Взаимоисключение операцией проверка и установка (Test and Set)
begin

Взаимоисключение операцией проверка и установка (Test and Set)begin Common:=false;cobegin PROC1; PROC2;

Common:=false;
cobegin PROC1; PROC2; coend;
end.
1








2


3




4

Var Common:boolean;
Procedure TS (Лок, Общ);

begin Лок:=Общ;
Общ:=true; end;

Слайд 14 Операция Test and Set
Procedure TS (Лок, Общ);
begin
Лок:=Общ;
Общ:=TRUE;
end;
Общ:=false;
(критич. участок

Операция Test and SetProcedure TS (Лок, Общ);begin	Лок:=Общ;	Общ:=TRUE;end;Общ:=false;(критич. участок свободен)Лок1:=True;While Лок1 do

свободен)
Лок1:=True;
While Лок1 do TS(Лок1,Общ);
true

false
false <- false
false true


Общ:=true;
(критич. Участок занят)
Лок2:=True;
While Лок2 do TS(Лок2,Общ);
true true
true <- true
true true

Команда BTS источник, индекс
Переносит бит по адресу источник[индекс] -> CF (Лок),
Затем бит источник[индекс]<- 1 (Общ).

L: BTS M, 1 ; вход
JC L ; взаимоисключения
; критическая секция
AND M, 0B ; выход взаимоисключения


Слайд 15 Семафоры
Семафоры, как средство синхронизации

Семафоры  Семафоры, как средство синхронизации параллельных процессов, предложил голландский математик

параллельных процессов, предложил голландский математик Э. Дейкстра (E. W.

Dijkstra) в 1965 г.
Семафор S это агрегат данных, который состоит из счетчика с целыми значениями S.C и очереди процессов S.Q, ждущих входа в критический участок. При создании семафора счетчик принимает начальное значение
C >= 0, а очередь – пустая.
Две операции над числовыми семафорами.

Слайд 16 Свойства числового семафора
Работу числового семафора

Свойства числового семафора  Работу числового семафора можно сравнить с работой

можно сравнить с работой автоматизиро-ванной двери, которая открывается, если

бросить жетон. Жетон пропускает только одного человека. Жетон бросает не тот, кто проходит, а другой.

Свойства числовых семафоров.

Пусть C0 – начальное значение S.C, nP и nV – общее число выполнения операций P(S) и V(S).
Тогда:
- текущее значение счетчика семафора: S.C = C0 – nP + nV;
- число процессов в состоянии ожидания: nB = max(0,–S.C);
- число форсирований: nF = min(nP,C0–nV).
Последний параметр показывает насколько nP больше nV. По аналогии с автоматической дверью nF дает знать, что количество прошедших равно наименьшему из двух чисел, одно из которых есть общее количество опущенных жетонов C0+nV(S), а другое – число желающих пройти дверь.


Слайд 17 Логический семафор - mutex
Вместо

Логический семафор - mutex  Вместо числовой переменной S.C может использоваться

числовой переменной S.C может использоваться переменная логического типа. Такой

логический семафор получил название мьютекс (mutex – MUtual EXclusion semaphor, семафор взаимного исключения).
S.C принимает значения TRUE и FALSE, а операции P(S) и V(S) выражаются действиями:

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


Слайд 18 Взаимоисключение числовым семафором
VAR S:Semaphore;
begin
S.C:=1;
cobegin
PROC1;
PROC2;
coend;
end.

Взаимоисключение числовым семафоромVAR S:Semaphore;beginS.C:=1;cobegin PROC1; PROC2;coend;end.

Слайд 19 Синхронизация процессов «Главный – Подчиненный»
VAR Event:Semaphore;
begin
Event.C:=0;
cobegin MASTER; SLAVE;

Синхронизация процессов «Главный – Подчиненный»VAR Event:Semaphore;beginEvent.C:=0;cobegin MASTER; SLAVE; coend;end.  Обратите

coend;
end.
Обратите внимание, что здесь начальное значение

счетчика семафора Event (событие) равно 0, т.е. семафор закрыт. Операция P(Event) переводит главный процесс в состояние «Ожидание», если значение семафора не было изменено. Открыть семафор может подчиненный процесс, сменив значение счетчика на 1, если подчиненный процесс выполнит V(Event) раньше.

Слайд 20 Синхронизация процессов «Производитель – Потребитель»
VAR Buf:Record;
Start,Finish:Semaphore;
begin
Start.C:=0;

Синхронизация процессов «Производитель – Потребитель»VAR Buf:Record; Start,Finish:Semaphore;beginStart.C:=0; Finish.C:=1;cobegin Repeat PRODUSER Until

Finish.C:=1;
cobegin
Repeat PRODUSER Until FALSE;
Repeat CONSUMER Until FALSE;
coend;
end.
Обратите

внимание на начальные значения счетчиков семафоров.

Слайд 21 «Производитель – Потребитель» множественный буфер
VAR Buf:array [1..N] of

«Производитель – Потребитель» множественный буферVAR Buf:array [1..N] of Record; Full,Empty,S:Semaphore;beginS.C:=1;

Record;
Full,Empty,S:Semaphore;
begin
S.C:=1; Full.C:= ;

Empty.C:= ;
cobegin
Repeat PRODUSER Until FALSE;
Repeat CONSUMER Until FALSE;
coend;
end.

Слайд 22 «Читатели – Писатели» с приоритетом читателей
VAR Nrdr:integer; W,R:Semaphore;
Begin

«Читатели – Писатели» с приоритетом читателейVAR Nrdr:integer; W,R:Semaphore;Begin Nrdr:=0; W.C:=1; R.C:=1;cobegin

Nrdr:=0; W.C:=1; R.C:=1;
cobegin
Repeat READER Until FALSE;
. .

.
Repeat READER Until FALSE;
Repeat WRITER Until FALSE;
. . .
Repeat WRITER Until FALSE;
coend; end.

  • Имя файла: vzaimodeystvuyushchie-parallelnye-protsessy.pptx
  • Количество просмотров: 142
  • Количество скачиваний: 0
- Предыдущая Боди-арт