Advertisement
Luis_B

Untitled

Jun 17th, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 0.79 KB | None | 0 0
  1. program prog;
  2. var writing:boolean;
  3.     lec,nee:integer;
  4.     mutex:semaphore;
  5. process LECTOR;
  6.     begin
  7.         repeat
  8.             wait(mutex);
  9.             while (writing=true) or (nee>0) do
  10.             begin
  11.                 signal(mutex);
  12.                 wait(mutex);
  13.             end;
  14.             lec:=lec+1;
  15.             signal(mutex);
  16.             writeln('LEER RECURSO');
  17.             wait(mutex);
  18.             lec:=lec-1;
  19.             signal(mutex);
  20.         forever;
  21.     end;
  22. process ESCRITOR;
  23.     begin
  24.         repeat 
  25.             wait(mutex);
  26.             nee:=nee+1;
  27.             while (writing=true) or (lec>0) do
  28.             begin
  29.                 signal(mutex);
  30.                 wait(mutex);
  31.             end;
  32.             writing:=true;
  33.             nee:=nee-1;
  34.             signal(mutex);
  35.             writeln('ESCRIBIR EN EL RECURSO');
  36.             wait(mutex);
  37.             writing:=false;
  38.             signal(mutex);
  39.         forever;
  40.     end;
  41. begin
  42.     initial(mutex,1);
  43.     writing:=false;
  44.     lec:=0;
  45.     nee:=0;
  46.     cobegin
  47.         LECTOR;
  48.         ESCRITOR;
  49.     coend;
  50. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement