**Assignment name**: limited_resources **Expected files**: limited_resources.c **Allowed functions**: memset, printf, malloc, free, write, pthread_create, pthread_detach, pthread_join, pthread_mutex_init, pthread_mutex_destroy, pthread_mutex_lock, pthread_mutex_unlock, usleep, gettimeofday --- Simula uma biblioteca com 3 computadores partilhados entre 10 estudantes: - Cada estudante (thread) quer usar um computador por 2-5 segundos (tempo aleatório) - Apenas 3 estudantes podem usar computadores simultaneamente - Implementa um "semáforo" usando mutexes e uma variável contador Imprime quando estudantes: - Chegam à biblioteca - Conseguem um computador - Terminam de usar o computador - Saem da biblioteca **Uso**: `./limited_resources` **Hint**: Como POSIX semáforos não são permitidos no mandatory part, implementa o teu próprio semáforo com mutex + contador + condition logic. Este exercício simula a limitação de recursos como no Philosophers com forks.