#include #include #include #include struct Tabla{ int instante;//contine numarul de instante al programului care va fi maxim 2 int nrprel; //flag 0 daca nu se mai fac prel shi 1 altfel int t[9][9]; //tabla de 10x10 }; void lock(int sem){ struct sembuf sop; sop.sem_num=0; sop.sem_op=-1; sop.sem_flg=0; semop(sem,&sop,1); } void unlock(int sem){ struct sembuf sop; sop.sem_num=0; sop.sem_op=1; sop.sem_flg=0; semop(sem,&sop,1); } int creaza_sem(key_t k){ int semid; if ((semid=semget(k,1,0)) != -1) semctl (semid,0, IPC_RMID,0); //daca exista deja semaf sterg if ((semid=semget(k,1,IPC_CREAT | 0600)) !=-1) unlock(semid); //semaforul este blocat si-l deblocam return semid; }