philosophers_prep/11_race_detector.txt

24 lines
1.1 KiB
Plaintext

Assignment name: race_detector
Expected files: race_detector.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 uma versão do problema dos filósofos que:
1. Detecta e reporta possíveis data races
2. Testa diferentes estratégias de otimização:
- Estratégia A: mutex global para todas as operações
- Estratégia B: mutex por fork + mutex para impressão
- Estratégia C: minimizar lock time
Inclui stress test: roda 100 iterações com diferentes configurações e reporta:
- Número de data races detectadas
- Performance (tempo total)
- Número de mortes
Uso: `./race_detector 4 410 200 200`
Hint: Use ferramentas como `valgrind --tool=helgrind` para detectar data races.
No projeto real, qualquer data race resulta em nota 0.
Testa com números ímpares e pares de filósofos, e com time_to_die muito próximo de time_to_eat.