- •НИУ ВШЭ – Пермь
- •Понятие информационной системы
- •Понятие корпоративной информационной системы
- •Эволюция информационных систем и технологий
- •Понятие процесса
- •Понятие ресурса
- •Развитие процессов в ИС
- •Развитие процессов в ИС
- •Развитие процессов в ИС
- •Развитие процессов в ИС
- •Развитие процессов в ИС
- •Проблема взаимного исключения: пример
- •Проблема взаимного исключения: пример
- •Проблема взаимного исключения: пример
- •Проблема взаимного исключения: пример
- •Проблема взаимного исключения: пример
- •Проблема взаимного исключения: пример
- •Проблема взаимного исключения: пример
- •Проблема взаимного исключения: пример
- •Понятие критической секции
- •Свойства критической секции
- •Свойства критической секции
- •Свойства критической секции
- •Свойства критической секции
- •Свойства критической секции
- •Условия реализации критической секции
- •Условия реализации критической секции
- •Простейший пример критической секции
- •Простейший пример критической секции
- •Простейший пример критической секции
- •Программные методы решения: вариант 1
- •Программные методы решения: вариант 1
- •Программные методы решения: вариант 1
- •Программные методы решения: вариант 2
- •Программные методы решения: вариант 2
- •Программные методы решения: вариант 2
- •Программные методы решения: вариант 2
- •Программные методы решения: вариант 2
- •Программные методы решения: вариант 2
- •Программные методы решения: вариант 2
- •Программные методы решения: вариант 2
- •Программные методы решения: вариант 2
- •Программные методы решения: вариант 3
- •Программные методы решения: вариант 3
- •Программные методы решения: вариант 3
- •Программные методы решения: вариант 3
- •Программные методы решения: вариант 3
- •Программные методы решения: вариант 3
- •Программные методы решения: вариант 3
- •Программные методы решения:
- •Программные методы решения: вариант 5 – алгоритм Деккера
- •Программные методы решения: вариант 5 – алгоритм Деккера
- •Программные методы решения: вариант 5 – алгоритм Деккера
- •Программные методы решения: вариант 5 – алгоритм Деккера
- •Программные методы решения: вариант 5 – алгоритм Деккера
- •Программные методы решения: вариант 5 – алгоритм Деккера
- •Программные методы решения: вариант 5 – алгоритм Деккера
- •Программные методы решения: вариант 5 – алгоритм Деккера
- •Программные методы решения: вариант 5 – алгоритм Деккера
- •Программные методы решения: вариант 5 – алгоритм Деккера
- •Программные методы решения: вариант 5 – алгоритм Деккера
- •Недостатки программных методов
- •Современные методы решения проблемы взаимного исключения
- •Современные методы решения проблемы взаимного исключения
- •Блокирующие функции
- •Блокирующие функции
- •Блокирующие функции
- •Аппаратная поддержка выполнения блокирующих функций
- •Блокирование файлов при создании или открытии
- •Современные методы решения проблемы взаимного исключения
- •Современные методы решения проблемы взаимного исключения
- •Понятие семафора
- •Семафорные примитивы
- •Семафорные примитивы
- •Семафорные примитивы
- •Решение проблемы взаимного исключения с помощью семафоров
- •Реализация отношения предшествования с помощью семафоров
- •Реализация отношения предшествования с помощью семафоров
- •Реализация отношения предшествования с помощью семафоров
- •Объекты диспетчеризации и синхронизация процессов
- •Использованные источники:
Программные методы решения: вариант 1
Процедура
инициализации procedure INIT; common integer begin
N := 1 ; start(P1) ;
start(P2) end INIT .
Устанавливает очерёдность выполнения критической секции.
Все ли требования к процесс
критической секции выполняются?
begin
while true do begin
BEFORE1 ;
while N = 2 do ;
CS1 ;
N := 2 ;
AFTER1 ;
end end P1 .
integer N ;
begin
while true do begin
BEFORE2 ;
while N = 1 do ;
CS2 ;
N := 1 ;
AFTER2 ;
end end P2 .
31
Программные методы решения: вариант 1
Процедура
инициализации procedure INIT; common integer N ; begin
N := 1 ; start(P1) ;
start(P2) end INIT .
Первый процесс |
Второй процесс |
process P1; |
process P2; |
common integer N ; |
common integer N ; |
begin |
begin |
while true do |
while true do |
begin |
begin |
BEFORE1 ; |
BEFORE2 ; |
while N = 2 do ; |
while N = 1 do ; |
CS1 ; |
CS2 ; |
N := 2 ; |
N := 1 ; |
AFTER1 ; |
AFTER2 ; |
end |
end |
end P1 . |
end P2 . |
32
Программные методы решения: вариант 1
procedure common begin
N := 1 start(P1) ;
start(P2) end INIT .
Может оказаться, что процесс, не требующий монопольного использования ресурса, блокирует работу другого процесса, которому необходимо
выполнить критическую секцию N ;
begin |
begin |
BEFORE1 ; |
BEFORE2 ; |
while N = 2 do ; |
while N = 1 do ; |
CS1 ; |
CS2 ; |
N := 2 ; |
N := 1 ; |
AFTER1 ; |
AFTER2 ; |
end |
end |
end P1 . |
end P2 . |
33
Программные методы решения: вариант 2
Процедура
инициализации
procedure INIT;
common boolean C1,C2 ; begin
C1 := false ;
C2 := false ; start(P1) ;
start(P2) end INIT .
Первый процесс
process P1;
common boolean C1,C2 ; begin
while true do begin
BEFORE1 ;
while C2 do ; C1 := true ;
CS1 ;
C1 := false ; AFTER1 ;
end end P1 .
Второй процесс
process P2;
common boolean C1,C2 ; begin
while true do begin
BEFORE2 ;
while C1 do ; C2 := true ;
CS2 ;
C2 := false ; AFTER2 ;
end end P2 .
34
Программные методы решения: вариант 2
Процедура
инициализации
procedure INIT; common boolean begin
C1 := false ;
C2 := false ; start(P1) ;
start(P2) end INIT .
Устанавливается признак занятости критической секции.
Все ли требования к критической секции процесс
выполняются?
C1,C2 ;
begin BEFORE1 ;
while C2 do ; C1 := true ;
CS1 ;
C1 := false ; AFTER1 ;
end end P1 .
begin BEFORE2 ;
while C1 do ; C2 := true ;
CS2 ;
C2 := false ; AFTER2 ;
end end P2 .
35
Программные методы решения: вариант 2
Процедура
инициализации
procedure INIT;
common boolean C1,C2 ; begin
C1 := false ;
C2 := false ; start(P1) ;
start(P2) end INIT .
Первый процесс
process P1;
common boolean C1,C2 ; begin
while true do begin
BEFORE1 ;
while C2 do ; C1 := true ;
CS1 ;
C1 := false ; AFTER1 ;
end end P1 .
Второй процесс
process P2;
common boolean C1,C2 ; begin
while true do begin
BEFORE2 ;
while C1 do ; C2 := true ;
CS2 ;
C2 := false ; AFTER2 ;
end end P2 .
36
Программные методы решения: вариант 2
Процедура
инициализации
procedure INIT;
common boolean C1,C2 ; begin
C1 := false ;
C2 := false ; start(P1) ;
start(P2) end INIT .
Первый процесс
process P1;
common boolean C1,C2 ; begin
while true do begin
BEFORE1 ;
while C2 do ; C1 := true ;
CS1 ;
C1 := false ; AFTER1 ;
end end P1 .
Второй процесс
process P2;
common boolean C1,C2 ; begin
while true do begin
BEFORE2 ;
while C1 do ; C2 := true ;
CS2 ;
C2 := false ; AFTER2 ;
end end P2 .
37
Программные методы решения: вариант 2
Процедура
инициализации
procedure INIT;
common boolean C1,C2 ; begin
C1 := false ;
C2 := false ; start(P1) ;
start(P2) end INIT .
Первый процесс
process P1;
common boolean C1,C2 ; begin
while true do begin
BEFORE1 ;
while C2 do ; C1 := true ;
CS1 ;
C1 := false ; AFTER1 ;
end end P1 .
Второй процесс
process P2;
common boolean C1,C2 ; begin
while true do begin
BEFORE2 ;
while C1 do ; C2 := true ;
CS2 ;
C2 := false ; AFTER2 ;
end end P2 .
38
Программные методы решения: вариант 2
Процедура
инициализации
procedure INIT;
common boolean C1,C2 ; begin
C1 := false ;
C2 := false ; start(P1) ;
start(P2) end INIT .
Первый процесс
process P1;
common boolean C1,C2 ; begin
while true do begin
BEFORE1 ;
while C2 do ; C1 := true ;
CS1 ;
C1 := false ; AFTER1 ;
end end P1 .
Второй процесс
process P2;
common boolean C1,C2 ; begin
while true do begin
BEFORE2 ;
while C1 do ; C2 := true ;
CS2 ;
C2 := false ; AFTER2 ;
end end P2 .
39
Программные методы решения: вариант 2
Процедура
инициализации
procedure INIT;
common boolean C1,C2 ; begin
C1 := false ;
C2 := false ; start(P1) ;
start(P2) end INIT .
Первый процесс
process P1;
common boolean C1,C2 ; begin
while true do begin
BEFORE1 ;
while C2 do ; C1 := true ;
CS1 ;
C1 := false ; AFTER1 ;
end end P1 .
Второй процесс
process P2;
common boolean C1,C2 ; begin
while true do begin
BEFORE2 ;
while C1 do ; C2 := true ;
CS2 ;
C2 := false ; AFTER2 ;
end end P2 .
40
