Implementacja semafora

Zaimplementuj semafor binarny. Załóż, że dostępne są następujące operacja na kolejkach procesów:

Rozważ następujące warianty systemów:

struct semaphore{
	...
};

void semaphore_init(struct semaphore *s);
void semaphore_lock(struct semaphore *s);
void semaphore_unlock(struct semaphore *s);