Sunteți pe pagina 1din 4

Sistemas Operacionais – Prof. Rafael R. Obelheiro – Semestre: 2008.

Lista de Exercı́cios 5 — Gerência de Memória — Respostas


1. A memória contém o SO (em uma partição de 64K) e 9 processos, cada um em uma partição
de 16K. Portanto, a memória alocada é MA = 64 + 9 × 16 = 208K. A memória efetivamente
utilizada é dada pela soma dos tamanhos do SO e dos processos: MU = 48 + 10 + 4 + 7 +
9 + 12 + 13 + 5 + 16 + 6 = 130K. A memória desperdiçada é a diferença entre a alocada e a
utilizada, ou MD = MA − MU = 208 − 130 = 78K. Em termos porcentuais, isso representa
MD% = MD/MA = 78/208 = 37,5% da memória alocada.
Para obter a fragmentação média, é necessário determinar a fragmentação em cada uma das 10
partições utilizadas e calcular a média dos valores:
16 6 12 9
FSO = 64 = 0,25 F1 = 16 = 0,375 F2 = 16 = 0,75 F3 = 16 = 0,5625
7 4 3 11
F4 = 16 = 0,4375 F5 = 16 = 0,25 F6 = 16 = 0,1875 F7 = 16 = 0,6875
10
F8 = 0 F9 = 16 = 0,625

P
Fi 0,25 + 0,375 + 0,75 + 0,5625 + 0,4375 + 0,25 + 0,1875 + 0,6875 + 0,625
F̄ = = =
n 10
= 0,4125 = 41,25%

2. As lacunas ocupadas pelas requisições serão as seguintes:

(a) 10K (sobram 5K), 20K (sobram 10K), 10K (sobram 4K)
(b) 7K (sobram 2K), 10K, 9K (sobram 3K)
(c) 20K (sobram 15K), 18K (sobram 8K), 15K (sobram 9K)
(d) 10K (sobram 5K), 20K (sobram 10K), 10K (sobram 4K)

3. As lacunas ocupadas pelas requisições serão as seguintes:

(a) 20K (sobram 5K), 10K (sobram 6K), 18K (sobram 10K)
(b) 18K (sobram 3K), 4K, 9K (sobra 1K)
(c) 20K (sobram 5K), 18K (sobram 14K), 14K (sobram 6K)
(d) 20K (sobram 5K), 5K (sobra 1K), 18K (sobram 10K)

4. (a) EEL = 216 = 65.536 = 64K


(b) EEF = 220 = 1.048.576 = 1M
(c) 20 bits
(d) Dada uma página de 1K= 210 bytes, a tabela de páginas possui 216 /210 = 64 entradas.

5. (a) memória fı́sica = 224 = 16M


(b) maior programa = 220 = 1M
(c) Dada uma página de 1K= 210 bytes, a tabela de páginas possui 220 /210 = 1.024 entradas.
(d) Cada entrada na tabela de páginas ocupa 24 + 2 = 26 bits. Portanto, a tabela de páginas
ocupa 1.024 × 26 = 26.624 bits.

6. (a) Para representar 16 segmentos, são necessários log2 16 = 4 bits para o número de segmento.
(b) Cada segmento possui até 64K/512 = 128 páginas. Portanto, são necessários log2 128 = 7
bits para o número de página lógica.
(c) Como cada página tem 512 bytes, são necessários log2 512 = 9 bits de deslocamento.
(d) O endereço lógico é formado por número de segmento, número de página lógica e desloca-
mento, o que dá um total de 4 + 7 + 9 = 20 bits.

7. • First-fit: 500K (sobram 288K), 600K (sobram 183K), 288K (sobram 176K), não cabe
• Best-fit: 300K (sobram 88K), 500K (sobram 83K), 200K (sobram 88K), 600K (sobram
174K)
• Worst-fit: 600K (sobram 388K), 500K (sobram 83K), 388K (sobram 276K), não cabe
Best-fit é o mais eficiente neste caso, pois é o único que consegue alocar todos os processos.

8. (a) Como são necessários dois acessos à memória (uma à tabela de páginas e outro à página
fı́sica), o tempo de acesso é de 200 + 200 = 400 ns.
(b) h = 0,75
tac = h · tmem + (1 − h) · 2tmem = 0,75 · 200 + 0,25 · 400 = 250 ns

9. A fórmula usada para obter o endereço fı́sico é EL = BASE + EF. Representando os endereços
solicitados por letras de (a) a (e), tem-se:

(a) EF = 219 + 430 = 649


(b) EF = 2300 + 10 = 2310
(c) erro (EL > limite)
(d) EF = 1327 + 400 = 1727
(e) erro (EL > limite)
j k
endereço
10. O número de página é dado por p = tamanho página .
O deslocamento é dado por d = endereço − (p × tamanho página).
Para páginas de 4 KB, os pares (página, deslocamento) são (4, 3616), (8, 0) e (14, 2656). Para
páginas de 8 KB, os pares são (2, 3616), (4, 0) e (7, 2656).

11. A tabela de páginas contém 232 /213 = 524.488 entradas. O carregamento da tabela de páginas
leva 52 ms. Se um processo recebe 100 ms, isso corresponde a 52 ms para carregar a tabela de
páginas e 48 ms para executar. Logo, 52% do tempo do processo é gasto carregando a tabela de
páginas.

12. 20 bits são usados para o número de página virtual, e restam 12 para o deslocamento, o que dá
páginas de 212 = 4 KB. Com 20 bits para o número de página existem 220 páginas.

13. Para paginação em um nı́vel, são necessárias 220 = 1M entradas. Para paginação em dois nı́veis,
a tabela de páginas principal possui 210 = 1K entradas que apontam, cada uma, para uma tabela
de páginas de segundo nı́vel. Apenas duas dessas tabelas são usadas (uma para código+dados e
outra para pilha), cada uma tendo também 210 = 1K entradas. Portanto, no total são necessárias
3 × 210 = 3072 entradas.

14. O tempo de acesso é dado por tac = h · ttlb + (1 − h)tmem . Usando ttlb = 1 ns e tmem = 5 ns e
fazendo tac = 2 ns, tem-se:

2 = h + (1 − h)5
2 = h + 5 − 5h
h = 0,75

Ou seja, a taxa de acerto necessária é de 75%.

2
15. Suponha um sistema com 16 KB de memória que utiliza paginação, com páginas de 1 KB. Os
processos podem ter até 8 KB de memória. Em um dado instante, o sistema possui a seguinte
alocação de memória:

0 Mem Fı́sica

Processo 1 P22
P11
P12 P15
P13 P11
P14 P24
P16
P15
P23
P16
P12
Processo 2
P21 P13
P22
P23
P24 P21
P14
16383

Determine:

(a) As tabelas de páginas dos processos 1 e 2


(b) Os endereços fı́sicos correspondentes aos seguintes endereços lógicos:
P1: 512, 1023, 1024, 2000, 3100, 4000, 5200, 6000
P2: 512, 1023, 1024, 2000, 3100, 4000
(c) O tempo médio de acesso à memória para os processos 1 e 2, supondo que:
• exista uma TLB com duas entradas;
• o tempo de consulta à TLB é de 1 ns;
• o tempo de acesso à memória é de 50 ns;
• os acessos à memória são efetuados na seqüência dada no item (b);
• a tabela de páginas é armazenada na memória.

3
RESPOSTAS:

(a) Processo 1 Processo 2


Frame V Frame V
0 4096 1 0 14336 1
1 8192 1 1 1024 1
2 11264 1 2 7168 1
3 15360 1 3 5120 1
4 3072 1 4 0
5 6144 1 5 0
6 0 6 0
7 0 7 0
Os números à esquerda representam o número de página lógica, e a coluna V indica o bit
de válido de cada entrada.
(b) P1: 4608, 5119, 8192, 9168,15388, 16288, 6224, 7024
P2: 14848, 15359, 1024, 2000, 5148, 6048
(c) Os tempos de acesso são de 51 ns (em caso de acerto na TLB) e 101 ns (em caso de erro).
Tanto para P1 como para P2 são feitos pares de acessos consecutivos a uma mesma página,
o que dá um erro e um acerto na TLB a cada dois acessos. Portanto, o tempo médio de
acesso, em ambos os casos, é de (101 + 51)/2 = 76 ns.

S-ar putea să vă placă și