«« ( Date ) »» // «« ( Thread ) »» // drs - 2004

Re: ljudozderi....

by Zaharije Radivojevic
četvrtak, 02. septembar 2004 - 16:55.


Postivani,

U nastavku je resenje zadatka.

Nadam se da nisam napravio neku gresku dok sam prekucavao zadarak.

Pozdrav
Zaharije

PS: Okacio sam sve prethodne rokove na net.


program DiningSavages(input, output);
var cook: semaphore;
savage: semaphore;
mutex: semaphore;
var servings: shared integer;

procedure PrepareLunch();
begin

end

procedure GetServingFromPot();
begin

end

procedure SavageCook();
begin
while true do
begin
wait (cook);
PrepareLunch();
signal (savage)
end
end

procedure Savage(i : intger);
begin
while true do
begin
wait(mutex);
if (servings == 0) then
begin
signal (cook);
wait (savage);
servings := M
end
servings := servings - 1;
GetServingFromPot ()
signal (mutex);
end
eat ()
end

begin
servings := 0;
init(cook, 0);
init(savage, 0);
init(mutex, 1);
cobegin
SavageCook();
Savage(1);
Savage(2);
...
coend;
end.