capitulo 3 tanenbaum

9
Pré-visualização SOLUÇÕES DOS PROBLEMAS DO CAPÍTULO 3 1. É um acidente. O cadastro é base de 16.384 porque o programa passou a ser carregado no endereço 16384. Podia ter sido carregado em qualquer lugar. O limite registro é 16384, pois o programa contém 16.384 bytes. Poderia ter havido qualquer comprimento. Que o endereço de carga acontece para coincidir exatamente com o programa, o comprimento é pura coincidência. 2. Quase toda a memória tem que ser copiado, o que exige que cada palavra a ser lida e depois reescrita em um local diferente. Leitura 4 bytes leva 10 nanossegundos, para ler um byte leva 2,5 ns e escrever é preciso outro 2,5 ns, para um total de 5 ns por byte compactado. Esta é uma velocidade de 200 milhões de bytes / seg. Para copiar 128 MB (227 bytes, que é de cerca de 1,34 × 108 bytes), o computador precisa de 227/200 milhões seg, que é de cerca de 671 ms. Este número é ligeiramente pessimista, porque se o furo inicial na parte inferior da memória é k bytes, os bytes k não precisa ser copiado. No entanto, se existirem muitos buracos e segmentos de muitos dados, os buracos será pequeno, então k será pequeno e o erro no cálculo também será reduzido. 3. O bitmap precisa de um pouco por unidade de alocação. Com 227 unidades / n alocação, esta é 224 / n bytes. A lista ligada tem 227/216 ou 211, todos os nós de 8 bytes, para uma total de 214 bytes. Para n pequeno, a lista ligada é melhor. Para n grande, o bitmap é melhor. O ponto de cruzamento pode ser calculado igualando estas duas fórmulas e resolvendo para n. O resultado é uma KB. Para n menor do que 1 KB, uma ligada lista é melhor. Para n maior do que 1 KB, um bitmap é melhor. Naturalmente, o suposição de segmentos e buracos alternados a cada 64 KB é muito irrealista. Além disso, precisamos de n <= 64 KB se os segmentos e os buracos são de 64 KB. 4. Ajuste primeira leva de 20 KB, 10 KB, 18 KB. Melhor ajuste leva 12 KB, 10 KB e 9 KB. Pior ajuste leva 20 KB, 18 KB e 15 KB. Ajuste próxima leva de 20 KB, 18 KB, e 9 KB.

Upload: lucas-vinicius

Post on 04-Jan-2016

275 views

Category:

Documents


20 download

DESCRIPTION

Respostas referentes ao CAPITULO 3 DO LIVRO SISTEMAS OPERACIONAIS MODERNOS

TRANSCRIPT

Page 1: CAPITULO 3 TANENBAUM

Pré-visualização

SOLUÇÕES DOS PROBLEMAS DO CAPÍTULO 3 1. É um acidente. O cadastro é base de 16.384 porque o programa passou a ser carregado no endereço 16384. Podia ter sido carregado em qualquer lugar. O limite registro é 16384, pois o programa contém 16.384 bytes. Poderia ter havido qualquer comprimento. Que o endereço de carga acontece para coincidir exatamente com o programa, o comprimento é pura coincidência. 2. Quase toda a memória tem que ser copiado, o que exige que cada palavra a ser lida e depois reescrita em um local diferente. Leitura 4 bytes leva 10 nanossegundos, para ler um byte leva 2,5 ns e escrever é preciso outro 2,5 ns, para um total de 5 ns por byte compactado. Esta é uma velocidade de 200 milhões de bytes / seg. Para copiar 128 MB (227 bytes, que é de cerca de 1,34 × 108 bytes), o computador precisa de 227/200 milhões seg, que é de cerca de 671 ms. Este número é ligeiramente pessimista, porque se o furo inicial na parte inferior da memória é k bytes, os bytes k não precisa ser copiado. No entanto, se existirem muitos buracos e segmentos de muitos dados, os buracos será pequeno, então k será pequeno e o erro no cálculo também será reduzido. 3. O bitmap precisa de um pouco por unidade de alocação. Com 227 unidades / n alocação, esta é 224 / n bytes. A lista ligada tem 227/216 ou 211, todos os nós de 8 bytes, para uma total de 214 bytes. Para n pequeno, a lista ligada é melhor. Para n grande, o bitmap é melhor. O ponto de cruzamento pode ser calculado igualando estas duas fórmulas e resolvendo para n. O resultado é uma KB. Para n menor do que 1 KB, uma ligada lista é melhor. Para n maior do que 1 KB, um bitmap é melhor. Naturalmente, o suposição de segmentos e buracos alternados a cada 64 KB é muito irrealista. Além disso, precisamos de n <= 64 KB se os segmentos e os buracos são de 64 KB. 4. Ajuste primeira leva de 20 KB, 10 KB, 18 KB. Melhor ajuste leva 12 KB, 10 KB e 9 KB. Pior ajuste leva 20 KB, 18 KB e 15 KB. Ajuste próxima leva de 20 KB, 18 KB, e 9 KB. 5. Para um tamanho de página de 4 KB os pares (página, offset) são (4, 3616), (8, 0) e (14, 2656). Para um tamanho de página de 8 KB são (2, 3616), (4, 0), e (7, 2656). 6. Eles construíram uma MMU e inserido entre o 8086 eo ônibus. Assim, todos 8086 endereços físicos entrou na MMU como endereços virtuais. a MMU então mapeado-los para endereços físicos, que foram para o ônibus. 7. (a) M tem que ser de pelo menos 4096 para assegurar a miss TLB para cada acesso a um elemento de X. Uma vez que N só afecta o número de vezes que X é acessado, qualquer valor de N vai fazer. (b) M ainda deve ser pelo menos 4096 para assegurar a miss TLB de todos os acessos a uma elemento de X. Mas agora N deve ser maior que 64 K para discutir a TLB, isto é, X deve exceder 256 KB.

Page 2: CAPITULO 3 TANENBAUM

8. O espaço de endereço virtual total para todos os processos combinados é nv, de modo que este armazenamento é preciso muito para páginas. No entanto, uma quantidade r pode estar na RAM, assim a quantidade de armazenamento em disco necessário é apenas nv - r. Este valor é muito mais que é sempre necessária na prática, porque raramente haverá n processos atualmente em execução e ainda mais raramente todos eles precisam do máximo permitido de memória virtual. 9. A tabela de página contém 232/213 entradas, que é 524288. O carregamento da página tabela tem 52 ms. Se um processo fica 100 ms, este consiste de 52 ms para carregar a tabela de página e 48 ms para correr. Assim, 52% do tempo gasto carregamento de tabelas de páginas. 10. (a) Nós precisamos de uma entrada para cada página, ou 224 = 16 × 1024 × 1024 entradas, uma vez que há 36 = 48-12 bits no campo de número de página. (b) os endereços de Instrução vai acertar 100% no TLB. As páginas de dados terão 100 taxa de acerto até que o programa se mudou para a página de dados seguinte. uma vez que um De 4 KB página contém 1.024 inteiros longos, haverá uma TLB miss e um acesso à memória extra para cada 1.024 referências de dados. 11. (a) A tabela de página multinível reduz o número de páginas reais da página tabela que precisa estar na memória por causa de sua estrutura hierárquica. Na verdade, em um programa com muitas instruções e dados de localidade, só precisamos do de nível superior da tabela de 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 de página. O campo offset requer 14 bits para endereçar 16 KB. Isso deixa 24 bits para os campos de página. Desde cada entrada é de 4 bytes, uma página pode armazenar 212 entradas de tabela de página e, portanto, requer 12 bits para uma página de índice. Assim, a atribuição 12 bitsfor cada um dos campos de página irá abordar todos os 238 bytes. 12. Vinte bits são utilizados para obter os números de página virtual, deixando 12 mais para o deslocamento. Isso gera uma página de 4 KB. Vinte bits para a página virtual implica 220 páginas. 13. O número de páginas depende do número total de bits de a, b e c em conjunto. Como eles são divididos entre os campos não importa.

Page 3: CAPITULO 3 TANENBAUM

14. Para uma tabela de página de um nível, existem 232/212 ou páginas 1M necessário. Assim, o tabela de páginas deve ter entradas 1M. Para dois níveis de paginação, a tabela página principal tem entradas de 1K, cada um dos quais aponta para uma tabela segunda página. Apenas dois desses são utilizados. Assim, no total, somente três entradas da tabela de páginas que são necessárias, uma no quadro de nível superior e um em cada uma das tabelas de nível inferior. 15. O tempo de instrução é eficaz 1h + 5 (1 - h), onde h é a taxa de sucesso. Se equacionar essa fórmula com dois e resolver para h, vemos que h deve ser de pelo menos 0.75. 16. O bit R nunca é necessário na TLB. A simples presença de uma página lá significa que a página foi referenciada, caso contrário não estaria lá. Assim, o bit é completamente redundante. Quando a entrada é escrita de volta para a memória, no entanto, o bit de R na tabela de página de memória é definido. 17. Uma memória associativa essencialmente compara uma chave para os conteúdos de várias regista simultaneamente. Para cada registo tem de haver um conjunto de comparadores que comparar cada bit o conteúdo do registro para a chave que está sendo procurado. O número de portas (ou transistores) necessário para implementar um tal dispositivo é uma função linear do número de registos, de modo a expandir desenho fica caro linearmente. 18. Com páginas de 8 KB e um de 48 bits de espaço de endereço virtual, o número de virtual páginas é 248/213, que é de 235 (cerca de 34 milhões). 19. A memória principal tem 228/213 = 32.768 páginas. Uma tabela de hash 32K terá um comprimento médio da cadeia de 1. Para chegar em 1, temos que ir para o próximo tamanho, 65.536 entradas. Espalhando 32.768 entradas sobre 65.536 slots de mesa vai dar um significa o comprimento da cadeia de 0,5, o que assegura a pesquisa rápida. 20. Esta não é provavelmente possível, exceto para o caso incomum e não muito útil de um programa cujo curso de execução é completamente previsível em tempo de compilação. Se um compilador coleta informações sobre os locais no código de chamadas para procedimentos, esta informação pode ser usada em tempo de ligação para reorganizar o código objeto para que os procedimentos foram localizados perto do código que chama eles. Isto faria com que seja mais provável que um procedimento seria na mesma página como o código de chamada. É claro que isso não ajudaria muito para procedimentos chamado a partir de muitos lugares no programa. 21. (a) Cada referência será falha de página, a menos que o número de quadros da página é de 512,

Page 4: CAPITULO 3 TANENBAUM

o comprimento da sequência inteira. (b) Se existem 500 quadros, páginas 0-498 mapa para quadros fixos e variam apenas um quadro. 22. Os quadros de página para FIFO são os seguintes: x0172333300 xx017222233 xxx01777722 xxxx0111177 Os quadros de página para LRU são os seguintes: x0172327103 xx017232710 xxx01773271 xxxx0111327

FIFO rende seis falhas de página; LRU rende sete. 23. A primeira página com um bit 0 será escolhida, neste caso, D. 24. Os contadores são: Page 0: 0110110 Página 1: 01001001 Página 2: 00110111 Página 3: 10001011 25. A sequência de 0, 1, 2, 1, 2, 0, 3. Em LRU, página 1 será substituída pela página 3. No relógio, página 1 será substituído, uma vez que todas as páginas serão marcados e o cursor está na página 0. 26. A idade da página é 2204 - 1213 = 991. Se τ = 400, é definitivamente fora de o conjunto de trabalho e não foi recentemente referenciado por isso vai ser despejada. O τ = 1000 situação é diferente. Agora, a página se enquadra no conjunto de trabalho (Mal), por isso não é removido. 27. A latência de procura acrescida de rotação é de 20 mseg. Para 2-KB páginas, o tempo de transferência é de 1,25 ms, para um total de 21,25 ms. Carregando 32 destas páginas terá 680 mseg. Para páginas de 4 KB, o tempo de transferência é dobrado a 2,5 ms, e assim o tempo total por página é 22,50 ms. Carregando 16 destas páginas leva 360 milissegundos.

Page 5: CAPITULO 3 TANENBAUM

28. NRU remove página 2. FIFO remove página 3. LRU remove página 1. Segundo oportunidade remove página 2. 29. Fragmento B, pois o código tem localidade mais espacial do que Fragmento A. laço interno faz com que apenas uma falha de página para cada iteração outro do exterior loop. (Haverá apenas 32 falhas de página.) Além (Fragmento A): Uma vez que um quadro é de 128 palavras, uma linha da matriz X ocupa metade da página (isto é, 64 palavras). Toda a matriz se encaixa em 64 × 32/128 = 16 quadros. O anel interior do código passos através de linhas consecutivas de X para uma determinada coluna. Assim, todos os outros referência a X [i] [j] vai causar uma falha de página. O número total de falhas de página será 64 × 64/2 = 2.048. 30. O tambor PDP-1 paging tinha a vantagem de não haver latência rotacional. Este salvo meia rotação cada memória um tempo foi escrito ao tambor. 31. O texto é de oito páginas, os dados são cinco páginas, ea pilha é de quatro páginas. O programa não se encaixa porque ele precisa de 17 páginas de 4096 bytes. Com um 512 - página byte, a situação é diferente. Aqui o texto é de 64 páginas, os dados são 33 páginas, ea pilha é de 31 páginas, para um total de 128 páginas de 512 bytes, que se encaixa. Com o tamanho de página pequeno é OK, mas não com o grande. 32. Se as páginas podem ser compartilhados, sim. Por exemplo, se dois usuários de um sistema de tempo compartilhado a executar o mesmo editor, ao mesmo tempo, e o texto do programa é repartido em vez de copiados, algumas dessas páginas pode ser em conjunto de trabalho de cada usuário em ao mesmo tempo. 33. O programa é colocar falhas de página 15000, cada um dos quais usa 2 ms de extra o tempo de processamento. Juntos, a sobrecarga falha de página é 30 seg. Isto significa que, do sec 60, metade foi gasta em cima da falha de página e meia sobre a execução de o programa. Se executar o programa com o dobro de memória, temos meia como falhas de memória muitas páginas, e apenas 15 segundos de sobrecarga de falha de página, de modo que o tempo de execução total será de 45 seg. 34. Ele trabalha para o programa, se o programa não pode ser modificado. Ele trabalha para o de dados se os dados não podem ser modificados. No entanto, é comum que o programa não podem ser modificados e extremamente raro que os dados não podem ser modificados. Se a área de dados no arquivo binário foram substituídos por páginas atualizadas, o próximo vez que o programa foi iniciado, ele não teria os dados originais. 35. A instrução poderia estar montado em um limite de página, fazendo com que duas falhas de página só para buscar a instrução. A palavra buscada também pode abranger um limite de página, gerando duas falhas mais, para um total de quatro. Se as palavras devem estar alinhados em memória, a palavra de dados só podem causar falha de um, mas de uma instrução de carregar um 32-bit palavra no endereço 4094 em uma máquina com uma página de 4 KB é legal em

Page 6: CAPITULO 3 TANENBAUM

alguns máquinas (incluindo o Pentium). 36. Não. A chave de pesquisa usa tanto o número do segmento e o número da página virtual, de modo a página exata pode ser encontrada em uma única partida. 37. Aqui estão os resultados: Endereço Falha (a) (14,3) Não (ou 0xD3 ou 1110 0011) (b) NA Falha de proteção: Escreva para leitura / execução segmento (c) NA Falha de página (d) NA Falha de proteção: Ir para ler / escrever segmento 38. Suporte de memória geral virtual não é necessário quando os requisitos de memória de todas as aplicações são bem conhecidos e controlados. Alguns exemplos são para fins especiais (por exemplo, processadores, processadores de rede), processadores embarcados e super-computadores (por exemplo, projeto de asa de 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 mais simples e menor. Por outro lado, algumas ideias de memória virtual pode ainda ser lucrativa explorada, embora com diferentes requisitos de projeto. Para exemplo, o isolamento programa / segmento pode ser de paginação de memória flash.