Содержание
- 2. Параллельные процессы
- 3. Взаимодействующие процессы
- 4. Взаимодействующие процессы Независимые процессы имеют свое множество переменных и ресурсов. Другие процессы не могут изменить значения
- 5. Использование общего ресурса В результате прерывания последовательность действий обеих программ может измениться. Пусть Count = 10
- 6. Проблема критического участка Общий ресурс, совместно используемый несколькими параллельными процессами, получил название – критический ресурс. Часть
- 7. Методы взаимоисключения Используется множество методов взаимоисключения взаимодействующих параллельных процессов в критических участках: - взаимное исключение с
- 8. Параллельные процессы без взаимоисключения Cobegin (нач. установка) PROC1; PROC2; coend 1 2 3 4 (переменные управления
- 9. Взаимоисключение строгим чередованием процессов var NP: 1,2; Begin NP:=1; cobegin PROC1; PROC2; coend; end. 1 2
- 10. Попытка взаимоисключение с использованием флагов var C1, C2: boolean; Begin C1:=false; C2:=false; cobegin PROC1; PROC2; coend;
- 11. Алгоритм Деккера VAR C1,C2:Boolean; NP:1,2; begin NP:=1; C1:=FALSE; C2:=FALSE; Cobegin PROC1; PROC2; coend; end.
- 12. Алгоритм Петерсона var C1, C2: boolean; var NP:1,2; begin C1:=false; C2:=false; cobegin PROC1; PROC2; coend; end.
- 13. Взаимоисключение операцией проверка и установка (Test and Set) begin Common:=false; cobegin PROC1; PROC2; coend; end. 1
- 14. Операция Test and Set Procedure TS (Лок, Общ); begin Лок:=Общ; Общ:=TRUE; end; Общ:=false; (критич. участок свободен)
- 15. Семафоры Семафоры, как средство синхронизации параллельных процессов, предложил голландский математик Э. Дейкстра (E. W. Dijkstra) в
- 16. Свойства числового семафора Работу числового семафора можно сравнить с работой автоматизиро-ванной двери, которая открывается, если бросить
- 17. Логический семафор - mutex Вместо числовой переменной S.C может использоваться переменная логического типа. Такой логический семафор
- 18. Взаимоисключение числовым семафором VAR S:Semaphore; begin S.C:=1; cobegin PROC1; PROC2; coend; end.
- 19. Синхронизация процессов «Главный – Подчиненный» VAR Event:Semaphore; begin Event.C:=0; cobegin MASTER; SLAVE; coend; end. Обратите внимание,
- 20. Синхронизация процессов «Производитель – Потребитель» VAR Buf:Record; Start,Finish:Semaphore; begin Start.C:=0; Finish.C:=1; cobegin Repeat PRODUSER Until FALSE;
- 21. «Производитель – Потребитель» множественный буфер VAR Buf:array [1..N] of Record; Full,Empty,S:Semaphore; begin S.C:=1; Full.C:= ; Empty.C:=
- 22. «Читатели – Писатели» с приоритетом читателей VAR Nrdr:integer; W,R:Semaphore; Begin Nrdr:=0; W.C:=1; R.C:=1; cobegin Repeat READER
- 24. Скачать презентацию