You are on page 1of 2

3. VJEŽBA – Milić !PAZI!

(nazivi su drugačiji, ovisi kak ko ima u programu nazvano)

1. Ispitati neki semafor: sem_wait(&semafor_racunaj);

2. Postaviti neki semafor: sempostaviti(0);

3. Koje vrijednosti može poprimiti binarni semafor? 0 – neprolazan, 1 – prolazan

4. Postaviti neki semafor: sem_post(&semafor_racunaj);

5. Ispitati neki semafor: semispitati(1);

6. Koje vrijednosti može poprimiti opći semafor ? 0 – neprolazan, neki prirodni broj n – prolazan

7. Stvori jedan novi neimenovani semafor: sem_t semafor;

8. Uništi skup semafora: semctl(semaphor_id, IPC_RMID, 0);

9. Koje dvije strukture/dva podatka ima svaki semafor? vrijednost i red čekanja

10. Uništi neki semafor? sem_destroy(&semafor_generiraj);

11. Stvori novi skup semafora od jednog člana: SemGet(1);

12. Koje dvije operacije ima svaki semafor? Ispitaj i Postavi

13. Svi semafori početno su prolazni: sem_init(&semafor_generiraj, 0, 1);

sem_init(&semafor_racunaj, 0, 1);

14. Svi semafori početno su neprolazni: semctl(semaphor_id, 0, SETVAL, 0);

semctl(semaphor_id, 1, SETVAL, 0);

semctl(semaphor_id, 2, SETVAL, 0);

15. Imamo binarni semafor koji nije prolazan i zovemo Ispitaj_Semafor, što će se dogoditi? -
Dretva se postavlja u red čekanja sve dok ju neko ne propusti.

16. Svi semafori početno su neprolazni: sem_init(&semafor_generiraj, 0, 0);

sem_init(&semafor_racunaj, 0, 0);

17. Svi semafori početno su prolazni: semctl(semaphor_id, 0, SETVAL, 1);

semctl(semaphor_id, 1, SETVAL, 5);

semctl(semaphor_id, 2, SETVAL, 1);

18. Ako imamo opći semafor koji ima vrijednost 3 i zovemo Postavi_Semafor, što će se dogoditi?
Vrijednost će se inkremenrtirati za 1 i imat ćemo 4 semafora.
19. Pozovi funkciju koja će pokušati umanjiti vrijednost semafora, a ako ne uspije čekat će u redu
čekanja? sem_wait(&semafor_racunaj);

20. Pozovi funkciju koja će pokušati uvećati vrijednost semafora? semop(semaphor_id, &sSkup, 1);

21. Ako imamo binarni semafor koji je neprolazan i nitko ne čeka u redu i zovemo Postavi_Semafor,
što će se dogoditi? Bit će prolazan.

22. Uvećati vrijednost semafora: sem_post(&semafor_generiraj);

23. Umanjiti vrijednost semafora: semispitati(1);

24. Ako imamo opći semafor koji ima vrijednost 1 i zovemo Ispitaj_Semafor, što će se dogoditi?

Dretva će se izvršiti i semaforu će se smajiti vrijednost za 1 i postat će neprolazan.

4. VJEŽBA - Milić

1. Uđi u monitor: pthread_mutex_lock(&n);

2. Propusti dretvu iz reda uvjeta: pthread_cond_signal(&row);

3. Koliko dretava istodobno može biti u monitoru? Jedna

4. Izađi iz monitora: pthread_mutex_unlock(&n);

5. Uvrsti tekuću dretvu u red uvjeta koji god: pthread_cond_wait(&red, &n);

6. Koliko dretava istodobno može biti u redu uvjeta? n prirodni broj, tj. koliko god treba

You might also like