gerenciamentomemoria
TRANSCRIPT
-
8/19/2019 GerenciamentoMemoria
1/13
Sistemas Operacionais Gerenciamento de Memória R.Jensen 1
Multiprogramação por partição variável■ As partições variáveis foram desenvolvidas para substituir as partições fixas.■ Os jobs são posicionados no lugar em que se encaixam■ Inicialmente, nenhum espaço é desperdiçado.■ Pode ocorrer fragmentação externa quando algum processo for removido.
Designações de partições iniciais na programação por partição variável
“Lacunas” de memória em multiprogramação por partição variável
-
8/19/2019 GerenciamentoMemoria
2/13
Sistemas Operacionais Gerenciamento de Memória R.Jensen 2
Existem várias formas de combater a fragmentação externa:■ Coalescência
● Reúne blocos livres adjacentes em um único bloco grande.● Em geral isso não é suficiente para obter uma quantidade significativa de memória.
■ Compactação● Às vezes é chamada coleta de lixo (que não deve ser confundida com a coleta de lixonas linguagens orientadas a objeto).● Reorganização da memória em um único bloco contíguo de espaço livre e em um único
bloco contíguo de espaço ocupado.● Possibilita que todos espaços livres fiquem disponíveis.● A sobrecarga é significativa.
Coalescência de “lacunas” de memória em multiprogramação por partição variável
Compactação de memória em multiprogramação por partição variável
-
8/19/2019 GerenciamentoMemoria
3/13
Sistemas Operacionais Gerenciamento de Memória R.Jensen 3
Estratégias de posicionamento de memória em partição variável:■ Estratégia First-Fit – o primeiro que couber
● O processo é posicionado na primeira lacuna de tamanho suficiente encontrada.● Sobrecarga baixa e elementar em tempo de execução.
■ Estratégia Best-Fit – o que melhor couber● O processo é posicionado na lacuna que deixar o menor espaço não utilizado ao seu
redor.● Maior sobrecarga em tempo de execução.
■ Estratégia Worst-Fit – o que pior couber● O processo é posicionado na lacuna que deixar o maior espaço não utilizado ao seu
redor.● Nesses casos, é deixada uma outra grande lacuna, o que permite que outro processo
caiba nessa lacuna.
-
8/19/2019 GerenciamentoMemoria
4/13
Sistemas Operacionais Gerenciamento de Memória R.Jensen 4
Estratégias de posicionamento de memória em partição variável
Multiprogramação com troca de memória (SWAPPING)■ Não há necessidade de manter processos inativos na memória■ Troca (Swapping)
● Coloca apenas processos em execução (um por vez) na memória principal.→ Outros são temporariamente transferidos para o armazenamento secundário.→ Isso maximiza a memória disponível.→ Há uma sobrecarga significativa quando do chaveamento de processos.
● Melhor ainda: mantendo diversos processos na memória ao mesmo tempo.→ Menos memória disponível.→ Tempos de resposta mais rápido.→ Semelhante à paginação.
Multiprogramação em um sistema de troca de processos (swapping) no qual há somente um único processo porvez na memória principal
-
8/19/2019 GerenciamentoMemoria
5/13
Sistemas Operacionais Gerenciamento de Memória R.Jensen 5
Memória virtual■ Soluciona o problema de pouco espaço de memória.■ Cria a ilusão de que existe mais memória do que a disponível no sistema.■ Existem dois tipos de endereço nos sistemas de memória virtual:
● Endereços virtuais→ Referenciados por processos.
● Endereços físicos→ Indicam localizações físicas na memória principal.
■ Unidade de gerenciamento de memória (MMU)● Traduz os endereços virtuais para endereços físicos.
Armazenamento em dois níveis: memória principal (e os caches) e o armazenamento secundário
Espaço de endereço virtual, | V | ■ Gama de endereços virtuais que um processo pode referenciar.
Espaço de endereço real, | R | ■ Gama de endereços físicos disponíveis em um sistema de computador específico.
Mecanismo de tradução dinâmica de endereço (DAT)■ Converte endereços virtuais em endereços físicos durante a execução de um programa.
Pedaços de espaços de endereçamento existem na memória e no armazenamento secundário
-
8/19/2019 GerenciamentoMemoria
6/13
Sistemas Operacionais Gerenciamento de Memória R.Jensen 6
Paginação■ A paginação usa o mapeamento de blocos de tamanho fixo.■ O endereço virtual no sistema de paginação é um par ordenado v = (p , d ).
● p é o número da página na memória virtual na qual o item referenciado reside.● d é o deslocamento do início da página p na qual o item referenciado está localizado.
Moldura de página (page frame )■ Bloco de tamanho fixo na memória principal.■ Começa em um endereço da memória principal que é um múltiplo inteiro do tamanho fixo de
página (p’ ).
Entrada de tabela de páginas (PTE)■ Indica se uma página virtual p corresponde a uma moldura de página p´.■ Contém um bit residente para indicar se a página está na memória.
● Se estiver, a PTE armazena o número da moldura da página.● Do contrário, a PTE armazena a localização da página no armazenamento secundário.
Entrada de tabela de páginas
Modelo de paginação para as memórias virtual e física
Página 0
Página 1
Página 2
Página 3
Página n
Memória virtual(páginas)
1
1
1
1
0 n
1
4
3
7
Tabela de páginas
1
2
3
4
5
6
7
Memória físicaframes
Página 0
Página 2
Página 1
Página 3
0
-
8/19/2019 GerenciamentoMemoria
7/13
Sistemas Operacionais Gerenciamento de Memória R.Jensen 7
Tradução de endereço de paginação por mapeamento direto■ A tabela de páginas contém uma entrada para cada página do espaço de endereçamento virtual
do processo armazenada contiguamente, parecido com um arranjo de um array . Qualquerentrada pode ser referenciada diretamente por um indexador.
■ Normalmente o sistema mantém a tabela de páginas na memória principal podendo consumiruma quantidade significativa desta memória.
■ O processo referencia o endereço virtual v = (p , d ).● O endereço da memória principal da tabela de páginas de um processo é carregado noregistrador de origem da tabela de páginas.● O mecanismo DAT adiciona o endereço-base da tabela de páginas do processo, b , ao
número da página referenciada, p . ● b + p forma o endereço de memória principal da PTE para a página p . ● Essa PTE indica que a página virtual p corresponde à moldura de página p' .● O sistema concatena p´ com o deslocamento, d , para formar o endereço real, r .
Tradução de endereço de paginação por mapeamento direto
■ Tabelas de páginas multiníveis■ Pode diminuir a sobrecarga de memória em comparação ao sistema de mapeamento direto.■ Esse sistema pode armazenar em localizações não contíguas da memória principal apenas as
porções da tabela de páginas que o processo está usando.■ As demais porções da tabela de páginas podem ser criadas da primeira vez que forem usadas e
tranferidas para o armazenamento secundário quando não estiverem mais sendo usadas.■ Cada nível contém uma tabela que armazena ponteiros para tabelas do nível que está abaixo.■ O nível mais inferior compreende as tabelas que contêm os mapeamentos de molduras.■ Por exemplo, um sistema que utilize dois níveis de tabelas de páginas:
● O endereço virtual é a tripla ordenada v = (p, t, d) onde (p, t) indica o número da página.● O endereço da memória principal do diretório de páginas (a) é carregado no registrador de
origem do diretório de páginas e é adicionado valor de p .● A entrada a + p contém o endereço de início da tabela de páginas correspondente, b .● O sistema adiciona t à b para localizar a entrada da tabela de páginas que armazena um
número de moldura de página, p' . ● O sistema concatena p´ com o deslocamento, d , para formar o endereço real, r .
-
8/19/2019 GerenciamentoMemoria
8/13
Sistemas Operacionais Gerenciamento de Memória R.Jensen 8
Tradução de endereço de páginas multiníveis
Tabelas de páginas invertidas■ Armazenam exatamente uma PTE na memória para cada moldura de página no sistema.■ O número de PTEs é proporcional ao tamanho da memória física e não ao tamanho do espaço
de endereçamento virtual do processo.■ Usam funções de hash para mapear páginas virtuais para entradas de tabela de páginas
invertidas.■ Uma função de hash é uma função matemática que toma um número como entrada e dá um
número de saída denomindado valor de hash, dentro de uma faixa finita.■ A função de hash eventualmente pode gerar uma saída repetida, já utilizada por outra entrada,
que é denominada como colisão.■ Quando um valor de hash mapeia um item para uma localização que já está ocupada, uma nova
função de hash é aplicada e a entrada é colocada na nova localização. Um ponteiro para essanova localização é anexado à entrada do valor do hash original para garantir que sejaencontrado. Normalmente são utilizadas listas encadeadas para essa finalidade.
■ O processo referencia o endereço virtual v = (p , d ).● Para localizar a entrada de tabela de hash da página virtual p , é aplicada a função de hash
a p que gera um valor q .● Se a posição q da tabela de páginas invertidas contiver p , o endereço virtual requisitado
estará na moldura de página q .● Se a posição q da tabela de páginas invertidas tiver outro conteúdo que não p , será
verificado o ponteiro de encadeamento e se for diferente de nulo acontecerá uma colisão. Osistema seguirá os ponteiros da cadeia até encontrar uma entrada que contenha p ou até acadeia terminar, quando será emitida uma requisição de falta de página residente.
● Então p está localizado na moldura de página p' e o sistema concatena p´ com o
deslocamento, d , para formar o endereço real, r .
-
8/19/2019 GerenciamentoMemoria
9/13
Sistemas Operacionais Gerenciamento de Memória R.Jensen 9
Tradução de endereço de página usando tabelas de páginas invertidas
Movimento de paginação:■ Page in
● É o movimento de uma página da memória virtual para a memória física.● Ocorre quando uma página necessária para processamento não se encontra na memória
física.■ Page out
● É o movimento de uma página da memória física para a memória virtual.● Ocorre quando a memória física está cheia e há necessidade de se liberar espaço.
■ Page fault● É a constatação de que uma página necessária para processamento não se encontra ainda
na memória física.
Conceitos de Localidade■ Localidade temporal: é a localidade ao longo do tempo. Por exemplo, se o tempo está bom em
um determinado horário em uma cidade existe uma grande chance de estar bom também noshorários subsequentes.
■ Localidade espacial: significa que itens próximos devem ser semelhantes. Por exemplo, se otempo está bom em uma cidade existe uma grande chance de estar bom também nas cidadespróximas.
■ Um processo tende a referenciar memória conforme padrões altamente localizados.■ Nos sistemas de paginação, os processos tendem a favorecer determinados subconjuntos de
suas páginas, e essas páginas tendem a ser adjacentes entre si no espaço de endereço virtualdo processo.
-
8/19/2019 GerenciamentoMemoria
10/13
Sistemas Operacionais Gerenciamento de Memória R.Jensen 10
Políticas de busca de páginas■ Paginação por demanda
● Quando um processo é executado pela primeira vez, o sistema transfere para a memóriaprincipal a página que contém sua primeira instrução.
● Depois disso, o sistema só transferirá uma página do armazenamento secundário para amemória principal quando o processo referenciar explicitamente essa página.
■ Paginação antecipada ● O sistema operacional tenta prever as páginas que um processo necessitará e carrega
previamente essas páginas quando há espaço disponível na memória.● Deve ser projetada cuidadosamente de modo que a sobrecarga dessa estratégia não
diminua o desempenho do sistema.
Estratégias de substituição de páginas■ Técnica empregada por um sistema para selecionar páginas para substituição quando a
memória está cheia.■ Determina onde se deve colocar na memória principal uma página ou segmento que estáentrando.
Substituição de páginas FIFO (first-in-first-out – primeira a entrar, primeira a sair)■ Substitui a página que está há mais tempo no sistema.■ Pode substituir páginas que são intensamente usadas.■ Pode ser implementada com uma sobrecarga relativamente baixa.■ Não é prática para a maioria dos sistemas.
Substituição de páginas FIFO (primeira a entrar, primeira a sair)
-
8/19/2019 GerenciamentoMemoria
11/13
Sistemas Operacionais Gerenciamento de Memória R.Jensen 11
Anomalia de FIFO (ou de Belady)■ Intuitivamente imaginamos que quanto mais molduras de páginas forem alocadas a um
processo, menos falta de páginas o processo experimentaria.■ Porém, foi constatado que determinados padrões de referência de página de fato causam mais
falhas quando o número de molduras de página alocadas a um processo aumenta.
Anomalia de FIFO
Substituição de página LRU (least recently used – menos recentemente usada)■ Explora a localidade temporal substituindo a página que ficou mais tempo na memória sem ser
referenciada.■ Em relação à FIFO, pode oferecer melhor desempenho.■ A sobrecarga do sistema é maior.■ O desempenho da substituição LRU pode ser inadequado se a página menos recentemente
usada for a página seguinte a ser referenciada por um laço que referencia diversas páginas.
-
8/19/2019 GerenciamentoMemoria
12/13
Sistemas Operacionais Gerenciamento de Memória R.Jensen 12
Substituição de página ótimo■ A página que no futuro estiver mais distante de ser referenciada será removida.■ Fácil de descrever mas impossível de implementar.
Substituição de página segunda chance - modificação da FIFO■ Examina o bit referenciado da página mais antiga.
● Se estiver desligado,→ a estratégia seleciona essa página para substituição.
● Se estiver ligado,→ a estratégia desliga o bit e move a página para o final da fila FIFO.
■ Garante que as páginas ativas sejam as que menos têm probabilidade de ser substituídas.
Comportamento do programa sob paginação■ Os processos tendem a referenciar uma parte significativa de suas páginas logo depois que aexecução é iniciada.■ Eles acessam a maioria das páginas remanescentes mais vagarosamente.
Porcentagem de páginas referidas de um processo ao longo do tempo
-
8/19/2019 GerenciamentoMemoria
13/13
Sistemas Operacionais Gerenciamento de Memória R.Jensen 13
Exercício: Em uma memória real com quatro molduras (frames) disponíveis, na sequência em que as páginasabaixo são solicitadas para processamento, mostre o comportamento das páginas de cada um dos algoritmos -FIFO, LRU e ÓTIMO - através da tabela de controle de ocupação da memória. Considerar que o último elementode cada coluna deve conter a próxima página a ser substituida.
FIFO5 8 0 4 8 2 8 3 4 2 8 2 4 0 4 8 0 5 8 0
Total de falta de páginas =
LRU5 8 0 4 8 2 8 3 4 2 8 2 4 0 4 8 0 5 8 0
Total de falta de páginas =
ÓTIMO5 8 0 4 8 2 8 3 4 2 8 2 4 0 4 8 0 5 8 0
Total de falta de páginas =