Assignment name: mutex_basics Expected files: mutex_basics.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 -------------------------------------------------------------------------------------- Cria um programa com uma variável global `counter` inicializada a 0. Lança 4 threads que incrementam esta variável 1000 vezes cada uma. Usa um mutex para proteger o acesso à variável. O programa deve imprimir o valor final de `counter` (deve ser 4000) e o tempo total de execução. Uso: `./mutex_basics` Hint: Sem mutex, vais ver valores incorretos devido a race conditions. O mutex garante que apenas uma thread acede à variável de cada vez. Este é o conceito fundamental para o projeto Philosophers.