21 lines
944 B
Plaintext
21 lines
944 B
Plaintext
Assignment name: death_monitor
|
|
Expected files: death_monitor.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 sistema com:
|
|
- 4 threads "worker" que fazem trabalho por períodos variados (1-4 segundos)
|
|
- 1 thread monitor que verifica se algum worker não dá "sinal de vida" há mais de 3 segundos
|
|
- Workers devem atualizar `last_activity_time` a cada iteração
|
|
- Monitor verifica a cada 100ms e imprime aviso se detectar worker "morto"
|
|
|
|
Simula "morte" fazendo um worker parar aleatoriamente.
|
|
|
|
Uso: `./death_monitor`
|
|
|
|
Hint: Este exercício simula a detecção de morte no Philosophers.
|
|
O monitor thread deve verificar continuamente sem bloquear os workers.
|
|
Usa mutex para proteger `last_activity_time`.
|
|
A detecção deve ser rápida (dentro de 10ms no projeto real). |