Pesquisa sincronismo em processos
1 Porque é importante?
R: Ela é importante porque em sistemas de uma única CPU, regiões críticas, exclusão mútua e outros problemas de sincronização, são geralmente corrigidos usando recursos existente no sincronismo em processos, como semáforos e monitores. É importante também para evitar qualquer tipo de corrida entre os processos.
2 Explique os problemas clássicos de sincronismo
R: Problema dos Filósofos: Há uma mesa com cinco pratos e cinco garfos, onde os filósofos sentam para comer e pensar.
Toda vez que um filósofo para de pensar e deseja comer, é necessário que ele utilize dois garfos, posicionados à sua direita e à sua esquerda. Soluções para esse problema:
Permitir que só sentasse 4 filósofos; O filósofo só pegar um o garfo quando o outro tiver livre;
Fazer com que um filósofo ímpar pegue primeiro o seu garfo da esquerda e depois o da direita e um filósofo par pegue o garfo da direita e depois o da esquerda.
Problema do Barbeiro: Neste problema o barbeiro recebe clientes para cortar o cabelo. Na barbearia há uma cadeira de barbeiro e apenas cinco cadeiras para clientes esperarem. Quando um cliente chega e o barbeiro está trabalhando, ele senta se tiver uma cadeira vazia ou vai embora se não tiver uma vazia. Se o barbeiro não tiver nenhum cliente para atender, ele senta na cadeira e dorme até que um novo cliente apareça.
A solução para esse problema, é utilizar 1 semáforo contador e 2 semáforos binários. Quando o barbeiro seleciona um cliente para atender, é executada uma instrução DOWN no semáforo contador. Caso não exista nenhum cliente aguardando, o barbeiro continua a espera de um cliente. Quando o barbeiro seleciona algum cliente para atender, é então executada uma instrução UP no semáforo, indicando que o recurso foi liberado.
Problema Produtor-Consumidor: Este problema consiste de dois processos, o produtor e o consumidor, que compartilham uma memória (buffer). O produtor é responsável por gerar dados e colocá-los no