Atividade 07¶
Sumário:
Respostas¶
Qual a diferença entre proteger um recurso compartilhado e controlar sua disponibilidade?
Proteger um recurso compartilhado significa garantir que apenas uma thread por vez possa acessá-lo ou modificá-lo, evitando condições de corrida e inconsistências nos dados. Já controlar sua disponibilidade significa gerenciar quando um recurso pode ser utilizado, impedindo, por exemplo, que um consumidor consuma itens inexistentes ou que um produtor ultrapasse a capacidade máxima do sistema.
Em qual etapa da atividade o
mutexfoi suficiente?O
mutexfoi suficiente na Parte 2, onde o objetivo era apenas garantir a consistência do acesso à variável compartilhadacount. Nesse caso, omuteximpediu acessos simultâneos e eliminou as condições de corrida.Em qual etapa os semáforos se mostraram mais adequados?
Os semáforos se mostraram mais adequados na Parte 3, pois além de garantir a sincronização entre produtor e consumidor, também controlaram a quantidade de itens disponíveis e os espaços livres. Dessa forma, impediram que o número de itens se tornasse negativo ou ultrapassasse a capacidade máxima definida.
Em uma aplicação real de produtor-consumidor, quando seria necessário utilizar mutexes, semáforos ou ambos? Justifique.
Em aplicações reais, utiliza-se um
mutexquando é necessário proteger estruturas de dados compartilhadas contra acessos simultâneos. Os semáforos são utilizados para controlar a disponibilidade de recursos, sincronizando produtores e consumidores. Em muitos casos é necessário utilizar ambos, os semáforos controlam quantos itens podem ser produzidos ou consumidos, enquanto omutexprotege a região crítica onde a estrutura compartilhada é acessada e modificada.