BACI System: C-- to PCODE Compiler in C, 11:30 1 Oct 2012 Source file: zad1.cm Wed Dec 5 14:22:03 2018 line pc 1 0 semaphore s2; 2 0 semaphore s; 3 0 semaphore t; 4 0 const int N = 5; 5 0 int buffer[N]; 6 0 int write_pos = 0; 7 0 int read_pos = 0; 8 0 void queue_add(int item) 9 0 { 10 0 buffer[write_pos] = item; 11 5 write_pos = (write_pos + 1) % N; 12 12 } 13 13 int queue_get() 14 13 { 15 13 int item; 16 13 item = buffer[read_pos]; 17 19 read_pos = (read_pos + 1) % N; 18 26 return item; 19 30 } 20 31 21 31 void prod1(int i, int n){ 22 31 for(i; i <= n; i=i+1){ 23 42 wait(s2); 24 44 queue_add(i); 25 48 signal(s); 26 50 } 27 51 signal(t); 28 53 } 29 54 30 54 void prod2(int i, int n){ 31 54 wait(t); 32 56 for(i; i<=n; i=i+1){ 33 67 wait(s2); 34 69 queue_add(i); 35 73 signal(s); 36 75 } 37 76 } 38 77 39 77 void kons(int n){ 40 77 int i = 0; 41 80 int liczba; 42 80 for(i = 0; i < n; i = i+1){ 43 94 wait(s); 44 96 liczba = queue_get(); 45 101 signal(s2); 46 103 cout << "Pobralem" <