Baixe o app para aproveitar ainda mais
Prévia do material em texto
Arnaldo José de Lima – 1400309 Sistemas Operacionais – S4 EXERCÍCIO 1 (3 pontos) Leia o texto a seguir que trata da definição do problema: O Jantar dos Filósofos, criado no ano de 1965 por Dijkstra, que é descrito e ilustrado abaixo: Cinco filósofos estão sentados em uma mesa circular (veja a Figura 1). Cada filósofo tem um prato de espaguete. O espaguete está tão escorregadio que um filósofo precisa de dois garfos para comê-lo. Entre cada par de pratos está um garfo. Os filósofos alternam-se entre comer e pensar. Explique em que situação poderia ocorrer inanição no problema do Jantar dos Filósofos? Ocorrera inanição quando todos os filósofos pegarem um garfo ao mesmo tempo. Nesta situação nenhum filósofo poderá comer. Starvation – os filósofos ficam indefinidamente pegando garfos simultaneamente. EXERCÍCIO 2 (2 pontos) Dê um exemplo de um impasse no trânsito e cite uma solução para prevenir-se deste impasse. Quando dois ou mais veículos querem passar ao mesmo tempo em um cruzamento. Os veículos que chegaram primeiro ao cruzamento estão travando uns aos outros, desta maneira todos estão travados, temos um impasse (Deadlock). Um semáforo previne que este impasse aconteça. EXERCÍCIO 3 (2 pontos) Um sistema tem dois processos e três recursos idênticos. Cada processo precisa de no máximo dois recursos. É possível ocorrer deadlocks (sim / não)? Justifique a sua resposta. Não é possível a ocorrência de deadlocks. O sistema está sem bloqueio. Suponha que cada processo aloque um recurso, fica um recurso sobrando. Qualquer processo pode requisitar e obter este recurso. Os processos também podem terminar e disponibilizar ambos os recursos. Consequentemente, o impasse é impossível. EXERCÍCIO 4 (2 pontos) Um sistema tem quatro processos e cinco recursos alocáveis. A alocação atual e as necessidades máximas são as seguintes: Qual é o menor valor de x para que esse estado seja seguro? Justifique o valor apontado. O menor valor de x é [ ]? Para X = 0, já temos um impasse. Processo Alocado Máximo Disponível Necessário A 1 0 2 1 1 1 1 2 1 3 0 0 0 1 1 0 1 0 0 2 B 2 0 1 1 0 2 2 2 1 0 0 2 1 0 0 C 1 1 0 1 0 2 1 3 1 0 1 0 3 0 0 D 1 1 1 1 0 1 1 2 2 1 0 0 1 1 1 Para x = 1, o processo D pode ser executado para ser concluído. Quando terminar, o vetor disponível é 1 1 2 2 1, Infelizmente, estamos agora em um impasse. Processo Alocado Máximo Disponível Necessário A 1 0 2 1 1 1 1 2 1 3 1 1 2 2 1 0 1 0 0 2 B 2 0 1 1 0 2 2 2 1 0 0 2 1 0 0 C 1 1 0 1 0 2 1 3 1 0 1 0 3 0 0 Se x = 2, depois de D correr, o vetor disponível é 1 1 3 2 1 e C pode ser executado. Depois de terminar e disponibilizar seus recursos, o vetor disponível é 2 2 3 3 1, o que permitirá que B seja executado e concluído, e depois A será executado eterminado. Processo Alocado Máximo Disponível Necessário A 1 0 2 1 1 1 1 2 1 3 0 0 2 1 1 0 1 0 0 2 B 2 0 1 1 0 2 2 2 1 0 0 2 1 0 0 C 1 1 0 1 0 2 1 3 1 0 1 0 3 0 0 D 1 1 1 1 0 1 1 2 2 1 0 0 1 1 1 Processo Alocado Máximo Disponível Necessário A 1 0 2 1 1 1 1 2 1 3 1 1 3 2 1 0 1 0 0 2 B 2 0 1 1 0 2 2 2 1 0 0 2 1 0 0 C 1 1 0 1 0 2 1 3 1 0 1 0 3 0 0 Processo Alocado Máximo Disponível Necessário A 1 0 2 1 1 1 1 2 1 3 2 2 3 3 1 0 1 0 0 2 B 2 0 1 1 0 2 2 2 1 0 0 2 1 0 0 Processo Alocado Máximo Disponível Necessário A 1 0 2 1 1 1 1 2 1 3 4 2 4 4 1 0 1 0 0 2 Portanto, o menor valor de x que evita um impasse é 2.
Compartilhar