Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program sesion06;
- const
- n = 5;
- var
- buffer : array[0..n] of integer;
- frente : integer;
- cola : integer;
- mutex : semaphore;
- llenos : semaphore;
- vacios : semaphore;
- process productor;
- var
- item : integer;
- i : integer;
- begin
- i := 0;
- repeat
- item := i;
- wait(mutex);
- buffer[frente] := item;
- frente := (frente + 1) mod n;
- signal(mutex);
- signal(llenos);
- i := i + 1;
- forever;
- end;
- process consumidor;
- var
- item : integer;
- begin
- repeat
- wait(llenos);
- wait(mutex);
- item := buffer[cola];
- cola := (cola + 1) mod n;
- writeln(item);
- signal(mutex);
- signal(vacios);
- forever;
- end;
- begin
- initial(vacios, n);
- initial(llenos, 0);
- initial(mutex, 1);
- frente := 0;
- cola := 0;
- cobegin
- productor;
- consumidor;
- coend;
- end.
Add Comment
Please, Sign In to add comment