Escolar Documentos
Profissional Documentos
Cultura Documentos
❚ Espaço lógico de um processo é diferente do espaço físico ❚ Memory Management Unit (MMU)
❙ Endereço lógico: gerado pela CPU (endereço virtual) ❚ Hardware que faz o mapeamento entre endereço lógico e endereço
❙ Endereço físico: endereços enviados para a memória RAM físico
❚ Programas de usuários “vêem” apenas endereços lógicos Memória
❚ Endereços lógicos são transformados em endereços físicos no CPU MMU
momento de execução dos processos End. End.
Instituto de Informática - UFRGS
Registrador de Limite Registrador de Base ❙ Compilação, diretivas de compilação e/ou montagem, ligação, etc...
❚ Amarração de endereços (binding)
200 500
Oliveira, Carissimi, Toscani
123 623
Processador > não
+ Memória
sim
Interrupção
(Endereço Ilegal)
Fase de carga
❚ Relocação é a técnica que fornece realiza essa tradução ❚ Código executável mantém informações de relocação na forma de
❙ Via software: carregador relocador
tabelas
❙ No momento da carga o programa executável é interpretado e os endereços
Oliveira, Carissimi, Toscani
❚ Existência de múltiplas partições ❚ O sistema operacional é responsável pelo controle das partições
❚ Imposta pela multiprogramação mantendo informações como:
❙ Partições alocadas
❚ Filosofia:
❙ Partições livres
❙ Dividir a memória em blocos (partições)
❙ Tamanho das partições
❙ Cada partição pode receber um processo (programa)
Instituto de Informática - UFRGS
❚ Memória disponível é dividida em partições de tamanho fixo que ❚ Com código absoluto
podem ser do mesmo tamanho ou não ❙ Um processo só pode ser carregado na área de memória (partição) para a
❚ Questões: qual foi compilado
❙ Pode haver disputa por uma partição mesmo tendo outras livres
❙ Processos podem ser carregados em qualquer partição?
! Processo é mantido no escalonador de longo prazo (termo)
! Depende se código é absoluto ou relocável
! Empregar swapping
❙ Número de processos que podem estar em execução ao mesmo tempo
Instituto de Informática - UFRGS
❚ Problema da alocação fixa é uso ineficiente da memória principal ❚ Partições de tamanho diferentes
❚ Um processo, não importando quão pequeno seja, ocupa uma
partição inteira Sist. Operacional
8M
❙ Fragmentação interna
2M
Sist. Operacional 4M
8M
Instituto de Informática - UFRGS
Fragmentação 8M 8M
interna
Oliveira, Carissimi, Toscani
8M 12 M
8M
Algoritmos para alocação de partições fixas(1) Algoritmos para alocação de partições fixas(2)
❚ Objetivo é eliminar a fragmentação interna ❚ A execução de processos pode criar pedaços livres de memória
❚ Processos alocam memória de acordo com suas necessidades ❙ Pode haver memória disponível, mas não contígua
! Fragmentação externa
❚ Partições são em número e tamanho variáveis
64 K 64 K 64 K
64 K
Sistemas Operacionais 25 Sistemas Operacionais 26
❚ Reunir espaços adjacentes de memória ❚ Determinar qual área de memória livre será alocada a um processo
❚ Empregar compactação ❚ Sistema operacional mantém uma lista de lacunas
❙ Relocar as partições de forma a eliminar os espaços entre elas e criando uma ❙ Pedaços de espaços livres em memória
área contígua ❚ Necessidade de percorrer a lista de lacunas sempre que um
❙ Desvantagem:
processo é criado
! Consumo do processador
Instituto de Informática - UFRGS
❚ Best fit
20k 20k 20k 20k
❙ Minimizar tam_processo - tam_bloco
❙ Deixar espaços livres os menores possíveis A A A A
❚ Worst fit 40k 40k 40k 40k
❙ Maximizar tam_processo - tam_bloco
❙ Deixar espaços livres os maiores possíveis
Instituto de Informática - UFRGS
❚ Tende a criar lacunas de memória livres que individualmente podem ❚ Reunir espaços adjacentes de memória
não ser suficientes para acomodar um processo ❚ Empregar compactação
❙ Pode haver memória livre, mas não contígua ❙ Relocar as partições de forma a eliminar os espaços entre elas e criando
! Fragmentação externa uma área contígua
❙ Desvantagem:
Exemplo: ! Consumo do processador
SisOp
Instituto de Informática - UFRGS
! Acesso a disco
Criação processo 120k
Processo 1 320 K
❚ Acionado somente quando ocorre fragmentação
Processo 4 128 K
❚ Necessidade de código relocável
Oliveira, Carissimi, Toscani
96 K
Processo 3 288 K
64 K
Sistemas Operacionais 31 Sistemas Operacionais 32
Swapping (1) Swapping (2)
❚ Processo necessita estar na memória para ser executado ❚ Tempo do swap é proporcional ao tamanho do processo
❙ Se não há mais espaço em memória é necessário fazer um rodizio de ❙ Possui influência na troca de contexto
processos em memória ! Política de swapping
❚ R. Oliveira, A. Carissimi, S. Toscani Sistemas Operacionais Editora ❚ Problemas com alocação particionada
Sagra-Luzzato, 2001. ❙ Necessidade de uma área contígua de memória (tamanho do processo)
❙ Capítulo 6, seções 6.2 e 6.3 ❙ Fragmentação interna (partições fixas) ou externa (partições variáveis)
❚ A. Silberchatz, P. Galvin Operating System Concepts Addison- ❚ Nova abordagem é considerar a existência de um espaço de
Wesley. 4th edition. endereçamento lógico e de um espaço de endereçamento físico
❙ Capítulo 8, Seção 8.4 ❙ O espaço de endereçamento físico não precisa ser contíguo
Instituto de Informática - UFRGS
! Paginação
Oliveira, Carissimi, Toscani
! Segmentação
❚ A memória física (sistema) e a memória lógica (processo) são ❚ Para executar um processo de n páginas, basta encontrar n frames
dividos em blocos de tamanho fixo e idênticos livres na memória
❙ Memória física dividida em blocos de tamanho fixo denominados de frames ❙ Páginas são carregadas em qualquer frame livre
❙ Memória lógica dividide em blocos de tamanho fixo denominados de páginas ❚ Necessidade de traduzir endereços lógicos (páginas) em endereços
❚ Elimina a fragmentação externa e reduz a fragmentação interna físicos (frames)
Instituto de Informática - UFRGS
d 1 E f
d = E mod P p d
p
2 Tabela de páginas
m-n n
3
Processo A
2 13 3 13
❚ A gerência de memória deve manter controle de áreas livres e ❚ Proteção de acesso é garantida por definição:
ocupadas ❙ Processos acessam somente suas páginas → end. válidos
❚ Inclusão de mecanismos de proteção ❙ Endereço inválido apenas na última página
! Se houver fragmentação interna
❙ Evitar que um processo acesse área (páginas) de outros processos
❙ Garantir que um processo acesse apenas endereços válidos ❚ Inclusão de bits de controle na tabela de página (por entrada)
❙ Garantir acessos autorizados a uma posição de memória ❙ Indicação se a página é de leitura, escrita ou executável
Instituto de Informática - UFRGS
P0
válido ❚ Código compartilhado
End. Frame
❙ Uma cópia do código (read-only, re-entrante) pode ser compartilhada entre
0000 0 vários processos (e.g.; editores de texto, compiladores, etc...)
2000 Pag.1 1
Processo ❙ O código compartilhado pertence ao espaço lógico de todos os processos
4000 2
Tabela de 6000 3 ❚ Dados e código próprios
páginas 8000 Pag.0 4 ❙ Cada processo possui sua própria área de código e seus dados
Instituto de Informática - UFRGS
Memória física
Processo 2
Tabela de
páginas
Sistemas Operacionais 49 Sistemas Operacionais 50
❚ Tabela de páginas é mantida por um conjunto de registradores ❚ Tabela de páginas é mantida em memória
❙ Cada página um registrador ❙ Page-table base register (PTBR): início da tabela de páginas
❙ No descritor de processo devem ser mantidas cópias dos registradores ❙ Page-table length register (PTLR): tamanho em número de entradas.
! Troca de contexto: atualização dos registradores
❚ Cada acesso a dado/instrução necessita, no mínimo, dois acessos a
❚ Desvantagem é o número de registradores memória
❙ Número de acesso depende da largura da entrada da tabela de página e de
Instituto de Informática - UFRGS
+ Acesso 1
Acesso 2
(frame da página)
PTBR (dado/instr.)
❚ Uma espécie de meio termo entre implementação via registradores ❚ Registradores associativos permitem a busca de valores por
e via memória conteúdo, não por endereços
❚ Baseada em uma memória cache especial (TLB) composta por um ❙ Pesquisa paralela
banco de registradores (memória associativa) Key value
❚ Idéia é manter a tabela de páginas em memória com uma cópia
parcial da tabela em um banco de registradores (TLB)
Instituto de Informática - UFRGS
Implementação da tabela de páginas via TLB Aspectos relacionados com o uso de TLB
Memória RAM
End.
❚ Melhora o desempenho no acesso a tabela de páginas
lógico ❙ Tempo de acesso 10 vezes menor que uma memória RAM
CPU p d
❚ Desvantagem é o seu custo
Página/Frame ❙ Tamanho limitado (de 8 a 2048 entradas)
Hit TLB ❙ Uma única TLB (pertence a MMU) que é compartilhada entre todos os
End.
processos
Instituto de Informática - UFRGS
+ f
de páginas ❙ Se página não está presente na TLB (miss), consulta a tabela em memória e
PTBR atualiza entrada na TLB
( ) [
t medio = h × t atlb + t amem + (1 − h )× t atlb + t amem + t amem ]
Sistemas Operacionais 57 Sistemas Operacionais 58
❚ Típico de arquiteturas de processadores de 64 bits ❚ Problema com tabela de páginas é o seu tamanho
❚ Tabela de páginas invertida surge como uma solução
Nível 1 Nível 2 Nível 3 deslocamento ❙ Uma tabela de páginas para todo o sistema (não mais por processo)
❙ Uma entrada para cada frame
❙ Endereço lógico da página e a qual processo pertence
❚ Endereço lógico é formado por <process_id, página, deslocamento>
Instituto de Informática - UFRGS
Tabela de
páginas
❚ Endereço lógico é composto por duas partes: ❚ Tradução é feita de forma similar a paginação (via tabela)
❙ Número de segmento ❙ Tabela de segmentos
❙ Deslocamento dentro do segmento ❚ Entrada na tabela de segmento:
❚ Os segmentos não necessitam ter o mesmo tamanho ❙ base: endereço inicial (físico) do segmento na memória
❚ Existe um tamanho máximo de segmento ❙ limite: tamanho do segmento
❚ Necessidade de verificar a cada acesso se ele é válido
Instituto de Informática - UFRGS
Segmento 00 - Código
Memória Física
00000
Memória Lógica D1 00000
C1
D2 00001
00001
End.
C2
D3 00010
00010 C3
D4 00011
lógico 00011 C4
00100
CPU s d 00100
00101
C5
C6
00101
00110
00111
Segmento 01 - Dados
C1 01000
base/limite Memória 00000 D1 C2 01001
00001 D2 C3 01010
Instituto de Informática - UFRGS
❚ Construção de uma tabela de segmentos ❚ Tabela de segmentos é mantida por um conjunto de registradores
❙ Cada segmento corresponde a uma entrada na tabela ❙ Cada segmento dois registradores (base e limite)
❚ Cada segmento necessita armazenar dois valores: ❙ No descritor do processo devem ser mantidas cópias dos registradores
! Troca de contexto: atualização dos registradores
❙ Limite e base
❚ Análogo a tabela de páginas: ❚ Número de registradores impõem uma limitação prática ao tamanho
da tabela de segmentos (como na paginação)
Instituto de Informática - UFRGS
miss
Base/limite
Tabela de segmentos
❚ A segmentação provoca fragmentação externa quando segmentos ❚ A paginação é a solução natural para a fragmentação
começam a ser liberar memória ❚ Analisar o problema sob dois pontos extremos:
❚ Mesmo problema de alocação partições variáveis com as mesmas ❙ Um processo é um único segmento
soluções: ❙ Cada byte é um segmento
❙ Concatenação de segmentos adjacentes ! Sem fragmentação externa, nem interna
❚ Recuperar as vantagens dos dois métodos em relação a ❚ R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora
fragmentação: Sagra-Luzzato, 2001.
❙ Fragmentação interna: paginação apresenta, segmentação não ❙ Capítulo 6
❙ Fragmentação externa: segmentação apresenta, paginação não ❚ A. Silberchatz, P. Galvin, G. Gane; Applied Operating System
❚ Solução se traduz em paginar segmentos Concepts. Addison-Wesley, 2000.
❙ Capítulo 9
Instituto de Informática - UFRGS
End. lógico s d 63 ❚ W. Stallings; Operating Systems. (4th edition). Prentice Hall, 2001.
! 1k ❙ Capítulo 7
64k
Oliveira, Carissimi, Toscani
2
s p d 1
0
Segmento contento
64 páginas de 1k