memória principal - IME-USP

Propaganda
Gerência da Memória
Adão de Melo Neto
1
Memória Principal
Q
Antigamente
– Recurso escasso
– Desenvolvimento de um sistema operacional (SO) que não
ocupassem muito espaço de memória principal (MP)
Q
Atualmente
– Redução do custo e aumento da capacidade das MP
– O gerenciamento da MP continua a ser um dos fatores mais
importantes do projeto de um sistema operacional
2
Memória Principal
Q
Sistemas Monoprogramáveis
– Gerência não muito complexa
Q
Sistemas Multiprogramáveis
– Gerência crítica
– Maximizar o número de usuários e aplicações utilizando de
forma eficiente o espaço da memória principal
3
Principais Funções da Gerência da
Memória Principal
Q
Reduzir o número de acessos a memória secundária
(operações de E/S)
– Tempo de acesso
Q
Manter na MP o maior número possível de processos
– Maximizar o compartilhamento do processador e dos
recurso computacionais
Memória
Secundária
4
Principais Funções da Gerência da
Memória Principal
Q
Q
Q
Mesmo não havendo espaço livre permitir que novos
processos sejam aceitos e executados
Permitir a execução de programas maiores que a
memória física disponível
Proteger a área de memória ocupada por cada processo
Processo 1
Processo 2
Processo 3
Processo 4
Memória
Secundária
5
Memória
Alocação Contínua Simples
Q
Q
Presente em alguns sistemas monoprogramáveis
MP (memória principal) dividida em duas partes:
– Sistema Operacional // Programa do usuário
Q
Preocupação:
– Não ultrapassar o espaço de memória disponível
Q
Usuário
– Total controle da MP, exceto onde está o SO (endereço protegido por
registrador)
Q
Desvantagem
– Não permite o uso eficiente dos recursos do sistema
– Apenas um usuário pode dispor desses recursos
6
Segmentação de Programas
Q
Vantagem
– Os programas não estão limitados ao tamanho da MP
Q
Solução utilizada:
– Divisão dos programas em módulos
– Execução de cada módulo utilizando a mesma área de memória
– Nome da técnica: segmentação ou overlay
Q
Exemplo:
– Módulos: principal, cadastramento e impressão (independentes)
– Módulo principal:
• É comum aos dois e deve estar na memória todo o tempo de execução
Compartilhada
entre os módulos
Tamanho do Programa
9 KB
7
Alocação Particionada Estática
Q
Q
Q
Q
Q
Memória dividida em blocos de tamanho fixo chamados de partições
Tamanho das partições
– Estabelecido em tempo de inicialização do sistema
– Função do tamanho dos programas que seriam executados.
Desvantagem: Fragmentação interna
Alocação particionada estática absoluta
– Programas só podem ser carregados/executados em uma partição fixa
de memória
Alocação particionada estática relocável
– Programas podem ser carregados/executados em qualquer partição livre
na memória
8
Alocação Particionada Estática Absoluta
9
Alocação Particionada Estática
Q
Q
Q
Q
Q
Memória dividida em blocos de tamanho fixo chamados de partições
Tamanho das partições
– Estabelecido em tempo de inicialização do sistema
– Função do tamanho dos programas que seriam executados.
Desvantagem: Fragmentação interna
Alocação particionada estática absoluta
– Programas só podem ser carregados/executados em uma partição fixa
de memória
Alocação particionada estática relocável
– Programas podem ser carregados/executados em qualquer partição livre
na memória
10
Alocação Particionada Estática Relocável
11
Alocação Particionada Estática
Q
Q
Q
Memória dividida em blocos de tamanho fixo chamados de partições
Tamanho das partições
– Estabelecido em tempo de inicialização do sistema
– Função do tamanho dos programas que seriam executados.
Desvantagem: Fragmentação interna
12
Alocação Particionada Dinâmica
Q
Fragmentação na Alocação Particionada Estática:
– É um problema a ser resolvido a fim de o grau de compartilhamento da
memória fosse aumentado
Q
Q
Q
Q
Eliminado o conceito de partição fixa
– Tamanho da partição = tamanho do programa ser carregado.
Fragmentação externa
– Ao término de um programa e início de outro, passam a existir na
memória blocos cada vez menores, não permitindo o ingresso de novos
programas
Solução
– Reunião de todos os blocos livres adjacente (nova partição)
– Realocação particionada dinâmica com realocação (realocação de
todas as partições ainda ocupadas para a parte inicial da memória,
eliminado blocos livres entre elas)
Dificuldade
– Devido a complexidade dos algoritmos, nem todos os sistemas
operacionais a utilizaram
13
Alocação Particionada Dinâmica
14
Alocação Particionada Dinâmica
Q
Fragmentação externa
– Ao término de um programa e início de outro, passam a existir na
memória blocos cada vez menores, não permitindo o ingresso de novos
programas
15
Estratégias de Alocação de Partição
Q
Em qual área livre um programa será alocado para execução
– 3 estratégias
Q
Estratégias de Alocação
– Best-fit
– Worst-fit
– First-fit
16
Estratégias de Alocação de Partição
(BEST-FIT)
Q
Q
É escolhida a melhor partição, a que deixa o menor espaço
livre sem utilização
Desvantagem:
– Acelera a fragmentação
– São alocados primeiramente as partições menores deixando
pequenos blocos fazendo com que a fragmentação apareça mais
rapidamente
17
Estratégias de Alocação de Partição
(BEST-FIT)
18
Estratégias de Alocação de Partição
(WORST-FIT)
Q
Q
É escolhida a pior partição, ou seja, a que deixa maior
espaço livre
Vantagem:
– São alocados primeiramente as partições maiores.
– Deixa espaços livre grandes o suficiente para que outros programas
utilizem estes espaços. Permite que um maior número de processos
se utilizem da memória. Retarda a fragmentação
19
Estratégias de Alocação de Partição
(WORST-FIT)
20
Estratégias de Alocação de Partição
(FIRST-FIT)
Q
Q
Esta estratégia aloca o programa na primeira partição que o
couber, independente do espaço livre que vai deixar. Das
três estratégias, esta é a mais rápida, consumindo menos
recursos do sistema.
Vantagem:
– Das três estratégias, esta é a mais rápida, consumindo menos
recursos do sistema.
21
Estratégias de Alocação de Partição
(FIRST-FIT)
22
Swapping
Q
Q
Q
Q
Visa dar uma maior taxa de utilização à memória principal, melhorando
seu compartilhamento
Visa também resolver o problema da falta da memória principal (MP) em
um sistema
Funcionamento
– Programa precisa ser alocado e não existe espaço na MP
– Sistema Operacional (SO) escolhe entre processos alocados (sem
previsão de utilização da CPU nos próximos instantes) e o descarrega
em uma área do disco denominada de arquivo de swap
– O programa , que precisava ser executado, ocupa o espaço deixado
pelo que saiu
– ... e assim sucessivamente ...
– Vai trabalhando assim até que os processos vão terminando
Desvantagem:
– Queda do desempenho devido ao número de acessos à memória secundária
23
Swapping
24
Memória Virtual
Q
Q
Q
Q
Q
Técnica de gerência de memória
As memórias principal (MP) e secundária (MS) são combinadas
dando impressão ao usuário de que existe muito mais memória
do que a capacidade real de memória principa
Memória Secundária (MS) funciona como uma extensão da MP
Não vincula o endereçamento feito pelo programa aos endereços
físicos da memória principal (MP), e sim a um endereço virtual,
pois eles podem possuir endereços vinculados á memória
secundária (MS).
Maior número de processos compartilhando o uso da memória
principal pois apenas partes do processo estarão residentes.
25
Memória Virtual
26
Memória Virtual
Q
Q
O conceito de memória virtual aproxima-se a idéia de um vetor existente
nas linguagens de alto-nível como “C”.
Quando um programa faz referência a um vetor não existe a
preocupação em saber a posição de memória (MP) daquele dado
Endereço físico na memória
principal
27
Espaço de Endereçamento Virtual/Real
Q
Q
O espaço de endereçamento virtual não tem nenhuma relação com o
espaço de endereçamento real ( o da MP).
Um programa pode fazer referência a endereços virtuais que estejam
fora do limite da memória principal, ou seja, que estejam na memória
secundária (MS), uma extensão da memória principal
28
Espaço de Endereçamento Virtual/Real
Q
Q
Q
Um programa não faz referência a endereços físicos de memória
(endereços reais da MP), mas apenas a endereços virtuais.
No momento da execução de uma instrução do programa, o endereço
virtual referenciado é traduzido para o endereço físico (da MP), pois o
processador manipula apenas endereços da MP
Note que se o endereço virtual referenciado estiver na MS ele deve ser
transportado para MP
29
Espaço de Endereçamento Virtual/Real
Q
Q
Q
Um programa pode estar parte na memória principal e parte na memória
secundária.
No momento da execução de uma instrução do programa, o endereço
virtual referenciado é traduzido para o endereço da MP pois o
processador manipula apenas endereços da MP.
Note que se o endereço virtual referenciado estiver na MS ele deve ser
transportado para MP
30
Espaço de Endereçamento Virtual/Real
Q
Q
Espaço de Endereçamento Virtual
– É o conjunto de endereços virtuais que um processo pode
endereçar
Espaço de Endereçamento Real
– É o conjunto de endereços reais que um processo pode
endereçar (está localizado na memória principal)
31
Mapeamento
Q
Q
Q
O processador executa instruções e referencia dados residentes no
espaço de endereçamento real (MP).
O mapeamento permite traduzir um endereço localizado no espaço
virtual para um localizado no espaço real (da MP)
Em conseqüência, um programa não precisa estar necessariamente em
endereços contíguos na memória principal para ser executado
32
Tabela de Mapeamento ou Tabela de Endereçamento
de Páginas
Q
Estrutura mantida pelo processo que relaciona endereços virtuais do
processo às suas posições na memória real
33
Memória Virtual por Paginação
Q
Q
Q
Q
Técnica de gerência de memória onde o espaço de endereçamento
virtual e o espaço de endereçamento real são divididos em blocos do
mesmo tamanho chamados páginas.
As páginas do espaço virtual são chamadas páginas virtuais
As páginas do espaço real são chamadas páginas reais ou frames
Cada processo possui sua própria tabela de páginas
34
Memória Virtual por Paginação
35
Memória Virtual por Paginação
Q
Q
Cada página virtual do processo possui sua entrada na tabela (ETP entrada na tabela de páginas) que permite ao sistema localizar a página
real correspondente.
Quando um programa é executado, páginas virtuais são transferidas da
MS para a MP e colocadas nos frames (páginas reais)
36
Memória Virtual por Paginação
37
Política de Busca de Páginas
Q
Q
Definem como as páginas serão carregadas da memória virtual
para a memória real.
Política por demanda
– Uma página somente será carregada quando for referenciada.
– Leva para a memória real somente as páginas realmente
necessárias à execução do programa, ficando as outras na memória
virtual.
Q
Política Paginação antecipada
– Carrega antecipadamente várias páginas da memória virtual para a
principal, na tentativa de economizar tempo de E/S.
– Nem sempre o sistema acerta na antecipação, mas o índice de
acertos é quase sempre maior que o de erros.
38
Política de Alocação de Páginas
Q
Q
Determinam quantos frames cada processo pode manter na
memória real.
Working-set
– É o conjunto de páginas de um processo, em memória real (MP), em
um determinado instante.
Q
Política de alocação fixa
– Determina um limite de working-set igual para todos os processos
– Pode ser vista como uma política injusta, na medida em que
processos maiores normalmente necessitam de um working-set
maior.
Q
A política de alocação variável
– Define um limite de working-set diferente e variável para cada
processo, em função de seu tamanho, taxa de paginação ou até
mesmo da taxa de ocupação da memória principal.
39
Política de Substituição de Páginas
Q
Q
Quando um processo atinge o limite de alocação de frames (não cabe
mais frames no espaço da MP destinado a ele) o SO deve selecionar,
dentre as páginas alocadas, qual deve ser liberada.
Page Fault
– É a falha de página.
– Sempre que o processo referencia um endereço virtual, o sistema verifica se a
página correspondente já está carregada na memória real. Se não estiver
(está na MS), acontece o page fault.
Q
Política Local
– Somente as páginas do processo que gerou o page fault são candidatas a
serem substituídas. Os frames dos demais processos não são avaliados
para substituição.
Q
Política global
– Todas as páginas alocadas na memória principal são candidatas à
substituição, independente do processo que gerou o page fault.
40
Download