TERCEIRA LISTA DE EXERCÍCIOS DE SISTEMAS OPERACIONAIS 1. Sobre algoritmos de escalonamento de disco: a. Se os fatores envolvidos no acesso a dados em um disco (tempo de busca, latência e transferência) estão diretamente relacionados às características físicas do dispositivo, como a utilização de um algoritmo de escalonamento pode ajudar no desempenho d e acesso às informações? b. Desenhe o gráfico de acesso às trilhas de um disco para os algoritmos de escalonamento FirstCome-First-Served, Shortest-Seek-Time-First e Scan (Elevator) para a seguinte fila de pedidos: 68, 14, 6, 28, 130, 94, 6, 42. O cabeçote de leitura encontra-se inicialmente na posição da trilha 20. 2. Qual a função básica de um driver de dispositivo? Exemplifique sua interação com os outros elementos de um sistema computacional. 3. Explique o que são e a serventia de interrupções de entrada e saída. Dê um exemplo de como interrupções ocorrem durante a execução de um programa na UCP. 4. O controle de acesso a dispositivos de entrada e saída realizado pelo sistema operacional pode ser implementado através das técnicas de entrada e saída programada, entrada e saída orientada a interrupção e entrada e saída com acesso direto à memória. Caracterize o funcionamento de cada um destes métodos e explique sua influência no desempenho do sistema computacional. 5. Descreva o que representam as seguintes situações em um sistema computacional e diga qu al a relação delas com a ocorrência de uma situação de deadlock. a. Exclusão mútua; b. Posse e espera; c. Sem preempção; d. Espera circular; 6. O enunciado a seguir apresenta o problema de sincronização de processos conhecido como o problema do jantar dos filósofos. Após analisá-lo, responda as perguntas: “Cinco filósofos estão sentados em uma mesa, e desejam comer espaguete; No entanto, para poder comer, cada filósofo precisa utilizar dois garfos e não apenas um. Portanto, os filósofos precisam compartilhar o uso do garfo de forma sincronizada. Se não estão comendo, os filósofos estão pensando” a. Os filósofos estão sujeitos aos problemas de deadlock e inanição (starvation)? Justifique suas respostas. b. A seguir é apresentada uma solução simples, porém imperfeita, para o problema do jantar dos filósofos. Sugira alguma mudança no código para que ela se torne menos sujeita a falhas. 7. Os códigos a seguir representam uma potencial solução para o problema do produtor/consumidor com buffer limitado. Analise o código apresentado e reposta as questões a seguir: a. A solução apresentada utiliza as funções sleep() e wakeup(processo). Explique qual o propósito destas funções e como elas funcionam no código apresentado. b. A utilização das primitivas sleep e wakeup elimina a possibilidade de deadlock? Caso positivo, justifique; caso negativo, mostre como tal problema poderia ser contornado.