Você está na página 1de 3

Solues - Captulo 3 - Gerncia de Memria

1)Na figura 3.3, o registrador base e o registrador limite contm o mesmo valor,16.384.
Isso apenas um acidente eles so sempre iguais? Se for apenas um acidente, por que
eles so iguais nesse exemplo?
um acidente. O registrador-base 16.384 porque o programa (precisou ser - foi) carregado
no endereo 16.384. Ele poderia ter sido carregado em qualquer lugar. O registrador limite
16.384 porque o programa contm 16.384 bytes. Ele poderia ter qualquer tamanho. O fato de
que o endereo carregado exatamente o tamanho do programa pura coincidncia.

2)Um sistema de troca de processos elimina lacunas na memria via compactao. Ao
supor uma distribuio aleatria de muitas lacunas e diversos segmentos de dados e
tempo de leitura/escrita de 10 ns para uma palavra de memria de 32 bits..
Quase toda a memria tem que ser copiada, o que exige que cada palavra a ser lida em
seguida, deve ser reescrita numa localizao 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 milhes seg, que de
cerca de 671 ms. Este nmero ligeiramente pessimista, porque se o furo inicial na parte
inferior da memria k bytes, esses bytes k no 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 clculo tambm ser pequeno.

3)Neste problema, voc deve comparar o armazenamento necessrio para manter o
controle da memria disponvel usando um mapa de bits versus uma lista encadeada. A
memria de 128 MB alocada.
O mapa de bits precisa de 1 bit por unidade de alocao. Com unidades de alocao 2^27 / n,
este 2^24 / n bytes. A lista encadeada tem 2^27/2^16 ou 2^11 ns, 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 frmulas 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 suposio de segmentos e buracos alternados a cada 64 KB muito irrealista. Alm disso,
precisamos de n <= 64 KB se os segmentos e buracos so 64 KB.


4)Considere um sistema de troca de processos entre memria e o disco no qual a
memria constituda 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 endereos virtuais decimais, calcule onmero da pgina
virtual e o deslocamento para uma pgina de 4 KB e para uma pgina de 8 KB:
20000,32768, 60000.
Para um tamanho de pgina de 4 KB a (pgina, offset) so pares (4, 3616), (8, 0), e (14,
2656). Para um tamanho de pgina de 8 KB so (2, 3616), (4, 0), e (7, 2656).


6) O processador Intel 8086 no suporta memria virtual. Apessar disso, antigamente,
algumas empresas venderam sistemas que continham uma CPU 8086 original e faziam
paginao. Suponha como eles faziam isso. dica pense em lgica da MMU.

Em computadores sem memria virtual, o endereo virtual idntico ao endereo fsico e,
assim, para ler ou escrever uma posio de memria, ele colocado diretamente no
barramento da memria. Quando a memria virtual usada, o endereo virtual no colocado
diretamente no barramento da memria. Em vez disso ele vai a uma MMU (memory
managemente unit - unidade de gerenciamento de memria), que mapeia endereos virtuais
em endereos fsicos.


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 mquina com um tamanho de pgina de 4
KB e uma TLB de entrada de 64 bits, que valores de M e N causaro uma ausncia de
pgina na TLB para cada execuo do lao inteiro?

M tem que ser pelo menos 4096 para garantir uma ausncia de pgina na TLB para cada
acesso a um elemento de X. N afeta apenas quantas vezes X acessado, qualquer valor de N
vai fazer uma ausncia de pgina.

(b) Sua resposta na parte (a) seria diferente se o lao 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 espao em disco que precisa estar disponvel para armazenamento
de pgina relacionada com o nmero mximo de processos (n), o nmero de bytes no
espao de endereamento virtual (v) e o nmero de bytes de RAM (r ). Elabore uma
expresso matemtica para os requisitos de espao de disco, considerando a pior das
hipteses. At que ponto essa quantidade realista?

O espao de endereo virtual total para todos os processos combinados nv, de modo que
este armazenamento preciso muito para pginas. No entanto, uma quantidade r pode estar
na RAM, assim a quantidade de armazenamento em disco necessrio apenas nv - r. Este
valor muito mais que sempre necessria na prtica, porque raramente haver n processos
atualmente em execuo e ainda mais raramente todos eles precisam do mximo permitido de
memria virtual.


9) Uma mquina tem um espao de endereamento de 32 bits e uma pgina de 8KB. A
tabela de pgina est totalmente em hardware, com uma palavra de 32 bits para cada
entrada. Quando um processo tem incio, a tabela de pgina copiada para o hardware a
partir da memria, no ritmo de uma palavra a cada 100ns. Se cada processo executa
durante 100 ms (incluindo o tempo para carregar a tabela de pginas), qual a frao do
tempo de CPU que dedicada ao carregamento das tabelas de pginas?

A tabela de pgina contm 2^32/2^13 entradas, que 524288. O carregamento da pgina
tabela tem 52 ms. Se um processo fica 100 ms, este consiste de 52 ms para carregar a tabela
de pgina e 48 ms para correr. Assim, 52% do tempo gasto carregamento de tabelas de
pginas.

10) Suponha que uma mquina tenha endereos virtuais de 48 bits e endereos fsicos
de 32 bits.
(a) Se as pginas so de 4KB, quantas entradas esto na tabela de pginas se ela tiver
apenas um nico nvel? Explique

Ns precisamos de uma entrada para cada pgina, ou 2^24 = 16 1024 1024 entradas, uma
vez que h 36 = 48-12 bits no campo de nmero de pgina

(b) Suponha que esse mesmo sistema tenha uma TLB com 32 entradas. Alm disso,
suponha que um programa contenha instrues que se encaixem em uma pgina e leiam
sequencialmente elementos de nmeros inteiros longos de um arranjo de milhares de
pginas. O quanto a TLB ser eficiente para este caso?

Os endereos de Instruo vai acertar 100% no TLB. As pginas de dados tero 100% taxa de
acerto at que o programa se mudou para a pgina de dados seguinte. uma vez que um de 4
KB pgina contm 1.024 inteiros longos, haver uma TLB miss e um acesso memria extra
para cada 1.024 referncias de dados.

11) Suponha que uma mquina tenha endereos virtuais de 38 bits e endereos fsicos de 32
bits.

Você também pode gostar