Введение.Все известные средства решения проблемы взаимного исключения основаны на использовании специально введенных аппаратных возможностей.Блокировка памяти относится к таким аппаратным возможностям.
Слайд 2
Введение. Все известные средства решения проблемы взаимного исключения основаны
на использовании специально введенных аппаратных возможностей. Блокировка памяти относится к
таким аппаратным возможностям.
Слайд 3
Использование блокировки памяти
при синхронизации параллельных процессов. Блокировка памяти запрещает
одновременное исполнение двух (и более) команд, которые обращаются к
одной и той же ячейке памяти. Это обязательное условие функционирования компьютера.
Слайд 4
Заголовок слайда Механизм блокировки памяти предотвращает одновременный доступ к
разделяемой переменной, но не предотвращает чередование доступа. Таким образом,
если критические секции исчерпываются одной командой обращения к памяти, данное средство может быть достаточным для непосредственной реализации взаимного исключения.
Слайд 5
Возможные проблемы при организации
взаимного исключения при условии
использования только
блокировки памяти. Модель взаимодействующих процессов.
Слайд 6
Листинг программы для первого решения. 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.
Слайд 7
Листинг второго варианта реализации взаимного исключения. 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 перекл1 do begin end; перекл2:=1гие; CS2 { Критическая секция процесса ПР2 } пepeкл2:=false; PR2 { процесс ПР2 после критической секции } end parend end.