Zaimplementuj semafor binarny. Załóż, że dostępne są następujące operacja na kolejkach procesów:
add_to_queue
remove_first
empty
Rozważ następujące warianty systemów:
system jednoprocesorowy
system wieloprocesorowy
struct semaphore{
...
};
void semaphore_init(struct semaphore *s);
void semaphore_lock(struct semaphore *s);
void semaphore_unlock(struct semaphore *s);