Assignment name: philosophers_bonus Expected files: philosophers_bonus.c Allowed functions: memset, printf, malloc, free, write, fork, kill, exit, pthread_create, pthread_detach, pthread_join, usleep, gettimeofday, waitpid, sem_open, sem_close, sem_post, sem_wait, sem_unlink ------------------------------------------------------------------------- Implementa a versão bonus do Philosophers: - Cada filósofo é um processo separado (não thread) - Usa semáforos POSIX nomeados para coordenação - Processo pai monitora todos os processos filhos - Se um filósofo morre, mata todos os outros processos Funcionalidades adicionais: - Cleanup adequado de semáforos nomeados - Handling de sinais (SIGINT, SIGTERM) - Relatório final com estatísticas Uso: `./philosophers_bonus 5 800 200 200 7` Hint: Bonus part usa processos em vez de threads. Semáforos POSIX nomeados permitem comunicação entre processos. Usa fork() para criar processos filhos e waitpid() para monitorizar. O cleanup de semáforos é crucial - usa sem_unlink() e handling de sinais para cleanup em caso de interrupção.