Содержание
-
Блокировка памяти
Выполнили: Орлов П.В. Щукин М.А
-
Введение.
Все известные средства решения проблемы взаимного исключения основаны на использовании специально введенных аппаратных возможностей. Блокировка памяти относится к таким аппаратным возможностям.
-
Использование блокировки памятипри синхронизации параллельных процессов.
Блокировка памяти запрещает одновременное исполнение двух (и более) команд, которые обращаются к одной и той же ячейке памяти. Это обязательное условие функционирования компьютера.
-
Заголовок слайда
Механизм блокировки памяти предотвращает одновременный доступ к разделяемой переменной, но не предотвращает чередование доступа. Таким образом, если критические секции исчерпываются одной командой обращения к памяти, данное средство может быть достаточным для непосредственной реализации взаимного исключения.
-
Возможные проблемы при организациивзаимного исключения при условиииспользования только блокировки памяти.
Модель взаимодействующих процессов.
-
Листинг программы для первого решения.
Varперекл : integer; Beginперекл := 1: {при перекл=1 в критической секции находится процесс ПР1} Parbegin While true do Begin while перекл = 2 da begin end: CSl; { критическая секция процесса ПР1 } перекл := 2: PRl: { оставшаяся часть процесса ПР1 } End And While true do Begin while перекл = 1 do begin end; CS2; { критическая секция процесса ПР2 } перекл := 1; PR2; { оставшаяся часть процесса ПР2 } End Раrend End.
-
Листинг второго варианта реализации взаимного исключения.
Varперекл1.перекл2.: boolean; begin nepeMl:=false; nepeM2:=false; parbegin while true do begin while перекл2 do begin end; перекл1;=true; CSl { критическая секция процесса ПР1 } пepeкл1:=false; PRl { процесс ПР1 после критической секции } end and while true do begin while перекл1do begin end; перекл2:=1гие; CS2 { Критическая секция процесса ПР2 } пepeкл2:=false; PR2 { процесс ПР2 после критической секции } end parend end.
-
Листинг третьего варианта реализации взаимного исключения
varперекл!. перекл2 : boolean: begin перекл1:=fаIse; перекл2:=Та15е; parbegin ПР1: while true do begin перекл1:=true: while перекл2 do begin end; CSl { критическая секция процесса ПР1 } перекл1:=Та1$е; PR1 { ПР1 после критической секции } end and ПР2: while true do begin перекл2:Чгие: while перекл1do begin end; CS2 { критическая секция процесса ПР2 } пepeкл2:=false; PR2 { ПР2 после критической секции } end parend end.
Нет комментариев для данной презентации
Помогите другим пользователям — будьте первым, кто поделится своим мнением об этой презентации.