Escolar Documentos
Profissional Documentos
Cultura Documentos
Lista 01 P2
Respostas:
3. Starvation é a situação onde um processo nunca consegue executar sua região crítica e,
conseqüentemente, acessar o recurso compartilhado. A solução para o problema depende de
estabelecimentos de mecanismos de acesso pelo sistema operacional que garantam o acesso
ao recurso por todos os processos que solicitarem uso.
5. Os semáforos servem pra indicar ao processo que deseja acessar o recurso compartilhado se o
mesmo está liberado pra acesso, desta forma o processo acessa o recurso alterando o valor do
semáforo para bloqueado, ou bloqueado pra acesso, desta forma o processo aguarda até que
o processo que esteja utilizando o recurso compartilhado termine sua execução e altere o
valor do semáforo para liberado.
O problema anterior de sincronização condicional da utilização de um buffer por um processo
produtor (gravação) e um consumidor (leitura) é um exemplo clássico da utilização do
semáforo. Outro exemplo seria o problema dos filósofos que sentam a mesa com 5 pratos e 5
garfos cada prato, onde os filósofos poderiam sentar pra pensar e comer, quando quisessem
comer teria que ser com 2 garfos, inicialmente com 5 lugares caso todos os filósofos que
quisessem comer pegassem um garfo, ao tentar pegar o segundo para comer não teria
disponibilidade e ninguém conseguiria comer, ocorrendo o problema chamado deadlock. Pra
resolver esse problema com semáforo, uma das soluções seria o contador permitir que apenas
4 filósofos sentassem a mesa ao mesmo tempo, de cada vez, ao invés de 5.
6. Deadlock é a situação em que um processo aguarda por um recurso que nunca estará
disponível ou um evento que não ocorrerá. Para que ocorra a situação de deadlock, quatro
condições são necessárias simultaneamente:
exclusão mútua: cada recurso só pode estar alocado a um único processo em um
determinado instante;
espera por recurso: um processo, além dos recursos já alocados, pode estar
esperando por outros recursos;
espera circular: um processo pode ter de esperar por um recurso alocado a outro
processo e vice-versa.
Para prevenir a ocorrência de deadlocks, é preciso garantir que uma das quatro condições
apresentadas, necessárias para sua existência, nunca se satisfaça. A prevenção de deadlocks
evitando-se a ocorrência de qualquer uma das quatro condições é bastante limitada e, por isso,
na prática não é utilizada. Uma solução conhecida como Algoritmo do Banqueiro
(implementada com a presença das quatro condições) também possui várias limitações. A
maior delas é a necessidade de um número fixo de processos ativos e de recursos disponíveis
no sistema. Essa limitação impede que a solução seja implementada na prática, pois é muito
difícil prever o número de usuários no sistema e o número de recursos disponíveis.
7. São mecanismos de sincronização estruturados de alto nível que tornam mais simples o
desenvolvimento de aplicações concorrentes, pois, diferente dos semáforos (não-
estruturados), não necessitam ser implementados pelo desenvolvedor da aplicação, pois são
implementados pelo compilador.