Алгоритъм на Бръснаря
| Информационни технологии | 2009-12-04 | 54 сваляния |
Алгоритъм на БРЪСНАРЯ
Бръснар:
-
Сигнализира, че е готов за работа.
-
Сяда и чака да се появи клиент (спи), докато не звънне камбаната.
-
След появата на клиент, става и чака клиента да дойде на бръснарския стол.
-
Обслужва клиента и сигнализира, че е завършил.
-
Чака клиента да излезе през изходната врата (камбанка).
-
Преход към точка 1.
Клиент:
-
Наднича през вратата да види дали има свободни места и чака ако са заети.
-
Влиза, сяда и сигнализира, че е дошъл (камбанката).
-
Проверява дали е свободен вестника и чака, докато се освободи.
-
Прочита вестника и сигнализира, че го е оставил.
-
Чака, докато се освободи бръснаря.
-
Става и сигнализира, че е освободено място на пейката.
-
Придвижва се до бръснарския стол и сигнализира, че е седнал.
-
Чака докато го обслужат.
-
Става, придвижва се и излиза през изхода като сигнализира (камбанката).
Решение:
program INITIAL
VAR
SEAT, NEWS, CLIENT, BARBER, CHAIR, READY, OUT: semaphore;
BEGIN
INIT (SEAT, 5);
INIT (NEWS, 1);
INIT (CLIENT, 0);
INIT (BARBER, 0);
INIT (CHAIR, 0);
INIT (READY, 0);
INIT (OUT, 0);
END.
program BARBER
VAR
SEAT, NEWS, CLIENT, BARBER, CHAIR, READY, OUT: semaphore;
BEGIN
SIGNAL (BARBER);
WAIT (CLIENT);
WAIT (CHAIR);
SIGNAL (READY);
WAIT (OUT);
END.
Program CLIENT
VAR
SEAT, NEWS, CLIENT, BARBER, CHAIR, READY, OUT: semaphore;
BEGIN
WAIT (SEAT);
SIGNAL (CLIENT);
WAIT (NEWS);
SIGNAL (NEWS);
WAIT (BARBER);
SIGNAL (SEAT);
SIGNAL (CHAIR);
WAIT (READY);
WAIT (OUT);
END.
Тагове от реферата: вънне, сигнаира, ъснар, ръснаря, горитъм, ръсна, появи, готов











