Buscar

document onl_solution-so

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 3 páginas

Prévia do material em texto

Soluções - Capítulo 3 - Gerência de Memória
1)Na figura 3.3, o registrador base e o registrador limite contêm o mesmo valor,16.384. Isso é apenas um acidente eles são sempre iguais? Se for apenas um acidente, por que eles são iguais nesse exemplo?
É um acidente. O registrador-base é 16.384 porque o programa (precisou ser - foi) carregado no endereço 16.384. Ele poderia ter sido carregado em qualquer lugar. O registrador limite é 16.384 porque o programa contém 16.384 bytes. Ele poderia ter qualquer tamanho. O fato de que o endereço carregado é exatamente o tamanho do programa é pura coincidência.
2)Um sistema de troca de processos elimina lacunas na memória via compactação. Ao supor uma distribuição aleatória de muitas lacunas e diversos segmentos de dados e tempo de leitura/escrita de 10 ns para uma palavra de memória de 32 bits….. 
Quase toda a memória tem que ser copiada, o que exige que cada palavra a ser lida em seguida, deve ser reescrita numa localização diferente. Leitura 4 bytes leva 10 nanossegundos, por isso a leitura 1 byte leva 2,5 ns e escrever é preciso mais 2,5 ns, para um total de 5 ns por byte compactado. Esta é uma taxa de 200.000.000 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, esses bytes k não precisa ser copiado. No entanto, se existirem muitos buracos e muitos segmentos de dados, os buracos será pequeno, de modo que k vai ser pequeno e o erro no cálculo também será pequeno.
3)Neste problema, você deve comparar o armazenamento necessário para manter o controle da memória disponível usando um mapa de bits versus uma lista encadeada. A memória de 128 MB é alocada…….
O mapa de bits precisa de 1 bit por unidade de alocação. Com unidades de alocação 2^27 / n, este é 2^24 / n bytes. A lista encadeada tem 2^27/2^16 ou 2^11 nós, cada um dos 8 bytes, para um total de 2^14 bytes. Para pequenos valores de n, a lista encadeada é melhor. Para valores de n grande, o mapa de bits é melhor. O ponto de cruzamento pode ser calculado igualando essas duas fórmulas e resolvendo para n. O resultado é uma KB. Para n menor do que 1 KB, uma ligada encadeada é melhor. Para n maior que 1 KB, um mapa de bits é melhor. Claro que, 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 buracos são 64 KB.
4)Considere um sistema de troca de processos entre memória e o disco no qual a memória é constituída dos seguintes tamanhos de lacunas em ordem na memoria: 10KB,4KB,20KB…….
Primeiro ajuste leva de 20 KB, 10 KB, 18 KB. Melhor ajuste leva de 12 KB, 10 KB e 9 KB. Pior ajuste leva de 20 KB, 18 KB e 15 KB. Em seguida ajuste leva de 20 KB, 18 KB e 9 KB.
5)Para cada um dos seguintes endereços virtuais decimais, calcule onúmero da página virtual e o deslocamento para uma página de 4 KB e para uma página de 8 KB: 20000,32768, 60000.
Para um tamanho de página de 4 KB a (página, offset) são pares (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) O processador Intel 8086 não suporta memória virtual. Apessar disso, antigamente, algumas empresas venderam sistemas que continham uma CPU 8086 original e faziam paginação. Suponha como eles faziam isso. dica pense em lógica da MMU.
Em computadores sem memória virtual, o endereço virtual é idêntico ao endereço físico e, assim, para ler ou escrever uma posição de memória, ele é colocado diretamente no barramento da memória. Quando a memória virtual é usada, o endereço virtual não é colocado diretamente no barramento da memória. Em vez disso ele vai a uma MMU (memory managemente unit - unidade de gerenciamento de memória), que mapeia endereços virtuais em endereços físicos.
7) Considere o programa em C seguinte:
int X[N];
int step = M; // M é alguma constante predefinida
for (int i=0; i<N; i += step) X[i] + 1; 
(a) Se esse programa for executado em uma máquina com um tamanho de página de 4 KB e uma TLB de entrada de 64 bits, que valores de M e N causarão uma ausência de página na TLB para cada execução do laço inteiro?
M tem que ser pelo menos 4096 para garantir uma ausência de página na TLB para cada acesso a um elemento de X. N afeta apenas quantas vezes X é acessado, qualquer valor de N vai fazer uma ausência de página. 
(b) Sua resposta na parte (a) seria diferente se o laço fosse repetido muitas vezes? Explique.
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.
8) A quantidade de espaço em disco que precisa estar disponível para armazenamento de página é relacionada com o número máximo de processos (n), o número de bytes no espaço de endereçamento virtual (v) e o número de bytes de RAM (r ). Elabore uma expressão matemática para os requisitos de espaço de disco, considerando a pior das hipóteses. Até que ponto essa quantidade é realista?
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) Uma máquina tem um espaço de endereçamento de 32 bits e uma página de 8KB. A tabela de página está totalmente em hardware, com uma palavra de 32 bits para cada entrada. Quando um processo tem início, a tabela de página é copiada para o hardware a partir da memória, no ritmo de uma palavra a cada 100ns. Se cada processo executa durante 100 ms (incluindo o tempo para carregar a tabela de páginas), qual a fração do tempo de CPU que é dedicada ao carregamento das tabelas de páginas?
A tabela de página contém 2^32/2^13 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) Suponha que uma máquina tenha endereços virtuais de 48 bits e endereços físicos de 32 bits. 
(a) Se as páginas são de 4KB, quantas entradas estão na tabela de páginas se ela tiver apenas um único nível? Explique
Nós precisamos de uma entrada para cada página, ou 2^24 = 16 × 1024 × 1024 entradas, uma vez que há 36 = 48-12 bits no campo de número de página
(b) Suponha que esse mesmo sistema tenha uma TLB com 32 entradas. Além disso, suponha que um programa contenha instruções que se encaixem em uma página e leiam sequencialmente elementos de números inteiros longos de um arranjo de milhares de páginas. O quanto a TLB será eficiente para este caso?
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) Suponha que uma máquina tenha endereços virtuais de 38 bits e endereços físicos de 32 bits.

Continue navegando