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


Двоичный семафор

6. Механизм семафоров 2002 v.0.2Двоичный семафор, особенностиПри обработке описания семафора S с ним связывается очередь заблокированных процессов; очередь обслуживается в соответствии с определенной дисциплиной, не допускающей бесконечного ожидания процесса (например, FIFO) При

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

Слайд 16. Механизм семафоров 2002 v.0.2



6. Механизм семафоров Двоичный семафор
Type ДвСемафор = 0..1;


Множество значений:
Множество действий:
Var S: ДвСемафор;
P(S):
if(S=0) then ждать(S>0);

S:= 0;
V(S):
S:= 1;
6. Механизм семафоров		2002 v.0.26. Механизм семафоров Двоичный семафорType ДвСемафор = 0..1; Множество значений:Множество действий:Var S: ДвСемафор;P(S):

Слайд 26. Механизм семафоров 2002 v.0.2
Двоичный семафор, особенности
При обработке описания семафора S

с ним связывается очередь заблокированных процессов; очередь обслуживается в соответствии

с определенной дисциплиной, не допускающей бесконечного ожидания процесса (например, FIFO)
При S=0 операция ждать(S>0) блокирует процесс, вызвавший P–операцию и и ставит его в очередь до момента выполнения условия S>0;
При выполнении V–операции активизируется первый процесс из очереди; продолжение этого процесса происходит с действия S:=0 приостановленной P–операции
P и V операции над семафором S являются неделимыми (могут выполняться только одним процессом)
6. Механизм семафоров		2002 v.0.2Двоичный семафор, особенностиПри обработке описания семафора S с ним связывается очередь заблокированных процессов; очередь

Слайд 36. Механизм семафоров 2002 v.0.2
Обеспечение взаимного исключения
Var S: ДвСемафор = 1;
Ri:

Begin
loop
P(S);

КС_I;
V(S);
Остальное_I;
endloop;
End;

Parbegin
R1;. . .Rn;
Parend.

P и V операции неделимы; т.е. выполнять P(S) может только один процесс ;
Если один из процессов выполнил P(S) и вошел в свою КС, то S=0 и все остальные процессы, выполняющие P(S), будут блокироваться. Т.е взаимное исключение обеспечено
При выполнении V(S) соблюдается очередность, т.е. никто не будет ждать бесконечно долго

6. Механизм семафоров		2002 v.0.2Обеспечение взаимного исключенияVar S: ДвСемафор = 1;Ri: Begin    loop

Слайд 46. Механизм семафоров 2002 v.0.2



Общий (счетный) семафор
Type ОбСемафор = 0..N;
Множество

значений:
Множество действий:
Var S: ОбСемафор;
P(S):
if(S=0) then ждать(S>0);

S:= S-1;
V(S):
S:= S+1;
6. Механизм семафоров		2002 v.0.2Общий (счетный) семафорType ОбСемафор = 0..N; Множество значений:Множество действий:Var S: ОбСемафор;P(S):   if(S=0)

Слайд 56. Механизм семафоров 2002 v.0.2
Общий семафор, особенности
В отличие от двоичного семафора

процесс, вызвавший P -операцию блокируется только в том случае, если

до него P–операция была вызвана N процессами и ни один из них не вызывал V -операцию
6. Механизм семафоров		2002 v.0.2Общий семафор, особенностиВ отличие от двоичного семафора процесс, вызвавший P -операцию блокируется только в

Слайд 66. Механизм семафоров 2002 v.0.2
Пример: «Поставщик-Потребитель»
Поставщик: производит единицы информации и записывает

их в буфер А, размер которого N
Потребитель: читает и обрабатывает

информацию из буфера А
Требуется реализовать процессы Поставщик и Потребитель таким образом, чтобы выполнялись условия:
а) Поставщик не может записывать в полный буфер;
б) Потребитель не может читать из пустого буфера;
в) одновременные запись и чтение недопустимы
6. Механизм семафоров		2002 v.0.2Пример: «Поставщик-Потребитель»Поставщик: производит единицы информации и записывает их в буфер А, размер которого NПотребитель:

Слайд 76. Механизм семафоров 2002 v.0.2
Parbegin Поставщик; Потребитель Parend;
Поставщик:
loop

Производство;
(*) P(Полон);
(**) P(Доступ);
Запись_в_буфер;

V(Доступ);
V(Пуст);
endloop.

«Поставщик-Потребитель» - реализация

Var Доступ: ДвСемафор = 1;
Полон: ОбСемафор = N; Пуст: ОбСемафор = 0;

Потребитель:
loop
P(Пуст);
P(Доступ);
Чтение_из_буфера;
V(Доступ);
V(Полон);
Обработка;
endloop.

6. Механизм семафоров		2002 v.0.2Parbegin Поставщик; Потребитель Parend; Поставщик:  loop   Производство;(*)  P(Полон);(**) P(Доступ);

Слайд 86. Механизм семафоров 2002 v.0.2
«Поставщик-Потребитель» - пояснение
Проследим работу схемы в следующих

ситуациях:
а) Поставщик пишет, Потребитель остановлен в действии Обработка. Перед каждой

записью в буфер значение семафора Полон уменьшается на 1. При полном буфере Поставщик блокируется на семафоре Полон в операции P(Полон)
б) Потребитель читает, Поставщик остановлен в действии Производство. Перед каждым чтением уменьшается значение семафора Пуст. При пустом буфере потребитель блокируется в операции P(Пуст)
в) Взаимное исключение доступа обеспечивается семафором Доступ
6. Механизм семафоров		2002 v.0.2«Поставщик-Потребитель» - пояснениеПроследим работу схемы в следующих ситуациях:а) Поставщик пишет, Потребитель остановлен в действии

Слайд 96. Механизм семафоров 2002 v.0.2
Недостатки механизма семафоров
Низкий уровень, слабая защищенность от

ошибок при программировании
Перестановка местами действий (*) и (**) в примере

на слайде 7 приводит к блокировке
Возможность использования P(S) и V(S) над одним семафором из разных задач (семафор S может быть установлен в 0 в одной задаче, а в 1 – в другой)
Не позволяет реализовать протокол наследования приоритетов, т. к. не определен процесс-«владелец» семафора
6. Механизм семафоров		2002 v.0.2Недостатки механизма семафоровНизкий уровень, слабая защищенность от ошибок при программированииПерестановка местами действий (*) и

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

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

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

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

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


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

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