terça-feira, 10 de agosto de 2010

Capítulo 1, Questões 11~15

11. Um revisor alerta sobre um erro de ortografia no original de um livro-texto sobre sistemas operacionais que está para ser impresso. O livro tem aproximadamente 700 páginas, cada uma com 50 linhas de 80 caracteres. Quanto tempo será preciso para percorrer eletronicamente o texto no caso de a cópia estar em cada um dos níveis de memória da Figura 1.7? Para métodos de armazenamento interno, considere que o tempo de acesso é dado por caractere; para discos, considere que o tempo é por bloco de 1024 caracteres; e, para fitas, que o tempo dado é a partir do início dos dados com acesso subsequentes na mesma velocidade que o acesso a disco.
S. Multiplicando os números temos que o livro tem 700x50x80=2.8M caracteres. Na memória principal temos um acesso de 2.8M * 10ns = 0,0028s. Em disco ou fitas, temos um acesso por blocos de 1024 caracteres, logo precisamos de pelo menos 2735 acessos o que leva 2735x10ms=27,35s. Como o livro não cabe na cache, tão pouco nos registradores, não faz sentido comparar estes tempos. Porém, caso se tenha uma cache suficientemente grande teríamos um acesso em 1/5 do tempo do acesso pela memória principal, um acesso em 0,000056s.

12*. Na Figura 1.9, a MMU compara um endereço (virtual) com o conteúdo do registrador-limite, causando uma falha se for muito grande. Um projeto alternativo seria primeiro adicionar o endereço virtual ao conteúdo do registrador-base e então comparar o resultado com o endereço (físico) no registrador-limite. Os dois métodos são lógicamente equivalentes? E quanto ao desempenho, são equivalentes?
S. Lógicamente é equivalente, mas em alguns casos essa soma feita pode ser desnecessária, já que mesmo sem a soma o valor estaria maior do que o registrador-limite.

13. Quando um programa de usuário faz uma chamada ao sistema para ler ou escrever um arquivo em disco, ele fornece uma indicação de qual arquivo ele quer, um ponteiro para o buffer de dados e um contador. O controle então é transferido ao sistema operacional que chama o driver apropriado. Suponha que o driver inicie o disco, termine e só volte quando uma interrupção ocorrer. No caso da leitura do disco, obviamente quem chama deverá ser bloqueado (pois não há dados para ele). E no caso da escrita no disco? Quem chama precisa ser bloqueado aguardando o final da transferência do disco?
S. Não necessariamente. A não ser que se queira garantir que a escrita foi feita antes de continuar a execução do processo, quem chama não precisa ser bloqueado.

14. Qual a diferença fundamental entre uma trap e uma interrupção?
S. Uma interrupção é geralmente iniciada por um dispositivo de E/S. Faz a CPU parar o que está fazendo, salvar o seu contexto na pilha, tratar a interrupção, resgatar o contexto e continuar a execução. Já uma trap é tipicamente causada por software em condições excepcionais como a divisão por zero ou acesso inválido a memória. Fonte: wiki.answers.com

15. Um computador usa o esquema de realocação da Figura 1.9(a). Um programa tem 10 000 bytes e é carregado no endereço 40 000. Quais são os valores do registrador-base e do registrador-limite de acordo com o esquema descrito no texto?
S. O registrador-base 0+40000 = 40 000 e o limite 40000+10000 = 50 000.

Nenhum comentário:

Postar um comentário