Documente Academic
Documente Profesional
Documente Cultură
Sistemas Operacionais I
Dionisio Gava Junior
Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I
MEMÓRIA VIRTUAL
Muitos estudos realizados tem mostrado que um programa quando restrito em termos
de espaço de memória, implicará em um custo crescente de programação ao longo de
sua manutenção.
Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I
• Fragmentação
§ O sistema operacional não deve permitir que a memória torne-se fragmentada ou
qualquer outra situação de sub-utilização.
Espaço Virtual
§ Os programas contém descrições dos dados, de instruções e descrições de E/S. Os dados
são descritos com nomes simbólicos, tais como “salário”, “campoa”, “endereço”, etc.
§ Algumas instruções ou grupos de instruções, da mesma forma que um campo na memória,
poderão possuir nomes simbólicos, os quais são referenciados nas operações de desvio.
§ O programa fonte será efetivamente uma combinação de instruções simbólicas, descrições de
dados e descrições de operações de E/S, todos estes existindo em um espaço construído
pelo programador.
§ Esta combinação de instruções simbólicas e nomes simbólicos passaram a ser parte
integrante do processo de desenvolvimento, estão presentes em todas as linguagens de
programação.
Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I
Tradução de Endereços
Endereço da
próxima instrução
PSW Traducao
Tabela
Paginas Endereco
Endereco Real
Virtual
Memoria Real
Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I
Tipos de Relocação
Estática
É feita no momento em que o programa carregado para a memória. A tradução feita em
uma única vez na compilação do programa. O resultado um espaço de endereçamento que
terá a origem zero, e por isso deverá ser carregado na localização zero da memória real.
Dinâmica
É feita no momento da execução do programa. A cada instrução ou dados referenciado,
haverá a tradução de endereços. O programa não tendo endereçamento absoluto, não
necessitará estar carregado continuamente.
Memória Virtual
§ Em todos os esquemas não virtuais vistos anteriormente, notou-se que um serviço não
poderia ser executado, caso não houvesse memória suficiente para carregar todo o espaço
de endereçamento.
§ Esta restrição resulta em áreas livres não utilizadas e serviços que ficam esperando para
ser carregados e executados.
§ A solução para estes problemas basicamente foi a utilização de MEMÓRIA VIRTUAL.
§ Com o uso de memória virtual, o sistema operacional produz a ilusão de existir uma
memória extremamente grande. Como isto é somente uma ilusão, pois e memória não
existe fisicamente, é denominada memória virtual.
§ A utilização de memória virtual possui várias implementações. Analisaremos a seguir uma
delas denominada "PAGINAÇÃO POR DEMANDA".
Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I
§ A técnica de gerenciamento denominada Paginação por Demanda, permitirá que a soma
dos espaços de todos os programas seja maior que a memória física disponível.
§ Esta será permitida pelo fato de que todo o espaço do programa não necessitará estar na
memória física de uma vez, ao contrário disto, somente as partes ativas de cada
programa terá de ser carregada.
Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I
Paginas 4K
Slots 4K
SO
Memória Real
§ A memória física será dividida em blocos iguais. A área em que estará carregado o sistema
operacional não sofre a divisão em blocos.
§ Os Blocos normalmente são de 4096k, ou seja, 4K
§ São denominados Paginas
1 6 11 16 21
2 7 12 17 22
3 8 13 18 23
4 9 14 19 24
5 10 15 20 25
SO
Memória Real
(Física / RAM)
Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I
Carga do Processo
§ O sistema, identifica o tamanho do módulo, em seguida, identifica paginas livres na memória real
que possam ser alocadas.
§ Inicialmente o Programa (ou programas) que compõe (m) o Processo A é (são) carregado (s)
pagina por pagina na memória.
1 6 11 16 21
2 7 12 17 22
A 3 8 13 18 23
4 9 14 19 24
5 10 15 20 25
SO
Saída de
Paginas
Retorno de
Paginas
SO
Memória Real
Caso o hardware no momento da tradução encontrar o estado "N" na tabela de páginas, para aquela página
específica, gerado neste instante uma interrupção por falta de página.
Endereço da
próxima instrução
PSW Traducao
Interrupcao
Falta de
04 02 0001 0000 000010120000
Pagina
Tabela
Paginas
Endereco
Virtual
Este tipo de interrupção faz com que o sistema operacional carregue de volta para a memória e atualize a tabela de
páginas.
Exatamente por isso o esquema denominado "PAGINAÇÃO POR DEMANDA". Desta forma todas as páginas
necessárias serão carregadas por demanda. Isto garante que páginas não necessárias não sejam carregadas.
Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I
§ A interrupção fará com que o sistema operacional receba o controle, que identifica o tipo de
interrupção, e que por sua vez fará com que a página demandada seja carregada do disco para a
memória. Uma vez recarregada, o programa poderá voltar a executar.
Retorno de
Paginas
SO
Memória Real
Memória Auxiliar
Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I
Saída de
Paginas
SO
Memória Real
Memória Auxiliar
Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I
• Uma tabela para cada processo é criada no momento em que o processo e iniciado.
• A Tabela conterá todo mapeamento virtual, bem como as alocações na memória Real e Auxiliar.
• A medida em que o Processo for executando, poderá sofrer atualizações no mapa de Alocações
Processo A
Virtual Bloco Disco 1 6 11 16 21
2 7 12 17 22
1 1 - 3 8 13 18 23
2 7 - 4 9 14 19 24
5 10 15 20 25
3 8 -
4 19 - SO
5 15 -
Memória Real
Endereços (RAM)
Virtuais Endereços
Endereços Memória
de paginas Memória Auxiliar
Real
Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I
§ O sistema controla o nível de utilização de memória, ou seja, mantém permanentemente o controle
das paginas disponíveis, quais processos estão utilizando cada pagina, bem como, no caso das
paginas alocadas, qual nível de utilização de cada pagina.
§ A cada intervalo regular, atualiza o indicador de uso, e reflete na tabela de Paginas da Memória Real,
indicando se a pagina foi acessada e/ou atualizada.
§ A rotina de Controle do Estado executa a cada segundo, e neste intervalo faz atualização da Tabela
da Memória Real.
§ O ciclo de atualização pode ser mais rápido, e é dependente do modelo da CPU. Ocorre normalmente
a cada segundo ou menor tempo.
1s 1s 1s 1s 1s 1s 1s 1s Tempo
§ Quando a quantidade de paginas livres, diminuem e atingem um determinado limite estabelecido,
o sistema inicia o Roubo de Paginas com Base no algoritmo MRU:
1. Identifica na tabela de Memória Real as paginas inativas, ou seja, menos
frequentemente utilizadas.
2. Faz uma cópia destas paginas para memória auxiliar (se necessário)
3. Libera as paginas na memória real.
4. Atualiza em seguida as tabelas de cada programa impactado pelo Roubo de paginas,
representando o estado corrente de alocação.
§ Os programas, portanto, poderão ter somente parte de suas paginas na memória real, e as
demais na memória auxiliar.
§ Note que o programa estará sempre carregado, todo ou em parte, seja na memória real, seja na
memória auxiliar. Estará virtualmente sempre carregado
Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I
§ Durante
a
execução,
o
Processo
A
estará
tendo
páginas
roubadas
(liberadas)
em
função
de
não
estarem
sendo
u=lizadas,
ou
rela=vamente
muito
pouco
u=lizadas.
§ Ainda,
se
necessário,
as
páginas
roubadas
(liberadas),
poderão
ser
trazidas
de
volta
para
a
memória.
§ A
cada
movimentação
da
página
(in
ou
Out)
a
Tabela
do
Processo
é
atualizada
com
os
novos
endereços.
Processo A
Virtual Bloco Disco
1 - 31
2 7 6
3 8 -
4 25 85
5 15 -
Endereços
Virtuais Endereços
Endereços Memória
Memória Auxiliar
Real
Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I
Na utilização é verificado se o bloco foi ou não referenciado, e caso não tenha sido, será
somado "1" no contador de não referência (CNR ou UIC). Caso o controle do bloco tenha
sido alterado, o bit de alteração conterá o valor "1".
Para liberar blocos, o sistema pesquisar os blocos com maior UIC, e caso o bit de alteração
esteja em 1, fará uma cópia para o disco antes da liberação.
Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I
2
1 6 11 16 21
2
3
7 12 17 22
3 8 13 18 23 4
4 9 14 19 24
5
5 10 15 20 25
6
7
SO
8
Memória Real 9
25
Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I
Partes muito utilizadas residirão na memória, e partes pouco utilizadas residirão em disco e
somente serão trazidas para a memória quando necessárias.
2
1 6 11 16 21
2
3
7 12 17 22
3 8 13 18 23 4
4 9 14 19 24
5
5 10 15 20 25
6
7
SO
8
Memória Real 9
25
Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I
Tabela de Blocos
Na utilização é verificado se o bloco foi ou não referenciado, e caso não tenha sido, será
somado "1" no contador de não referência (CNR ou UIC). Caso o controle do bloco tenha
sido alterado, o bit de alteração conterá o valor "1".
Para liberar blocos, o sistema pesquisar os blocos com maior UIC, e caso o bit de alteração
esteja em 1, fará uma cópia para o disco antes da liberação.
Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I
1 6 11 16 21 1 6 11 16 21 1 6 11 16 21
2 7 12 17 22 2 7 12 17 22 2 7 12 17 22
3 8 13 18 23 3 8 13 18 23 3 8 13 18 23
4 9 14 19 24 4 9 14 19 24 4 9 14 19 24
5 10 15 20 25 5 10 15 20 25 5 10 15 20 25
SO SO SO
A
B
1 6 11 16 21 1 6 11 16 21 1 6 11 16 21
2 7 12 17 22 2 7 12 17 22 2 7 12 17 22
3 8 13 18 23 3 8 13 18 23 3 8 13 18 23
4 9 14 19 24 4 9 14 19 24 4 9 14 19 24
5 10 15 20 25 5 10 15 20 25 5 10 15 20 25
SO SO SO
C D E
1 6 11 16 21
2 7 12 17 22
Pontos de Reflexão:
3 8 13 18 23
Remoção de Páginas
§ Uma vez que a memória física esteja totalmente cheia, o sistema não poderá
carregar do disco para a memória uma página que fosse demandada.
§ Neste caso dever haver uma política de remoção de páginas a ser realizada.
§ Para liberar blocos na memória física, o sistema avaliará os blocos menos
utilizados, fará a liberação dos mesmos e atualizará as tabelas.
Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I
1 A 121 0
2 A 0 1
1 6 11 16 21
3 A 32 0
2 7 12 17 22 4 A 67 0
3 8 13 18 23 5 A 3 0
4 9 14 19 24
6 B 102 1
5 10 15 20 25
7 B 76 1
8 B 5 0
SO
9 B 26 0
n 71
Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I
1
0 0
2 A 0 1
3 A 32 0
4
0 0
Liberação de Paginas
5 A 3 0
Menos frequentemente
6
Utilizadas 0 0
7
Maiores UIC 0 0
8 B 5 0
9 B 26 0
n 71
Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I
1 6 11 16 21
Processo F
2 7 12 17 22
3 8 13 18 23
Fragmentação?
4 9 14 19 24
5 10 15 20 25
SO
Questões:
• Como será a alocação de novos programas?
• ´Teoricamente seria possível a carga de um programa maior que o espaço memória real
disponível?
Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I
1 6 11 16 21 1 6 11 16 21
Processo F
2 7 12 17 22 2 7 12 17 22
3 8 13 18 23 3 8 13 18 23 Processo G
4 9 14 19 24 4 9 14 19 24
5 10 15 20 25 5 10 15 20 25
SO SO
Reflexões:
• Os programas não são carregados continuamente na memória
• Caso necessário o sistema liberará paginas inativas. (MFU ou LRU)
• Somente as partes ativas dos programas permanecerão se houver necessidade de
recurso.
• O nivel de multiprogramação tenderá a ser bem maior, uma vez que somente as partes
ativas dos programas permanecerão na memória.
Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I
Falta de Pagina
Funcionamento:
1 6 11 16 21
• O programa A em execução tenta desviar para endereços
da pagina 4.
2 7 12 17 22
• A pagina 4 não se encontra disponível na memória real.
3 8 13 18 23
Havia sido liberada por não estar ativa, e por ter existido
necessidade de mais memória para outros processos.
4 9 14 19 24
§ Cada programa a ser executado, terá criada uma tabela que representa o seu espaço
de endereçamento. Através desta tabela, o sistema tem condições de identificar as
paginas virtuais, as paginas correspondentes na memória real, ou na memória auxiliar.
Processo A
Aspectos:
Virtual Bloco Disco
§ Os endereços virtuais são contínuos
1 - 31
Endereços
Virtuais Endereços
Endereços Memória
Memória Auxiliar
Real
Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I
SO
Tabelas
de Paginas
Vantagens
• Ampla memória virtual: Os programas não se limitam ao tamanho da memória física.
• Uso eficiente de memória: As partes dos programas pouco ou raramente utilizadas, não
residirão na memória física..Aumento da multiprogramação: A memória virtual possibilita
o aumento do número de programas em execução, bem como aumento do tamanho.
Desvantagens
• .Trabalho não produtivo: O sistema operacional para exercer o gerenciamento consumir
ciclos de CPU.
Thrashing:
Caso a demanda de páginas seja muito alta, o sistema passa a gastar muito tempo para
resolver atividades de paginação, sendo que este gasto poderá coibir a utilização do
sistema pelos programas aplicativos.
Exercicio de Sistema Operacional I – Comparação do Gerenciamento Virtual e Não Virtual
n 71
1 6 11 16 21
2 7 12 17 22
3 8 13 18 23
Falta de Pagina Tabela de Programas
4 9 14 19 24
(Entrada)
5 10 15 20 25
SO
Virtual Bloco Disco
Gerenciamento do processador
Estados de um Processo
SO
.
Lista Ligada – Controle BCPs