Sistemas Operacionais - IME-USP

Propaganda
Gerência da Memória
Memória Virtual
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 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 MO, 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
O que existe ?
– uma lista de áreas livres com endereço e o tamanho de cada área
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
Download