Разделы презентаций


Концепция процесса

Содержание

5. Концепция процесса 2002 v.0.1Концепция процесса (2)Процесс – это действия «машины» при выполнении программыНесколько процессов могут выполняться «машиной» параллельно во времени На длительность процесса и скорость его развития не накладывается никаких ограничений

Слайды и текст этой презентации

Слайд 15. Концепция процесса 2002 v.0.1
5. Концепция процесса
Цель:
формализовать процессы, происходящие при выполнении

программ реального времени, повысить уровень представления;
на основе предложенных формализмов создать

высокоуровневые средства надежного программирования СРВ
5. Концепция процесса		2002 v.0.15. Концепция процессаЦель:формализовать процессы, происходящие при выполнении программ реального времени, повысить уровень представления;на основе

Слайд 25. Концепция процесса 2002 v.0.1
Концепция процесса (2)
Процесс – это действия «машины»

при выполнении программы
Несколько процессов могут выполняться «машиной» параллельно во времени


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

Концепция процесса – систем взглядов, положенная в основу подхода к построению средств реализации СРВ

5. Концепция процесса		2002 v.0.1Концепция процесса (2)Процесс – это действия «машины» при выполнении программыНесколько процессов могут выполняться «машиной»

Слайд 35. Концепция процесса 2002 v.0.1
«Машина» (виртуальная машина) – модель, реализующая пользовательское

представление некоторой вычислительной среды
Si– программа на языке Si, (S1 –

ЯВУ, S2 – Assembler, S3 – машинный код)
Мi – виртуальная машина, реализующая эту программу - Paskal-машина, Assembler-машина, «железо»)

( Вейдерман, 1971 год – Иерархия виртуальных машин:

Концепция процесса (3)

5. Концепция процесса		2002 v.0.1«Машина» (виртуальная машина) – модель, реализующая пользовательское представление некоторой вычислительной средыSi– программа на языке

Слайд 45. Концепция процесса 2002 v.0.1
Концепция процесса (4)
Процесс 1
«Виртуальная машина»
Процесс N
. .

.
«Виртуальная машина»
обеспечивает параллельное выполнение процессов
Процесс
описывется программой на некотором языке (например

– задача (task) для «ADA-машины» , нитка (thread) для «Java – машины», задача многозадачной ОС)
5. Концепция процесса		2002 v.0.1Концепция процесса (4)Процесс 1«Виртуальная машина»Процесс N. . .«Виртуальная машина»обеспечивает параллельное выполнение процессовПроцессописывется программой на

Слайд 55. Концепция процесса 2002 v.0.1
Представление процессов
S1
Sn
Parbegin S1; . . . Sn

Parend;
S1
S2
S3
S4
Parbegin
begin
Parbegin

S1;S2;
Parend;
S3;
end;
S4;
Parend;
5. Концепция процесса		2002 v.0.1Представление процессовS1SnParbegin S1; . . . Sn Parend;S1S2S3S4Parbegin  begin   Parbegin

Слайд 65. Концепция процесса 2002 v.0.1
Синхронизация процессов
Parbegin
f(5);
f(7);
Parend;
procedure

f(I: integer);
var C: integer;
while(true);

C:= A;
doSomething(C); { C:= C+I }
A:= C;
doSomethingElse();
endwhile;
endproc;


f(5)

f(7)

A

5. Концепция процесса		2002 v.0.1Синхронизация процессовParbegin  f(5);  f(7);Parend; procedure f(I: integer);  var C: integer;

Слайд 75. Концепция процесса 2002 v.0.1
Синхронизация – выполнение заданных временных соотношений между

процессами
Процесс А

t
ta1
a1


ta1
Процесс B

t
tb1
b1


tb1

Синхронизация процессов (2)

5. Концепция процесса		2002 v.0.1Синхронизация – выполнение заданных временных соотношений между процессамиПроцесс Аtta1a1 ta1Процесс Bttb1b1 tb1Синхронизация процессов (2)

Слайд 85. Концепция процесса 2002 v.0.1

Взаимная блокировка (тупик, deadlock)
Занять X
Задача А
t
Освободить X
Задача

B
Занять Y
Освободить X
Занять Y
Занять X
Освободить Y

Освободить Y

Ресурс X
Ресурс Y
1
2
3
4
5
6
7
8
4
3
2
1
5
6
7
8

А
В

5. Концепция процесса		2002 v.0.1Взаимная блокировка (тупик, deadlock)Занять XЗадача АtОсвободить XЗадача BЗанять YОсвободить XЗанять YЗанять XОсвободить YОсвободить YРесурс

Слайд 95. Концепция процесса 2002 v.0.1
Процесс А

t
ta
КС1


ta
Процесс B

t
tb

tb
КС2

а) недопустимо одновременное

выполнение критических секций КС1 и КС2;
б) ни одна из задач

не должна ждать входа в свою критическую секцию бесконечно долго (блокировка недопустима )
Попытка алгоритмического решения - Алгоритм Деккера

Задача взаимного исключения

5. Концепция процесса		2002 v.0.1Процесс АttaКС1 taПроцесс Bttb tbКС2а) недопустимо одновременное выполнение критических секций КС1 и КС2;б) ни

Слайд 105. Концепция процесса 2002 v.0.1
Алгоритм Деккера - вспомогательная схема 1
var Очередь:

1,2;
Очередь:= 1;

Parbegin
loop
while(Очередь = 2)


endwhile;
КС_1;
Очередь:= 2;
Остальное_1;
endloop;

loop
while(Очередь = 1)
endwhile;
КС_2;
Очередь:= 1;
Остальное_2;
endloop;
Parend.

5. Концепция процесса		2002 v.0.1Алгоритм Деккера - вспомогательная схема 1var Очередь: 1,2;Очередь:= 1; Parbegin  loop

Слайд 115. Концепция процесса 2002 v.0.1
Алгоритм Деккера, вспомогательная схема 1
Вспомогательная схема 1:

задача не решена
а) при остановке одного из процессов второй процесс

блокируется; причина – разделяемая переменная Очередь.
Однако
б) одновременное выполнение критических секций невозможно, т.к. вход к КCi строго контролируется переменной Очередь
б’) следует обратить внимание на то, что выполнение процессов строго чередуется.
5. Концепция процесса		2002 v.0.1Алгоритм Деккера, вспомогательная схема 1Вспомогательная схема 1: задача не решенаа) при остановке одного из

Слайд 125. Концепция процесса 2002 v.0.1
Алгоритм Деккера - вспомогательная схема 2
var с1,с2:

занят,свободен;
с1:= свободен; с2:= свободен

Parbegin
loop
с1:= занят; {*}

while(с2=занят)
endwhile;
КС_1;
с1:= свободен;
Остальное_1;
endloop;

loop
с2:= занят; {*}
while(с1=занят)
endwhile;
КС_2;
с2:= свободен;
Остальное_2;
endloop;
Parend.

5. Концепция процесса		2002 v.0.1Алгоритм Деккера - вспомогательная схема 2var с1,с2: занят,свободен;с1:= свободен; с2:= свободен Parbegin loop

Слайд 135. Концепция процесса 2002 v.0.1
Вспомогательная схема 2: задача не решена
а) при

одновременном выполнении действий {*} происходит блокировка
Однако
б) одновременное выполнение критических

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

Алгоритм Деккера, вспомогательная схема 2

5. Концепция процесса		2002 v.0.1Вспомогательная схема 2: задача не решенаа) при одновременном выполнении действий {*} происходит блокировка Однакоб)

Слайд 145. Концепция процесса 2002 v.0.1


Алгоритм Деккера, реализация
Parbegin
loop
с1:= занят;

{*}
while(с2=занят)
if(Очередь=2)

с1:= свободен
endif;
while(c2=занят) endwhile;
с1:= занят;
endwhile;
КС_1;
с1:= свободен; Очередь:=2
Остальное_1;
endloop;

loop
с2:= занят; {*}
while(с1=занят)
if(Очередь=1)
с2:= свободен
endif;
while(c1=занят) endwhile;
с2:= занят;
endwhile;
КС_2;
с2:= свободен; Очередь:=1
Остальное_2;
endloop;
Parend.



{**}

{**}

5. Концепция процесса		2002 v.0.1Алгоритм Деккера, реализацияParbegin loop  с1:= занят; {*}  while(с2=занят)   if(Очередь=2)

Слайд 155. Концепция процесса 2002 v.0.1
Алгоритм Деккера, реализация (2)
а) В теле цикла

{**} параметр цикла не изменяется, т.е. цикл {**} можно представить

как «занятое ожидание» -
while(c=занят) A endwhile.
В этих условиях рассматриваемый алгоритм аналогичен Схеме 2, которая обеспечивает взаимное исключение
б) При одновременном выполнении операторов {*} «работает» переменная Очередь, позволяющая разблокировать один из процессов. Недостаток Схемы 2 ликвидирован
в) Остановка одного из процессов вне критической секции не блокирует другой процесс. Ни один из процессов не будет ждать бесконечно долго входа в свою КС


5. Концепция процесса		2002 v.0.1Алгоритм Деккера, реализация (2)а) В теле цикла {**} параметр цикла не изменяется, т.е. цикл

Слайд 165. Концепция процесса 2002 v.0.1
Некоторые выводы
Задача решена, показана принципиальная возможность обеспечения

взаимного исключения алгоритмическим путем, однако, практического значения представленное решение не

имеет
Необходимы МЕХАНИЗМЫ, позволяющие надежно (обеспечивая невозможность блокировки) решать проблемы синхронизации (надо усложнять «виртуальную машину»)
Для СРВ такие механизмы не должны влиять на предсказуемость поведения системы (например, Java-машина не удовлетворяет этому условию)
5. Концепция процесса		2002 v.0.1Некоторые выводыЗадача решена, показана принципиальная возможность обеспечения взаимного исключения алгоритмическим путем, однако, практического значения

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

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

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

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


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

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