Buscar

Gerenciamento de Memória - Parte I

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Sistemas Operacionais
Gerenciamento Básico de Memória
Parte I
Prof. Sílvio Fernandes
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO
DEPARTAMENTO DE CIÊNCIAS EXATAS E NATURAIS
CURSO DE CIÊNCIA DA COMPUTAÇÃO
Introdução
 Idealmente, o que todo programador deseja é 
dispor de uma memória que seja
 Grande
 Rápida
 Não volátil
 O gerenciador de memória trata a hierarquia 
de memórias
2
Introdução
 A maioria dos computadores modernos possui 
uma hierarquia de memória combinando
 Uma pequena quantidade de memória cache
volátil, muito rápida e muito cara
 Uma quantidade mediana de memória principal 
(RAM), ainda volátil e com preço e velocidades 
também medianos
 Uma grande quantidade de memória secundária 
(disco), não volátil, de baixo custo e lenta
 Cabe ao SO coordenar a utilização delas
3
Introdução
 A parte do SO que gerencia (parcialmente) 
isso é o gerenciador de memória
 Sua função 
 Manter o controle de quais partes da memória estão 
em uso quais não estão
 Alocar memória aos processos que eles precisam
 Liberar memória quando estes terminam
 Gerenciar a troca de processos ou parte deles 
(swapping) entre memória e disco quando a 
memória principal não é suficiente para todos os 
processos
4
Introdução
 Geralmente o nível mais baixo (cache) é 
gerenciado pelo hardware
 Gerenciamento de memória evoluiu 
juntamente com o SO
 Sem abstração de memória
 Com abstração de memória
 Memória virtual
5
Sem abstração de memória
 Quando um programa executava uma 
instrução 
 MOV REGISTER1, 1000
 O computador movia do end. 1000 para o registrador
 A memória física era um conjunto de 
endereços de 0 a um máximo
 Outro programa não podia executar pois 
poderia acessar mesmas posições de memória
6
Sem abstração de memória
 Três modelos de memória com apenas 
memória física
7É possível que um erro no programa de usuário apague o SO
Para obter paralelismo só com múltiplos threads
Fonte: TANENBAUM, Andrew S. Sistemas Operacionais 
Modernos. 3. ed., Prentice Hall, 2009
Executando múltiplos programas 
sem abstração de memória
 Sem memória é possível executar múltiplos 
programas simultaneamente
 Há apenas 1 programa na memória
 Troca de processos (swapping)
 Os primeiros IBM 360 resolviam dividindo a 
memória em blocos de 2 KB e a cada um 
atribuída uma chave de proteção de 4 bits
 Essa solução tinha a desvantagem de como fazer a 
relocação
8
Executando múltiplos programas 
sem abstração de memória
9
Fonte: TANENBAUM, Andrew 
S. Sistemas Operacionais 
Modernos. 3. ed., Prentice 
Hall, 2009
Executando múltiplos programas 
sem abstração de memória
 Relocação estática
 Somar as referencias a endereços das instruções a 
constante relativa ao endereço inicial onde o 
programa foi carregado
 Problema em instruções
 MOV REGISTER1, 28
 Onde 28 é uma constante e não um endereço
10
Abstração de memória: espaços de 
endereçamento
 Para que múltiplas aplicações estejam na 
memória sem interferência mútua é preciso:
 Proteção e relocação
 O IBM 360 resolvia o 1º. problema com as 
chaves de proteção mas não a relocação
 Como o conceito de processo crio um tipo de 
CPU abstrata -> o espaço de endereçamento 
cria um tipo de memória abstrata para abriga-
los
11
Abstração de memória: espaços de 
endereçamento
 Espaço de endereçamento: é o conjunto de 
endereços que um processo pode usar para 
endereçar a memória
 Cada processo tem seu próprio espaço, 
independente dos outros (exceto no 
compartilhamento)
 Dar a cada programa seu próprio espaço é
 Endereço 28 em um programa significa uma 
localização física diferente do endereço 28 de outro 
programa
12
Abstração de memória: espaços de 
endereçamento
 Registradores-base e registradores-limite
 Solução simples da relocação dinâmica
13
Fonte: TANENBAUM, Andrew 
S. Sistemas Operacionais 
Modernos. 3. ed., Prentice 
Hall, 2009
Reg- base
Reg- limite
Reg- base
Reg- limite
Abstração de memória: espaços de 
endereçamento
 Registradores-base e registradores-limite
 Solução simples da relocação dinâmica
14
Fonte: TANENBAUM, Andrew 
S. Sistemas Operacionais 
Modernos. 3. ed., Prentice 
Hall, 2009
16384
32764
Reg- base
Reg- limite
Processo 1 executando
Processo executa:
JMP 28
Hardware executa
JMP 16412
Abstração de memória: espaços de 
endereçamento
 Registradores-base e registradores-limite
 Solução simples da relocação dinâmica
15
Fonte: TANENBAUM, Andrew 
S. Sistemas Operacionais 
Modernos. 3. ed., Prentice 
Hall, 2009
0
16380
Reg- base
Reg- limite
Processo 2 executando
Abstração de memória: espaços de 
endereçamento
 Troca de Memória
 Às vezes não há memória principal suficiente para 
conter todos os processos ativos, de modo que os 
excedentes devem ser mantidos em disco e trazidos 
dinamicamente para a memória a fim de serem 
executados
 Há dois métodos para isso:
 Troca de processos (swapping)
 Memória virtual
16
Abstração de memória: espaços de 
endereçamento
 Troca de Processos
 Alterações na alocação de memória à medida que
processos entram e saem da memória
 Regiões sombreadas correspondem a regiões de memória
não utilizadas naquele instante 17
Fonte: TANENBAUM, Andrew 
S. Sistemas Operacionais 
Modernos. 3. ed., Prentice 
Hall, 2009
Abstração de memória: espaços de 
endereçamento
 Troca de Processos
 Registradores-base e registradores-limites
funcionam bem aqui
 Deixam muitos espaços vazios na memória
 Usar técnica de compactação de memória
 Não é usada em virtude do tempo de processamento
 Ex:
 Uma máquina com 1GB de memória e que possa copiar
4 bytes em 20 ns gastaria ceca de 5 s para compactar
toda memória
18
Abstração de memória: espaços de 
endereçamento
 Troca de Processos
 Um ponto importante é a quantidade de 
memória que deve ser alocada a um 
processo
 Com um tamanho fixo a alocação é simples
 Se a área de dados do processo puder crescer, problemas
poderão ocorrer
19
Abstração de memória: espaços de 
endereçamento
 Troca de Processos
20
Fonte: TANENBAUM, Andrew 
S. Sistemas Operacionais 
Modernos. 3. ed., Prentice 
Hall, 2009
Gerenciando a memória livre
 Gerenciamento com mapa de bits
 A memória é dividida em unidades de alocação, a 
qual é associado um bit no mapa de bits indicando 
se está ocupada ou não
21
Fonte: TANENBAUM, Andrew 
S. Sistemas Operacionais 
Modernos. 3. ed., Prentice 
Hall, 2009
Gerenciando a memória livre
 Gerenciamento com lista encadeada
 Cada elemento dessa lista especifica 
 um segmento de memória disponível (H) ou de 
memória alocada ao processo (P)
 o endereço onde se inicia o segmento
 e um ponteiro para o próximo elemento da lista
22
Gerenciando a memória livre
 Gerenciamento com lista encadeada
 Pode-se usar diversos algoritmos para gerenciamento 
usando lista encadeada
 O algoritmo mais simples é o first fit (primeiro que 
couber)
 O gerenciador procura ao longo da lista por um 
segmento livre que seja suficientemente grande para 
esse processo
 O next fit (próximo que couber) é uma variação do 
first fit
 Sempre é memorizada a posição em que encontra o 
segmento de memória disponível, não precisando 
percorrer toda lista quando se quer alocar
23
Gerenciando a memória livre
 Gerenciamento com lista encadeada
 O best fit (melhor que couber)
 Percorre toda lista e escolhe o menor segmento de 
memória livre suficiente ao processo
 O worst fit (pior que couber)
 Sempre escolhe o maior segmento de memóriadisponível de modo que, quando dividido, o 
segmento disponível restante fosse suficientemente 
grande para ser útil depois
 O quick fit (o que mais rápido couber)
 Mantém listas separadas por tamanhos de segmentos 
de memória disponível em geral mais solicitados
24
Referências
 TANENBAUM, Andrew S. Sistemas Operacionais 
Modernos. 3. ed., Prentice Hall, 2009.
25

Continue navegando