9
UNIVERSIDADE FEDERAL DO CEARÁ BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO RONILDO OLIVEIRA DA SILVA SISTEMAS OPERACIONAIS: RESOLUÇÃO DE PROBLEMAS QUIXADÁ 2014

Resolução de Problemas - Sistemas Operacionais

Embed Size (px)

DESCRIPTION

Resolução de Problemas - Sistemas Operacionais (Tanenbaum)

Citation preview

Page 1: Resolução de Problemas - Sistemas Operacionais

UNIVERSIDADE FEDERAL DO CEARÁ

BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO

RONILDO OLIVEIRA DA SILVA

SISTEMAS OPERACIONAIS:

RESOLUÇÃO DE PROBLEMAS

QUIXADÁ

2014

Page 2: Resolução de Problemas - Sistemas Operacionais

SUMÁRIO

CAPÍTULO 3 – GERENCIAMENTO DE MEMÓRIA ................................................................................. 3

CAPÍTULO 4 – SISTEMAS DE ARQUIVOS .............................................................................................. 4

CAPÍTULO 5 – ENTRADA/SAÍDA ............................................................................................................... 5

CAPÍTULO 6 – IMPASSES ........................................................................................................................... 6

CAPÍTULO 8 – SISTEMAS COM MULTÍPLOS PROCESSADORES .................................................... 8

REFERÊNCIAS BIBLIOGRÁFICAS ............................................................................................................ 9

Page 3: Resolução de Problemas - Sistemas Operacionais

3

CAPÍTULO 3 – GERENCIAMENTO DE MEMÓRIA

1. É um acidente. O registo base é 16.384 porque o programa foi carregado no endereço 16384. Poderia ter sido carregado em qualquer lugar. O limite registro é 16.384 porque o programa contém 16.384 bytes. Pode ter havido qualquer comprimento. Já o fato do endereço coincidir com o comprimento do programa é pura coincidência.

4. Primeiro fit leva de 20 KB, 10 KB, 18 KB. Melhor fit leva de 12 KB, 10 KB, e 9 KB. Pior fit leva de 20 KB, 18 KB e 15 KB. Próximo fit leva de 20 KB, 18 KB, e 9 KB.

8. O espaço de endereço virtual total para todos os processos combinados é nv, de modo que é o suficiente para o armazenamento das páginas. No entanto, uma quantidade r pode estar na RAM, assim a quantidade de armazenamento em disco necessário é apenas nv – r.

11. (a) Uma tabela de página multinível reduz o número de páginas reais da tabela que precisa estar na memória por causa de sua estrutura hierárquica. De fato, em um programa com muita instrução, precisamos apenas da tabela de nível superior da página (uma página), uma página de instruções e uma página de dados. (b) Atribuir 12 bits para cada um dos três campos página. O campo offset requer 14 bits de endereço 16 KB. Isso deixa 24 bits para os campos página. Desde cada entrada é de 4 bytes, uma página pode conter 212 entradas de tabela de página e requer 12 bits para indexar uma página. Modo, a alocação de 12 bits para cada um dos campos página irá abordar todos os 238 bytes.

16. O bit R nunca é necessário na TLB. A mera presença de uma página lá significa que a página foi referenciada; caso contrário ela não estaria lá. Assim, o bit é completamente redundante. Quando a entrada é escrita de volta à memória, o bit R na tabela de página de memória é definido.

21. (a) Todas as páginas irão falhar, a menos que o número de quadros da página seja 512, o comprimento de toda a sequência. (b) Se houver 500 quadros, mapa de páginas 0-498 para quadros fixos, varia apenas um quadro.

28. NRU remove a página 2. FIFO remove a página 3. LRU remove a página 1. Na segunda chance remove página 2.

Page 4: Resolução de Problemas - Sistemas Operacionais

4

33. O programa está recebendo 15.000 falhas de página, cada um dos quais usa 2 ms de tempo extras de processamento. Juntos, a sobrecarga de página é 30 seg. Isto significa que do 60s usado, metade foi gasto em despesas gerais, e metade na execução o programa. Se executar o programa com o dobro da memória, temos metade como falhas de memória, e apenas 15 segundos de sobrecarga de erro de página, de modo, o tempo total de execução será de 45 seg.

38. Apoio geral memória virtual não é necessária quando os requisitos de memória de todas as aplicações são bem conhecidos e controlados. Alguns exemplos são especiais de uso do processador (por exemplo, processadores de rede), processadores incorporados e supercomputadores (por exemplo, projeto da asa do avião). Nestas situações, devemos sempre considerar a possibilidade de usar mais memória real. Se a operação sistema não tem que suportar a memória virtual, o código seria muito menor. Por outro lado, algumas ideias de memória virtual podem ainda ser exploradas, embora com diferentes requisitos de projeto.

CAPÍTULO 4 – SISTEMAS DE ARQUIVOS

2. O sistema operacional se preocupa com o comprimento de arquivos quando

eles podem ser estruturados como registros com chaves em uma posição

específica. Dentro de cada registro é possível requisitar um registro com

uma determinada chave. Nesse caso, o sistema tem de saber quão grande

os registros são para que ele possa procurar pela a chave.

5. Sim. A renomeação não altera o tempo de criação ou a hora da última

modificação, mas a criação de um novo arquivo faz com que ele obtenha o

tempo atual o de criação e a hora da última modificação. Além disso, se o

disco está cheio, a cópia pode falhar.

10. Uma vez que o armazenamento é desperdiçado entre as unidades de

alocação, e não dentro delas, esta é a fragmentação externa. É

precisamente análoga a fragmentação externa da memória principal que

ocorre com um sistema de troca ou de um sistema usando segmentação

pura.

13. A câmera digital registra um número de fotografias em sequência em um

meio não volátil de armazenamento (por exemplo, a memória flash). Quando

a câmera é reiniciada, o meio é esvaziado. Em seguida, as imagens são

gravadas uma a uma em sequência até que o meio está cheio, momento em

que eles são enviados para um disco. Para esta aplicação, um sistema de

arquivos contínuo dentro da câmera é ideal.

Page 5: Resolução de Problemas - Sistemas Operacionais

5

17. Ter duas cópias na tabela ao mesmo tempo é um desastre, a menos que

ambos são somente leitura. O pior caso é quando ambos estão sendo

atualizados simultaneamente. Quando eles são escritos de volta para o

disco, qualquer um irá apagar as alterações feitas pelo outro, e blocos de

disco serão perdidos.

20. O início do mapa de bits é semelhante:

(a) Depois de escrever o arquivo B: 1111 1111 1111 0000 (b) Após a exclusão do arquivo A: 1000 0001 1111 0000 (c) Depois de escrever o arquivo C: 1111 1111 1111 1100 (d) Depois de eliminar o arquivo B: 1111 1110 0000 1100

25. Muitos arquivos UNIX são curtos. Se todos os arquivos coubessem no

mesmo bloco, apenas um acesso ao disco seria necessário para ler o

arquivo, em vez de dois, como é atualmente o caso. Mesmo para mais

pastas haveria um ganho, uma vez que seriam necessários menos acessos

ao disco.

31. Ele restringe a soma de todos os tamanhos dos arquivos de ser não maior

do que o disco. Esta não é uma restrição muito grave. Se os arquivos deles

eram coletivamente maiores do que o disco, não haveria lugar para

armazenar todos eles.

CAPÍTULO 5 – ENTRADA/SAÍDA

2. Fácil. O scanner envia a 400 KB/s máximo. A rede sem fio é executado a

6,75 MB/s, então não há nenhum problema.

11. (a) driver de dispositivo.

(b) driver de dispositivo.

(c) software independente de dispositivo.

(d) software em nível de usuário.

14. RAID 2 não só pode recuperar a partir de drivers corrompidos, mas também

de erros transitórios não detectados. Se uma unidade oferece um único bit

defeituoso, o RAID 2 vai corrigir isso, mas o RAID 3 não pode.

18. A principal vantagem de discos ópticos é que eles têm densidade de

gravação muito maior do que os discos magnéticos. A principal vantagem de

discos magnéticos que é eles é uma ordem de grandeza mais rápida do que

os discos ópticos.

Page 6: Resolução de Problemas - Sistemas Operacionais

6

25. No pior dos casos, um pedido de leitura / gravação não é atendido por dois

discos.

26. (a) Utilizando 500 MHz, o contador pode ser decrementado a cada 2 ms.

Assim, para cada milésimo de segundo, o registro deve ser 1000000/2 =

500.000.

(b) Para obter um clock num instante a cada 100 ms, o valor de registro

deve ser 50.000.

32. Deslizar a janela requer uma cópia 59 linhas de 80 caracteres ou 4720

caracteres. Copiando um char (16 bytes) leva 800 nano segundos, por isso

toda a janela leva 3.776ms. Escrevendo 80 caracteres para a tela leva 400

nano segundos, num instante de rolagem de janela, exibe uma nova linha

em 4,176ms. Isso dá cerca de 239,5 linhas/s.

37. (a) Cada pixel tem 3 bytes em RGB, de modo que o espaço de tabela é de

16 × 24 × 3 bytes, que é 1.152 bytes.

(b) a 100ns por byte, cada char corresponde a 115,2 ms. Isto dá uma

potência taxa de cerca de 8681 caracteres / seg.

42. A largura de banda em um segmento de rede é compartilhada, então 100

usuários solicitando diferentes dados simultaneamente em uma rede de 1

Mbps vai ver cada um de 10 Kbps de velocidade efetiva. Com uma rede

compartilhada, um programa de TV pode ser multicast, de modo que os

pacotes de vídeo só são transmitidos uma vez, não importa quantos

usuários existem e ele deve funcionar bem. Com 100 usuários navegar na

Web, cada usuário terá 1/100 da largura de banda, de modo que o

desempenho pode cair muito rapidamente.

CAPÍTULO 6 – IMPASSES

2. O espaço em disco na partição é um recurso finito. Cada bloco que chega

reivindica um recurso e cada novo spool que chega requer mais recursos.

Se o espaço de buffer é, digamos 10 MB e a primeira metade dos dez são

de 2 MB, o disco vai estar cheio e não há mais blocos que possam ser

armazenados, por isso temos um impasse. O bloqueio pode ser evitado

permitindo um job iniciar a impressão antes, assim, liberada para o resto do

job. Desta forma, um job será finalizado, então o próximo pode fazer a

mesma coisa. Se o jobs não pode começar a imprimir até que estejam

totalmente num buffer, o impasse é possível.

Page 7: Resolução de Problemas - Sistemas Operacionais

7

6. Considere três processos, A, B e C e dois recursos de P e S. Suponha que A

está aguardando um recurso que é mantido por B, B está à espera de S ser

realizada por A, C e está esperando por R que está sendo usado por A.

Todos os três processos, A, B e C estão num impasse. No entanto, só A e B

pertencem à cadeia circular.

9. O processo está solicitando mais recursos do que o sistema tem. Não existe

maneira cabível que possa obter esses recursos, por isso nunca pode ser

concluída, mesmo que outros processos não necessitem de quaisquer

recursos.

13. Há estados que não são nem seguros nem deadlocks, mas que levam a

estados bloqueados. Como exemplo, suponha que temos quatro recursos:

fitas, plotters, scanners e CD-ROMs, como no texto, e três processos

concorrentes para eles. Poderíamos ter a seguinte situação:

Este estado não está num impasse porque muitas ações ainda podem

ocorrer, por exemplo, A ainda pode obter duas impressoras. No entanto, se

cada processo requisitar demais requisitos, teremos um impasse.

17. O sistema é livre de deadlocks. Suponha que cada processo tem um

recurso. Nesse caso, há um recurso livre. Qualquer processo pode

requisitá-lo e executá-lo, em que caso pode terminado e libere ambos os

recursos. Consequentemente, o impasse é impossível.

22. Segue a matriz:

Se x é 0, temos um impasse. Se x é 1, o processo D pode ser concluído.

Quando ele está acabado, o vetor disponível é [11221]. Infelizmente

estamos agora num impasse. Se x é 2, depois de D ser executado, o vetor

que estará disponível será [11321] e C pode ser executado. Depois que ele

terminar e retornar os seus recursos à disponibilidade do vector será

[22331], que vai permitir B executar e completar sua execução, e em

seguida, A conclui sua execução. Portanto, o menor valor de x que evita um

bloqueio é 2.

Page 8: Resolução de Problemas - Sistemas Operacionais

8

29. Um impasse ocorre quando um conjunto de processos é bloqueado à

espera de um evento que só algum outro processo no conjunto pode liberar.

Por outro lado, processos em um livelock não são bloqueados. Em vez

disso, eles continuam a executar a verificação. Assim, para além dos

recursos de que são titular, os processos em livelock continuar a consumir

tempo de CPU.

CAPÍTULO 8 – SISTEMAS COM MULTÍPLOS PROCESSADORES

26. As máquinas virtuais não têm nada a ver com partições de disco. O

hypervisor pode tomar uma única partição de disco e dividi-lo em

subpartições e dar a cada máquina virtual de um deles. Em princípio, pode

haver centenas delas. Ele pode estaticamente particionar o disco em n

partes ou fazer isso em demanda de acordo como os blocos são solicitados.

27. Tabelas de página só podem ser modificadas pelo sistema operacional

convidado, e não aplicações presentes nos convidado.

29. Sim. O Linux foi paravirtualizado precisamente porque o código fonte é

aberto. Windows não foi paravirtualizado porque a fonte código é fechado.

30. Não, essas diferenças pode significar que portar o hypervisor de plataforma

para plataforma requer um pouco de ajustes, mas a máquina emulada é o

mesmo em todos os casos, para que o appliance virtual deve funcionar em

todos os lugares.

32. Não só a máquina precisa de memória para o normal (guest) para o sistema

operacional e todas as suas aplicações, mas também precisa de memória

para as funções de hypervisor e estruturas de dados necessários para

executar instruções sensíveis em nome do sistema operacional convidado.

Os hypervisors tem o custo adicional da operação de acolhimento de

sistema. Além disso, cada máquina virtual terá seu próprio sistema

operacional, assim não haverá N cópias do sistema operacional

armazenados na memória. Uma maneira de reuso de memória seria

identificar o "código compartilhado" e manter apenas uma cópia deste

código na memória. Por exemplo, uma empresa de hospedagem web pode

ser executada várias máquinas virtuais, cada um executando uma versão

idêntica do Linux e uma cópia idêntica do código do servidor web Apache.

Neste caso, o segmento de código pode ser compartilhado entre VMs,

embora as regiões de dados devam ser privadas.

Page 9: Resolução de Problemas - Sistemas Operacionais

9

REFERÊNCIAS BIBLIOGRÁFICAS

TANENBAUM, Andrew S. Sistemas Operacionais Modernos. 2. Ed. Prentice Hall

(Pearson), 2003.