Sistemas de Computação I
Lista de Exercícios

  1. Swapping e memória virtual são dois mecanismos distintos que um sistema operacional pode utilizar para simular uma quantidade de memória física superior à que de fato existe na máquina. Qual a maior vantagem da memória virtual em relação ao swapping?
  2. Normalmente a memória virtual funciona com paginação sob demanda, onde as páginas de código, dados e pilha são trazidas para memória na medida em que são acessadas pelo processo em execução. Para encontrar uma página livre onde carregar uma página requisitada, o sistema muitas vezes tem que expulsar alguma página de memória, utilizando um algoritmo de substituição. Para escolher a página a ser expulsa, seria desejável implementar um algortimo LRU (least recently used), onde a página expulsa seria aquela que está há mais tempo sem ser acessada.
    1. Qual a dificuldade em implementar este algoritmo por software?
    2. Explique o algoritmo NRU, que leva em conta se a página foi referenciada e/ou modificada. Explique a importância de analisar se a página foi modificada ou não.
  3. Foram discutidas em sala quatro condições necessárias para ocorrência de deadlock.
    1. Enumere as quatro condições, explicando-as.
    2. Em que situações cada uma dessas condições pode ser negada? Exemplifique.
  4. Explique o que é uma transação atômica. Discuta a relação entre transações atômicas e deadlock: por que um mecanismo de transação atômica pode tornara viável a ``quebra'' de um deadlock sem matar um dos processos envolvidos?
  5. Suponha que, em um sistema com memória virtual paginada, o número de instruções executadas entre page faults seja diretamente proporcional ao número de molduras alocadas ao programa. Suponha que uma instrução normal demora 1 microsegundo para ser executada, enquanto 1 instrução com page fault demora 2000 microsegundos. Se um programa leva 60 segundos para ser executado, e durante este tempo ocorrem 15000 page faults, quanto tempo demoraria sua execução se o dobro de memória estivesse disponível? (Suponha que uma instrução causa 1 ou 0 page faults, nunca mais.)
  6. O que é o fenômeno de thrashing em sistemas de memória virtual? O que é o conjunto de trabalho de um processo e como esse conceito pode ser usado para evitar o thrashing? Como o sistema operacional pode determinar o conjunto de trabalho de cada processo?
  7. Explique a forma do DOS e a forma do Unix descreverem em que blocos do disco está localizado determinado arquivo. Discuta vantagens e desvantagens das duas formas.
  8. Explique o esquema de proteção a arquivos (bits de proteção) no Unix. Dê exemplos das limitações desse esquema.
  9. Explique as verificações de consistência do sistema de arquivos que são feitas na inicialização do Unix.
  10. Quais são as dificuldades na provisão de um sistema de arquivos onde os diretórios podem formar não apenas árvores mas grafos acíclicos? Explique os hard links e soft links do Unix, discutindo as vantagens e desvantagens de cada tipo de link.
  11. Explique o que são os descritores de arquivos do Unix e Minix. Explique a estrutura de informação que permite que processos compartilhem ou não uma mesma posição dentro de um arquivo aberto. Em que casos dois processos compartilham uma posição? Em que casos as posições avançam independentemente?

Noemi Rodriguez
Mon Jun 26 16:17:42 EST 2000