Vous êtes sur la page 1sur 19

CENTRO UNIVERSITRIO ANHANGUERA DE CAMPO GRANDE

CINCIA DA COMPUTAO

















SISTEMAS OPERACIONAIS
RESUMO E QUESTES DO CAPTULO 10 PLT
GERNCIA DE MEMRIA VIRTUAL























CAMPO GRANDE/MS MAIO/2013


CENTRO UNIVERSITRIO ANHANGUERA DE CAMPO GRANDE


DANNY ELVIS FERNANDES
JEFERSON HORTENCIO RODRIGUES
LEANDRO LOPES PESQUEIRA








SISTEMAS OPERACIONAIS
RESUMO E QUESTES DO CAPTULO 10 PLT
GERNCIA DE MEMRIA VIRTUAL



Trabalho desenvolvido durante a disciplina de
Sistemas Operacionais como parte da
avaliao referente ao 2 bimestre do 5
Semestre do Curso de Cincia da Computao.
Professor: Jorge Neto













CAMPO GRANDE/MS MAIO/2013
3

Sumrio
1. INTRODUO ...................................................................................................................... 4
2. GERNCIA DE MEMRIA VIRTUAL ............................................................................... 5
3. QUESTES ............................................................................................................................ 9
4. REFERNCIAS BIBLIOGRFICAS ................................................................................. 19
4

1. INTRODUO


O presente trabalho um resumo do captulo 10 do PLT sobre Gerncia de Memria
Virtual. Muitas vezes utilizando um computador nos deparamos com o termo memria
virtual, mas no sabemos ao certo qual a sua importncia. O objetivo do trabalho esclarecer,
atravs de um resumo dos principais pontos do livro texto, os conceitos, caractersticas e
importncia do sistema de gerenciamento da memria virtual em um sistema operacional.







































5

2. GERNCIA DE MEMRIA VIRTUAL


Memria Virtual uma tcnica pela qual possvel utilizar uma parte do disco rgido
como se fosse memria RAM, assim sendo, o sistema operacional capaz de executar
aplicaes mesmo que a soma de todos os programas em execuo simultnea supere a da
memria RAM instalada no computador. Outra vantagem de memria virtual permitir um
nmero maior de processos compartilhando a memria principal, j que apenas partes de cada
processo estaro residentes. Isto leva a uma utilizao mais eficiente tambm do processador.
Alm disso, essa tcnica possibilita minimizar o problema da fragmentao da memria
principal.
Um programa no ambiente de memria virtual no faz referncia a endereos fsicos
de memria (endereos reais), mas apenas a endereos virtuais. No momento da execuo de
uma instruo, o endereo virtual referenciado trazido para um endereo fsico, pois o
processador manipula apenas posies da memria principal. O mecanismo de traduo do
endereo virtual para endereo fsico denominado mapeamento. O espao de
endereamento de um processo conhecido como espao de endereamento virtual e
representa o conjunto de endereos virtual que o processo pode enderear. Cada processo tem
seu espao de endereamento virtual como se possusse sua prpria memria. O mecanismo
de traduo se encarrega, ento, de manter tabelas de mapeamento exclusivas para cada
processo, relacionando os endereos virtuais do processo s suas posies na memria real.
Nos sistemas modernos, a tarefa de traduo de endereos virtuais realizada pelo
sistema operacional juntamente com um dispositivo de hardware conhecido como unidade de
gerncia de memria (Memory Management Unit MMU).
As tcnicas que permitem a implementao da memria virtual so trs: paginao,
segmentao e segmentao com paginao.
A memria virtual por paginao a tcnica de gerncia em que o espao de
endereamento virtual e o espao de endereamento real so divididos em blocos de mesmo
tamanho chamados pginas.
O mecanismo de memria virtual permite a execuo de um programa sem que seu
cdigo esteja completamente residente na memria principal. A poltica de busca de pginas
determina quando uma pgina deve ser carregada para a memria. Basicamente, existem duas
estratgias para este propsito: paginao por demanda onde as pginas so transferidas da
6

memria secundria para a principal apenas quando so referenciadas e paginao
antecipada onde o sistema carrega para a memria principal, alm da pgina referenciada,
outras pginas que podem ou no ser necessrias ao processo ao longo do seu processamento.
A poltica de alocao de pginas determina quantos frames cada processo pode
manter na memria principal atravs da alocao fixa onde cada processo tem um nmero
mximo de frames que pode ser utilizado durante a execuo do programa e da alocao
varivel onde o nmero mximo de pginas alocadas ao processo pode variar durante sua
execuo em funo de sua taxa de paginao e da ocupao da memria principal.
A poltica de substituio de pginas o mecanismo na qual o sistema operacional,
quando um processo atinge o seu limite de alocao de frames e necessita alocar novas
pginas na memria principal, seleciona, dentre as diversas pginas alocadas, qual dever ser
liberada.
A poltica de substituio de pginas pode ser classificada conforme seu escopo, ou
seja, dentre os processo residentes na memria principal quais so candidatos a ter pginas
relocadas. Em funo desse escopo, a poltica de substituio pode ser local onde apenas as
pginas do processo que gerou a page fault (so pginas modificveis que foram gravadas na
memria secundria) so candidatas a relocao ou global onde todas as pginas alocadas
na memria principal so candidatas substituio, independente do processo que gerou o
page fault.
Segmentao o particionamento de cdigo que gera tamanhos variveis, conforme o
momento da execuo, parte dos dados do transferidos temporariamente para memria
principal a fim de serem processados e retornando para a memria secundria quando o
sistema operacional solicitar.
Os algoritmos que definem quais pginas a memria ir carregar, so classificados em
algoritmos de espao fixo ou varivel, alguns deles so:
FIFO um algoritmo de substituio de pgina de baixo custo, de fcil
implementao e esta consiste em substituir a pgina que foi carregada h mais tempo na
memria, as vezes pode prejudicar o desempenho pois ele no verifica se a pgina est sendo
utilizada.
LFU esse algoritimo escolhe a pgina que foi menos acessada, um contador de
acessos associado a cada pgina, as pginas recm carregadas so prejudicadas pois cada vez
que uma pgina eliminada o contador zera, e estando com o contador zerado tem mais
chance de ser excludo.
7

LRU um algoritmo que substitui a pgina que menos foi utilizada recentemente, a
implementao do LRU tambm pode ser feita atravs de uma lista, pagina mais referenciadas
do incio e as menos referenciadas no final, o problema o custo, pois a lista deve ser
atualizada a cada referncia de pgina.
NRU, o algoritmo procura por pginas que no foram referenciadas nos ltimos
acessos para serem substitudas, verifica se a pgina teve alguma modificao enquanto
estava na memria, criando uma prioridade.
FIFO com buffer de pginas esse algoritmo combina uma lista de pginas
alocadas(LPA) com uma lista de pginas livres(LPL), a primeira organiza todas as pginas
que esto sendo utilizadas na memria principal, colocando as que esto alocadas h mais
tempo na memria no incio da lista e as mais atuais no final. A segunda lista organiza todas
as pginas livres da mesma forma que a primeira, sendo assim, caso o processo precise alocar
uma nova pgina, o sistema pega a primeira pgina tenha que liberar uma pgina, o
mecanismo seleciona a primeira pgina da LPL e coloca no final da LPA, caso tenha que
liberar uma pgina, o mecanismo seleciona o frame em uso h mais tempo, nesse caso o
primeiro LPA, colocando no final da LPL.
FIFO circular utiliza como base o FIFO, entretanto as pginas alocadas esto em uma
estrutura circular, semelhante a um relgio. A posio da pgina mais antiga guardada por
um ponteiro, indicando que a mesma foi referenciada recentemente. Cada pgina possui
associado um bit de referncia. Quando necessrio substituir uma pgina, o sistema verifica
se o frame apontado tem o bit de referncia desligado, a pgina selecionada para descarte,
pois, alm de ser a mais antiga, no foi utilizada recentemente. Por outro lado, se a pgina
apontada tem o bit de referncia ligado, o bit desligado e o ponteiro incrementado, pois,
apesar de ser a pgina mais antiga, foi utilizada recentemente. O processo se repete at
ser encontrada uma pgina com bit de referncia igual a zero.
Uma tabela constitui vrias paginas o tamanho dessas paginas variam de acordo com
sua arquitetura de desenvolvimento para uma melhoria de sua utilizao na memria principal
, seu desempenho torna se maior com paginas pequenas e com paginas maiores ocorrem
problemas de fragmentaes interno .
Dois nveis que uma tabela mapeia e recolhe paginas necessrias aos processos para
no acumular na memria principal, e depois facilita a localizao do frame na tabela , assim
facilita seu uso por separar apenas tabelas necessrias para seu processo , diminuindo o uso da
memria principal e melhorando seu desempenho .
8

Com semelhana a memria cache de manter suas ltimas utilizaes, simplifica suas
buscas de acessos onde mantm uma quantidade de frames na memria principal, com seu
mapeamento assim no sendo necessrio acesso as tabelas de pagina, caso ocorra de no estar
necessrio a busca por tabela, e assim ocorre a traduo do endereo, reduzindo operaes
de acessos a memria principal.
Consiste no sistema uma proteo feita por processos diferenciados, onde cada um
processa de forma diferente, tabelas que constituem sua localizao e processos individuais.
Como um sincronismo entre tabelas que busca o mesmo frame na memria principal,
mas cada um com seu processo.
Um programa dividido em tamanhos desiguais possuindo nmeros mximos de
segmentos realizados pelo compilador, alocadas na memria principal, seu dinamismo facilita
em seu uso, quando necessita uma nova compilao , apenas as necessrias sero
recompiladas, sua localizao a tabela de mapeamento de seguimentos, e com sua fcil
compatibilidade em estruturas dinmicas, aumentando e diminuindo assim menos complexa
ao seu desenvolvimento.
Quando ocorrem partes vazias na memria principal, ocorre problema como
fragmentao externa, corrigindo com realocao de novos segmentos para preencher essas
partes vazias.
Na proteo da memria basta indicar um endereo do seguimento especificando seus
acessos e seus compartilhamentos, baseia em estruturas lgicas de tabelas de seguimentos.
O segmento virtual obtm uma entrada de informao da tabela de pagina, e a pagina
identifica unicamente pagina que contem endereo , alocando a posio em relao no qual se
encontra , obtendo o endereo do frame, contido no endereo virtual.
Uma forma de aumentar processamento e compartilhamento da memria principal,
onde o swapping seleciona processos da memria principal, e transferem para memria
secundaria, assim liberando mais espaos na memria principal, quando necessrio eles
retornam novamente a memria principal para sua execuo.
Consiste em alocao excessiva da memria principal, e memria secundaria, onde por
paginao o numero elevado de paginas em execuo, onde pode ocorrer erros como alocao
incorreta e localizao inexistente, e tamanho de processos maior que a memria principal.
J na segmentao, transferncia em excesso de segmentos, e tambm com processos
maiores que a memria principal.
A nica soluo entre ambas para esses processos a expanso da memria principal.
9

3. QUESTES


1. Os principais benefcios da tcnica de memria virtual so possibilitar que
programas e dados sejam armazenados independente do tamanho da memria principal,
permitir um nmero maior de processos compartilhando a memria principal e minimizar o
problema da fragmentao. O que possibilita que um programa e seus dados ultrapassem os
limites da memria principal a tcnica de gerncia de memria virtual que combina as
memrias principais e secundrias, estendendo o espao de endereamento dos processos.

2. Quando um programa executado, as pginas virtuais so transferidas da memria
secundria para a memria principal e colocadas nos frames. Sempre que um programa fizer
referncia a um endereo virtual, o mecanismo de mapeamento localizar na ETP (entrada na
tabela de pginas) da tabela do processo o endereo fsico do frame no qual se encontra o
endereo real correspondente.

3. Porque caso o mapeamento fosse realizado para cada clula na memria principal, o
espao ocupado pelas tabelas de mapeamento seria to grande quanto o espao de
endereamento virtual de cada processo, o que inviabilizaria a implementao do mecanismo
de memria virtual. Um processo em um sistema computacional com arquitetura de 32 bits
poderia ter 4 G endereos virtuais e, consequentemente, tabelas de mapeamento com 4 G
entradas.

4. A principal diferena entre os dois sistemas est relacionada a forma como o espao
de endereamento virtual est dividido logicamente. Na paginao, o espao de
endereamento est dividido em blocos com o mesmo nmero de endereos virtuais (pginas),
enquanto que na segmentao o tamanho dos blocos pode variar (segmentos).

5. Pgina virtual um conjunto de endereos virtuais que faz parte do espao de
endereamento virtual de um processo. Pgina real um conjunto de endereos reais
localizado na memria principal. A pgina real est sempre associada a uma pgina virtual.

6. So tabelas de mapeamento, utilizadas no mecanismo de memria virtual, que
possibilitam que endereos virtuais sejam traduzidos em endereos reais.
10

7. Para indicar se a pgina ou o segmento em questo encontra-se na memria
principal.

8. O page fault ocorre todas as vezes que um processo faz referncia a um endereo
virtual pertencente a uma pgina virtual que no se encontra mapeada em uma pgina real, ou
seja, no est, no momento, na memria principal. A ocorrncia de um page fault verificada
atravs do bit de validade presente na ETP da tabela de pginas referente pgina virtual.
Uma elevada taxa de page fault pode comprometer o desempenho do sistema devido ao
excessivo overhead de operaes de E/S gerados pela paginao.

9. No. A rotina de tratamento de page faults tem que permanecer sempre residente na
memria principal, caso contrrio no ser possvel realizar o page in quando necessrio (no
caso, at mesmo da prpria rotina).

10. A fragmentao interna em um sistema que implementa paginao s encontrada,
realmente, na ltima pgina, quando o cdigo no ocupa o frame por completo .

11. Na paginao por demanda, as pginas dos processos so transferidas da memria
secundria para a principal apenas quando so referenciadas. Este mecanismo conveniente,
na medida em que leva para a memria principal apenas as pginas realmente necessrias
execuo do programa. Desse modo, possvel que partes no executadas do programa, como
rotinas de tratamento de erros, nunca sejam carregadas para a memria.
Na paginao antecipada, o sistema carrega para a memria principal, alm das pginas
referenciadas, outras pginas que podem ou no ser necessrias ao processo ao longo do seu
processamento. Se imaginarmos que o programa est armazenado seqencialmente no disco,
existe uma grande economia de tempo em levar um conjunto de pginas da memria
secundria, ao contrrio de carregar uma de cada vez. Por outro lado, caso o processo no
precise das pginas carregadas antecipadamente, o sistema ter perdido tempo e ocupado
memria principal desnecessariamente.

12. A alocao fixa simples de ser implementada pelo sistema operacional mas no
sempre uma boa opo pois os processos possuem necessidades diferentes na alocao de
memria. A alocao varivel mais flexvel, mas exige que o sistema operacional monitore
constantemente o comportamento dos processos gerando maior overhead.
11

13)
a)
NPV Frame
9 4
10 9
34 3
65 7

b)
NPV Frame
9 4
10 9
12 3
49 0
65 7

c) O endereo virtual possui 9 bits para enderear a tabela de pginas e 9 bits para o
deslocamento dentro da pgina.

d) O endereo virtual 4613 encontra-se na pgina virtual 9 (4613/512), que inicia no
endereo virtual 4608. Como o deslocamento dentro do endereo virtual 5, o endereo fsico
a soma deste mesmo deslocamento ao endereo inicial do frame 2048, ou seja, 2053.

14)
a) Pgina 3 est mapeada no frame 10 que o 110 frame da memria principal.
Endereo fsico: (11 x 2K)-1= 22.527

b) Pgina 2 est mapeada no frame 100 que o 1010 frame da memria principal.
Endereo fsico: (100 x 2K)= 204.800

c) Pgina 3 est mapeada no frame 10 que o 110 frame da memria principal. O
primeiro endereo da pgina 3 (10x2K) = 20.480 somando ao deslocamento 10 = 20.490

12

d) 0, 1, 2, 3 e 6.

15).
a) Pgina virtual 1, deslocamento 51 e est na memria.

b) Pgina virtual 8, deslocamento 1 e no est na memria.

c) Pgina virtual 9, deslocamento 0 e est na memria.

16).
a) Pag. 2 (2048 / 3071), pag. 3 (3072 / 4095), pag. 5 (5120 / 6143) e pag. 7 (7168 /
8191).

b) End. Virtual 0 (PV 0 / Desloc 0) End. Real = 3072 + 0 = 3072
End. Virtual 1023 (PV 0 / Desloc 1023) End. Real = 3072 + 1023 = 4095
End. Virtual 1024 (PV 1 / Desloc 0) End. Real = 1024 + 0 = 1024
End. Virtual 6500 (PV 6 / Desloc 356) End. Real = 0 + 356 = 356
End. Virtual 3728 (PV 3 / Desloc 656) Page Fault

17). Porque quando um processo atinge seu limite de alocao de frames, h a
necessidade de se alocar novas pginas na memria principal e o sistema operacional escolhe
dentre as diversas pginas alocadas qual dever ser substituda. A polcia de substituio local
quando apenas as pginas do processo que gerou a page fault (so pginas modificveis que
foram gravadas na memria secundria) so candidatas a relocao. J a poltica de
substituio global quando todas as pginas alocadas na memria principal so candidatas
substituio, independente do processo que gerou o page fault.

18). Para indicar se a pgina ou segmento foi modificado desde o momento em que foi
carregado pela tlima vez na memria principal.

19). O princpio da localidade fundamental para qualquer sistema que implemente a
gerncia de memria virtual, pois reduz a ocorrncia de page/segments faults e,
conseqentemente, operaes de E/S.

13

20). Porque o princpio da localidade no se faz presente em cdigos desestrurados.

21). Para que o sistema operacional consiga identificar as pginas modificadas, pois
sempre que uma pgina sofre alterao, o valor do bit de modificao alterado, indicando
que a mesma foi modificada.

22).
a) 11 bits.
b) 2
24
/2
11
= 2
13

c) 10.240+2.047=12.287
d) (00080A)16 = 2058, pgina virtual 1, deslocamento 100e endereo fsico igual a
100.
e) Pginas 0 e 2 pois esto na memria principal e possuem BM=1.

23).
a) 1 / 2 / 3 / 1 / 4 / 2 / 5 / 3 / 4 / 3

FIFO = Total PF = 5 (melhor poltica)
1 2 3 1 4 2 5 3 4 3
PF PF PF - PF (sai 1) - PF (sai 2) - - -


LRU = Total PF = 8

1 2 3 1 4 2 5 3 4 3
PF PF PF - PF (sai 2) PF (sai 3) PF (sai 1) PF (sai 4) PF (sai 2) -


b) 1 / 2 / 3 / 1 / 4 / 1 / 3 / 2 / 3 / 3

FIFO = Total PF = 7

1 2 3 1 4 1 3 2 3 3
PF PF PF - PF (sai 1) PF (sai 2) - PF (sai 3) PF (sai 4) -


LRU = Total PF = 5 (melhor poltica)

1 2 3 1 4 1 3 2 3 3
PF PF PF - PF (sai 2) - - PF (sai 4) - -

14

24).
a) 4 bits para o nmero da pgina, possibilitando enderear as 16 pginas possveis, e
12 bits para o deslocamento, possibilitando enderear os 4K endereos de uma pgina.

b)
Pgina Referenciada Pgina Removida Page Fault (sim/no)
5 - No
15 0 Sim
12 2 Sim
8 1 Sim
0 9 Sim

25).
a) 5 bits para o nmero da pgina e 11 bits para o deslocamento.

b)
Pgina Virtual Pginas na Memria Page Fault Pgina a ser Susbtituida
0 - S -
7 0 S -
2 7,0 S -
7 2,7,0 N -
5 7,2,0 S -
8 5,7,2,0 S 0
9 8,5,7,2 S 2
2 9,8,5,7 S 7
4 2,9,8,5 S 5
- 4,2,9,8 - -


26).
a) Nos instantes (T + 3) quando a pgina 3 descartada e (T + 4) quando a pgina 6
descartada. Ambas as pginas tm indicativo que sofreram modificao, sendo necessrio
armazen-las no arquivo de paginao.
15

b) No instante (T + 1) pois com o page in da pgina 9 chega-se ao limite de 10 pginas
na memria principal.

c) A pgina 3 j que a primeira a ser descartada.

d) Atravs do bit de validade da pgina 1.

27).
a) Frame 0.
b) Frame 2.
c) Frame 1.

28).
FIFO gera 6 page faults
Pgina Virtual Pginas na Memria Page Fault Pgina a ser Susbtituida
0 - S -
1 0 S -
7 1,0 S -
2 7,1,0 S -
3 2,7,1,0 S 0
2 3,2,7,1 N -
7 3,2,7,1 N
1 3,2,7,1 N -
0 3,2,7,1 S 1
3 0,3,2,7 N -
- 0,3,2,7 - -







16


LRU gera 7 page faults
Pgina Virtual Pginas na Memria Page Fault Pgina a ser Susbtituida
0 - S -
1 0 S -
7 1,0 S -
2 7,1,0 S -
3 2,7,1,0 N 0
2 3,2,7,1 N -
7 2,3,7,1 N -
1 7,2,3,1 N -
0 1,7,2,3 S 3
3 0,1,7,2 S 2
- 3,0,1,7 - -


29). Um buffer de pginas modificadas permite adiar a gravao de pginas
modificadas que foram selecionadas para realocao e seriam gravadas em disco, otimizando
o desempenho do sistema.

30). Existe uma relao entre o tamanho da pgina e o nmero de operaes de E/S
que o sistema dever executar para carregar as pginas da memria secundria para a memria
principal. Quanto menor o tamanho da pgina, maior o nmero de operaes de E/S,
aumentando a taxa de paginao. Por outro lado, pginas pequenas oferecem menor
fragmentao interna.

31). O endereo virtual formado por NPV1 com 2 bits, NPV2 com 21 bits e
deslocamento com 9 bits.

32). Como existem 12 bits para o deslocamento, temos 2
12
endereos, ou seja, pginas
de 4Kb. Como existem 20 bits para o endereamento de pginas virtuais, temos 2
20
pginas
possveis.

17

33). O endereo virtual formado por NPV1 com 8 bits, NPV2 com 6 bits, NPV3 com
6 bits e deslocamento com 12 bits. Se um processo, quando fosse criado, alocasse todas as
tabelas de pginas possveis, o processo teria tabelas que somadas endereariam 220 posies.
Para evitar que a memria principal seja ocupada com pginas que talvez nunca sejam
utilizadas, o processo aloca suas tabelas de pginas dinamicamente, conforme a necessidade.
Por exemplo, quando o processo for criado, apenas uma pgina de nvel 1 (28 posies), uma
pgina de nvel 2 (26 posies) e uma pgina de nvel 3 (26 posies) so alocadas
inicialmente.

34). O tempo de acesso memria (TAM) calculado a partir das taxas de acerto e
falha na TLB, ou seja, TAM igual a (0.98% * tempo de acesso TLB) + (nmero de nveis
* (0.02% * tempo de acesso memria)) = (0.98%*0) + (2 * (0.02%*100)) = 4ns. O tempo
total para a execuo da instruo igual a soma do tempo de leitura da instruo (4ns), do
tempo de leitura do operando direto (4ns) e do tempo de leitura do operando indireto
(8ns), totalizando 16 ns.

35). Na tcnica de memria virtual por segmentao com paginao, um endereo
virtual formado pelo nmero do segmento virtual (NSV), um nmero de pgina virtual
(NPV) e um deslocamento. Atravs do NSV, obtm-se uma entrada na tabela de segmentos,
que contm informaes da tabela de pginas do segmento. O NPV identifica unicamente a
pgina virtual que contm o endereo, funcionando como um ndice na tabela de pginas. \o
deslocamento indica a posio do endereo virtual em relao ao incio da pgina na qual se
encontra. O endereo fsico obtido, ento, combinando-se o endereo do frame, localozado
na tabela de pginas com o deslocamento, contido no endereo virtual.

36). Na maioria das polticas, o critrio de escolha considera o estado do processo e
sua prioridade, buscando dessa forma identificar o processo com as menores chances de serem
executados.

37). O problema da fragmentao existe tanto na gerncia de memria virtual por
paginao quanto na por segmentao. A fragmentao interna ocorre na memria virtual por
paginao na ltima pgina, caso no seja totalmente ocupada. A fragmentao externa ocorre
na memria virtual por segmentao em funo dos espaos livres deixados entre segmentos
alocados na memria principal.
18

38). Thrashing conseqncia da excessiva paginao/segmentao em sistemas que
implementam memria virtual, levando o sistema a dedicar mais tempo com operaes
relacionadas gerncia da memria do que no processamento das aplicaes dos usurios.














































19

4. REFERNCIAS BIBLIOGRFICAS

MACHADO, F.B.; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. Rio de Janeiro,
LTC, 2012, p.174-205.

Vous aimerez peut-être aussi