Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela...

49
Fundamentos de Sistemas Operacionais Aula 18: Segmentação e Paginação Diego Passos

Transcript of Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela...

Page 1: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Fundamentos de Sistemas Operacionais

Aula 18: Segmentação e Paginação

Diego Passos

Page 2: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Última Aula

Page 3: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

MMU

● Dispositivo de hardware que auxilia o gerenciamento de memória.

● Verifica validade de endereços.● Realiza tradução de endereços lógicos para endereços

físicos.○ Processos acreditam que seu espaço de

endereçamento sempre começa no endereço 0.○ Na prática, SO pode alocar qualquer região da memória.

Page 4: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Tipos de Alocação Primitivos

● Particionamentos.○ Fixo.○ Variável.

● Blocos contíguos de memória são alocados.○ Partições.

● Possibilidade de Fragmentação.○ Interna: bytes são perdidos dentro da partição.○ Externa: bytes são perdidos entre partições.

Page 5: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Blocos Contíguos

● Não há "buracos" na região de memória alocada.● Os endereços lógicos consecutivos são mapeados para

posições consecutivas da memória física.● Simplifica o processo de tradução e verificação da MMU.

○ Comparação com o Registrador Limite.○ Soma com o Registrador Base.

● Duas grandes limitações: ○ Fragmentação externa.○ Impossibilidade de compartilhamento de memória.

● Se o SO pudesse alocar regiões não contíguas, ambas as limitações seriam resolvidas.

○ MMU precisaria ser bem mais complexa.

Page 6: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Segmentação

Page 7: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Ideia

● Primeira tentativade gerenciamento de memória com alocação não contígua.

● Utiliza a divisão natural do espaço de endereçamento.○ Texto.○ Dados.○ Pilha○ ...

● Cada uma destas divisões lógicas, se transforma em um bloco independente.

○ Menores que o espaço de endereçamento completo.○ Podem ser alocados de forma não contígua.

■ Usando qualquer método de alocação.

Page 8: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Exemplo

Page 9: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Exemplo

Page 10: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Segmentos Típicos

● Em geral, processos são dividos em 4 segmentos típicos:○ Segmento de código.

■ Contém as instruções. ○ Segmento de dados.

■ Contém as variáveis estáticas (globais). ○ Segmento de heap.

■ Contém as variáveis alocadas dinamicamente. ○ Segmento de pilha.

■ Contém a pilha de execução. ● Nada impede que outros segmentos sejam criados.

Page 11: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Endereços Lógicos na Segmentação

● Cada segmento recebem um identificador numérico não negativo.

○ Em geral, segmento de código é sempre 0.● Endereços lógicos são quebrados em duas partes:

○ Bits mais representativos indicam o identificador do segmento.

○ Bits menos significativos indicam deslocamento dentro do segmento.

● Exemplo:○ Dois bits para o segmento e 4 para o deslocamento. ○ Endereço lógico 010110.

■ Segmento 1.■ Deslocamento 6.

Page 12: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Mapeamento de um Endereço Lógico

● Quando o SO cria um processo, ele aloca cada um dos segmentos.

○ Possivelmente em regiões diferentes da memória.● Tamanhos e posições dos segmentos são anotados em

uma Tabela de Segmentos.○ Identificador do segmento.○ Endereço base.

■ Endereço do primeiro byte do segmento. ○ Limite.

■ Tamanho do segmento.● A cada acesso à memória, MMU decompõe o endereço

lógico.○ Identificador do segmento é usado como índice na

tabela.○ Base e limite são carregados em registradores.

Page 13: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Mapeamento de um Endereço Lógico (mais)

● Uma vez carregados os valores base e limite, tradução e verificação é identica aos esquemas de gerenciamento de memória baseados em bloco.

● Pode ocorrer da MMU não achar o segmento na tabela.○ Exemplo: processo tenta acessar um endereço no

segmento 20 e só há 8 segmentos.○ MMU gera uma interrupção avisando ao SO do acesso

ilegal.

Page 14: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Mapeamento de um Endereço Lógico (mais)

Page 15: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Acesso à Tabela de Segmentos

● Cada processo tem a sua própria tabela de segmentos. ● MMU precisa acessá-la de alguma forma.

○ Para carregar endereço base e limite.● Duas possibilidades:

○ MMU pode conter uma memória interna para a tabela.■ A cada troca de contexto, SO atualiza a tabela da

MMU.■ Torna a troca de contexto mais lenta.

○ MMU pode buscar a tabela na memória principal.■ Registradores específicos apontam para a tabela.■ Na troca de contexto, basta que o SO atualize estes

registradores.■ Acesso à memória fica mais lento.

■ São necessários dois acessos.

Page 16: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Segmentação: Análise

● Não é um método de alocação.○ É um esquema de organização da memória de um

processo.● Auxilia na alocação, no entanto.

○ Blocos a serem alocados são menores.○ Reduz a fragmentação externa.

■ Blocos de memória física pequenos têm mais chance de serem usados.

● Simplifica compartilhamento de memória.○ Basta que processos compartilhem um segmento.○ Que pode ser alocado em qualquer região da memória

física.

Page 17: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Segmentação: Análise (mais)

● Possibilita alocação dinâmica de memória.○ Por exemplo, com a função malloc().○ Se o processo precisa de mais memória, SO pode

simplesmente criar um novo segmento para ele.■ Desde que haja memória física disponível.

Page 18: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Compartilhamento de Segmentos

● Processos podem compartilhar memória, compartilhando segmentos.

● Um único bloco alocado de memória física está presente nas tabelas de segmento de vários processos.

● Em geral, um processo requisita a criação de um novo segmento.

○ Uma vez criado, processo requisita que SO compartilhe o segmento com outros processos.

○ SO inclui entradas nas tabelas dos demais processos.● Note que um segmento compartilhado pode ter IDs

diferentes para processos diferentes.○ Tabelas de segmento fazem as conversões apropriadas.

Page 19: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Compartilhamento de Segmentos (mais)

● Útil para a implementação das bibliotecas compartilhadas.○ Ao invés de carregar uma cópia do código para cada

processo, uma única cópia é carregada em um segmento.

○ Todos os processos que precisam da biblioteca compartilham o segmento.

Page 20: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Paginação

Page 21: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Motivação

● Segmentação reduz o problema da fragmentação externa.○ Blocos menores a serem alocados.○ Maior chance de aproveitar blocos de memória

"sobrando" entre partições.● Mas o problema não é completamente resolvido.

○ Cada segmento ainda é um bloco que precisa ser alocado de forma contígua.

○ Segmentos podem ser blocos grandes.● Solução é evitar completamente necessidade de alocação

contígua.○ A técnica de Paginação faz isso.

Page 22: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Funcionamento

● Memória física é dividida em pequenos blocos de tamanho fixo, chamados quadros.

● Similar ao particionamento fixo, com 3 diferenças básicas.○ Quadros são muito menores que partições.

■ Alguns Kbytes.○ Quadros sempre têm o mesmo tamanho.

■ Partições podem ter tamanhos diferentes.○ Conjunto de quadros alocados para um processo não

precisa ser contíguo.● Espaço de endereçamento do processo é dividido em

pequenos blocos, chamados páginas.○ Do mesmo tamanho dos quadros.

● Cada página é colocada em um quadro da memória principal.

Page 23: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Funcionamento (mais)

● Pode-se pensar nas páginas como segmentos do processo.○ No entanto, páginas são muito menores.

■ E em número muito maior.■ E em tamanho fixo.

○ Além disso, páginas não seguem uma divisão lógica do processo.

■ Espaço de endereçamento simplesmente é dividido em blocos do mesmo tamanho.

● Não confundir páginas e quadros.○ Páginas são os blocos do espaço de endereçamento.○ Quadros são os blocos da memória principal.

■ Páginas são mapeadas em quadros.

Page 24: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Exemplo

Page 25: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Endereçamento Lógico na Paginação

● Semelhante à segmentação.● Endereço lógico é dividido em duas componentes.

○ Número da página.○ Deslocamento dentro da página.

● MMU faz a decomposição e consulta a Tabela de Páginas do processo.

○ Contém as informações de mapeamento entre páginas e quadros.

● Endereço resultante é passado para a controladora da memória.

● Verificações de segurança são feitas como na segmentação.

Page 26: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Exemplo de Tradução● Note que:

○ Não há na tabela campo Limite.○ Tradução se resume a troca de prefixo.

Page 27: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Paginação: Análise

● Resolve completamente o problema da fragmentação externa.

○ Blocos de memória entre duas alocações são sempre ao menos do tamanho de um quadro.

○ Este quadro pode ser alocado para qualquer processo.● Há, no entanto, possibilidade de fragmentação interna.

○ Não é muito relevante.○ Quadros são pequenos.

● Escolha do tamanho do quadro é importante.○ Quadros grandes: menos quadros, menos overhead de

gerenciamento, mais fragmentação interna.○ Quadros pequenos: mais quadros, mais overhead de

gerenciamento, menos fragmentação interna.○ Geralmente, determinado pelo hardware.

Page 28: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Paginação: Análise (mais)

● Outros benefícios da segmentação também são obtidos na paginação:

○ Fácil compartilhamento de memória.■ Processos compartilham páginas.

○ Fácil alocação dinâmica de memória.■ SO aloca novas páginas ao processo de acordo com

a necessidade.

Page 29: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Gerenciamento de Quadros Disponíveis

● SO precisa manter informações sobre os quadros livres.○ Usada durante a alocação de um novo processo.

● Esta manipulação precisa ser eficiente.○ Rápida.○ Com baixo consumo de memória.

● Três maneiras comuns:○ Tabela.

■ Tende a ficar muito grande, pois há muitos quadros.○ Mapa de bits.

■ Ainda é grande: 1 milhão de bits para memória de 4GB.

○ Lista encadeada de blocos livres.■ Se não há muitos "buracos" na memória, lista se

mantém pequena.

Page 30: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Acesso às Tabelas de Páginas

● MMU precisa acessar a tabela de páginas de cada processo.

○ Similar à segmentação.● Três maneiras de se fazer isso.

○ Memória interna da MMU.■ Só aplicável se tabelas de páginas forem muito

pequenas.■ Raro.

○ Ponteiros para a memória principal.■ Registrador PTBR (Page Table Base Register).■ Registrador PTLR (Page Table Limit Register).■ Duplica o número de acessos à memória.

○ TLB.

Page 31: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Translation Lookaside Buffer

● Memória cache interna à MMU.● Mantém algumas entradas muito acessadas das tabelas de

páginas dos processos.● Quando a MMU precisa fazer a tradução de um endereço

lógico:○ Verifica se a entrada da tabela de páginas do processo

referente à página desejada está na TLB.○ Se sim, tradução é feita e acesso à memória é rápido.○ Se não, vai à memória principal (usando registradores

PTBR e PTLR).■ Neste caso, acesso é bem mais lento.

● Se o percentual de acerto da TLB é alto, tempo médio de acesso à memória é baixo.

○ Overhead da paginação é baixo.

Page 32: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Translation Lookaside Buffer (mais)

Page 33: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Translation Lookaside Buffer (mais)

● Implementada através de uma cache totalmente associativa.

○ Buscas são feitas totalmente em paralelo.○ Muito eficiente.○ Muito caro.

■ Espaço de armazenamento reduzido.● Processadores modernos têm TLBs com capacidade

variando de 8 a 4096 entradas.○ Na prática,suficiente para taxa de acerto acima dos

99%.○ Overhead do tempo de acesso fica abaixo dos 30%.

Page 34: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Translation Lookaside Buffer (mais)

● Quando à troca de contexto, TLB contém ainda informações sobre o processo anterior.

○ Entradas da tabela de páginas dele.○ Obviamente, diferentes das entradas do novo processo.

● Isso exige que o SO faça um flush da TLB.● Em alguns processadores, a TLB guarda também o PID do

processo (para cada entrada).○ SO não precisa fazer flush.○ Acelera a troca de contexo.

Page 35: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Outras Informações da Tabela de Páginas

● Basicamente, a tabela de páginas precisa guardar apenas o mapeamento entre número de página e número de quadro.

● Em geral, há também outras informações:○ Bit de validade:

■ Diz a página é válida ou não.○ Bits de permissão:

■ Dizem se a página pode ser lida, escrita ou executada.

Page 36: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Segurança

● A tabela de páginas não pode ser guardada no espaço de endereçamento do processo.

○ Processo poderia alterá-la para acessar regiões de memória indevidas.

○ Armazenamento deve ser feito em área restrita ao SO.● Manipulação dos registradores PTBR e PTLR devem ser

privilegiadas.○ Apenas possível em modo supervisor.

Page 37: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Implementação das Tabelas de Página

● Consultas devem ser rápidas.● Solução comum: acesso direto.

○ Tabela é um vetor indexado pelo número da página desejada.

● Problema:○ A tabela precisa ser extensiva.○ Todas as entradas possíveis devem ser listadas.○ Nem todas as páginas listadas são usadas.

■ Exemplo: pilha de execução.

Page 38: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Implementação das Tabelas de Página (mais)

Page 39: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Implementação das Tabelas de Página

● Estes "buracos" fazem com que a tabela seja grande desnecessariamente.

● Por outro lado, é preciso que a tabela contenha todas as entradas possíveis.

● Solução:○ Paginação Multinível.

Page 40: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Paginação Multinível

● Processos não tem mais apenas uma tabela de páginas.● São várias tabelas, organizadas em uma hierarquia.● Existe uma tabela principal, relativamente pequena.

○ Às vezes chamada de Diretório de Páginas.○ Tem a função de agrupar páginas.○ Contém um ponteiro para tabelas de páginas de um

nível mais baixo.● No nível mais baixo da hierarquia, as tabelas contém as

informações de mapeamento.

Page 41: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Paginação Multinível (mais)

Page 42: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Paginação Multinível (mais)

● Endereços lógicos agora são divididos em mais componentes.

○ Além do deslocamento, há um componente para cada um dos níveis da tabela de página.

● Exemplo com dois níveis (80386):○ Primeiros 10 bits representam índice na tabela principal.○ Próximos 10 bits representam índice na tabela do

segundo nível.○ Últimos 12 bits são o deslocamento.

Page 43: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Paginação Multinível (mais)

Page 44: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Tabela de Páginas Invertida

● Outro método para evitar o crescimento das tabelas de páginas dos processos.

● Ideia é indexar a tabela de páginas pelos quadros da memória principal, e não pelas páginas dos processos.

● Vantagens:○ Uma única tabela.○ Sem os "buracos" da tabela de páginas normal.

● Desvantagens:○ Tradução é muito mais complicada.○ Exige uma busca na tabela pelo número da página

desejado (e pelo PID do processo).● TLB ameniza este problema (por ser associativa).

○ Porém, quando entrada não está na TLB, acesso é bem mais lento.

Page 45: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Paginação com Segmentação

Page 46: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Ideia

● Combinar os dois métodos de gerenciamento de memória.○ Espaço de endereçamento do processo é segmentado.○ Cada segmento é dividido em páginas.○ Páginas são alocadas em quadros na memória principal.

● Endereço lógico agora tem componentes tanto para o número de página, quanto para o número de segmento.

○ Processos têm uma tabela de segmentos.○ Mas também várias tabelas de páginas.

● Processo de tradução tem duas etapas:○ MMU identifica número do segmento.

■ Entrada na tabela de segmentos aponta para a tabela de páginas correspondente.

○ Tabela de páginas é acessada e número do quadro é encontrado.

Page 47: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Motivação

● A paginação com segmentação não traz grandes benefícios.

○ Em relação à paginação pura.● Quando os processadores passaram a suportar paginação,

segmentação já era uma técnica estabelecida.● Conceitos acabaram se misturando.● Hoje, é um método de gerenciamento de memória que está

sendo abandonado.● Processadores mais novos (especificamente, de 64 bits) já

praticamente deixaram de suportar.

Page 48: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Revisão

Page 49: Fundamentos de Sistemas Operacionaisdiego/disciplinas/2011_1/sisop/aula18.pdf · Acesso à Tabela de Segmentos Cada processo tem a sua própria tabela de segmentos. MMU precisa acessá-la

Para Lembrar

● Problemas da alocação contígua:○ Fragmentação Externa.○ Dificuldade de compartilhamento.○ Dificuldade de alocação dinâmica de memória.

● Segmentação:○ Divisão do processo em segmentos.○ Segmentos não precisam ser alocados juntos.○ Necessária uma tabela de segmentos.

● Paginação:○ Divisão do processo em páginas.○ Divisão da memória em quadros.○ Necessária tabela de páginas.

■ TLB, paginação multinível, tabelas invertidas.