Sistemas de Computação 1 - Prova Final
PUC-Rio - 9/07/98

  1. (1,5) O que é um escalonador não preemptivo? Por que esse tipo de escalonador cria dificuldades para aplicações de tempo real (por exemplo, aplicações multimídia)?
  2. (gerência de memória)
    1. (2,0) Explique o que é o fenômeno de thrashing em um sistema de memória virtual.
    2. (1,0) O que é fragmentação interna e o que é fragmentação externa em um sistema de alocação de memória principal a processos?
  3. (sistemas de arquivos)
    1. (1,5) Explique o procedimento de verificação de consistência da informação de blocos ocupados ou livres realizado pelo Unix na inicialização do sistema.
    2. (1,5) Qual o objetivo da montagem de sistemas de arquivos? Como é armazenada no Minix, em tempo de execução, a informação de que determinado sistema está montado em determinado diretório?
  4. (2,5) Suponha que diversos processos usuários compartilham um buffer de impressão, e que a impressão propriamente dita é feita por um único processo, o processo impressor. O impressor só imprime o conteúdo do buffer quando este está completo. A cada acesso ao buffer, um processo usuário coloca um único caractere no buffer. Quando um usuário deseja colocar o caractere no buffer e o buffer está cheio, o usuário acorda o impressor para que ele faça a impressão do conteúdo do buffer, e aguarda essa impressão para poder colocar seu caractere no buffer (o impressor ``esvazia'' o buffer depois de imprimir). Modele o comportamento dos processos usuários e impressor com semáforos, escrevendo código simplificado para os dois tipos de processos. A solução deve evitar deadlock, espera ocupada e starvation (e deve modelar o comportamento descrito fielmente...).

Noemi Rodriguez
Wed Jun 23 11:32:09 EST 1999