original: silberschatz, galvin and gagne sistemas operacionais gerência de memória fundamentos...

55
Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação Segmentação com Paginação

Upload: internet

Post on 18-Apr-2015

153 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Gerência de MemóriaGerência de Memória

Fundamentos

Swapping

Alocação Contígua de memória

Paginação

Segmentação

Segmentação com Paginação

Page 2: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

FundamentosFundamentos

O programa deve ser levado à memória e colocado em um processo para ser utilizado;

Fila de Entrada (Input queue) – Coleção de processos no disco que está esperando para ser levados à memória para execução;

Um programa de usuário passa por várias etapas antes de ser executado

Page 3: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Associação de Instruções e dados para MemóriaAssociação de Instruções e dados para Memória

Tempo de Compilação: Se a Posição de memória for conhecida em tempo de compilação, um código absoluto pode ser gerado; O código deverá ser recompilado se a posição de início mudar;

Tempo de Carga: Deve ser gerado um código relocável, se a localização na memória não for conhecida em tempo de compilação;

Tempo de Execução: Se o processo puder ser movido durante a execução de um segmento de memória para outro, a associação deverá ser retardada até o tempo de execução. Hardware precisa ter suporte a mapeamento de endereços (registradores base e limite).

Acontecer em três diferentes estágios

Page 4: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Etapas de Processamento de um Programa de UsuárioEtapas de Processamento de um Programa de Usuário

Page 5: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Espaço de Endereçamento Lógico vs. FísicoEspaço de Endereçamento Lógico vs. Físico

O conceito de um espaço de endereçamento lógico que é limitado a um espaço de endereçamento físico separado é central à um gerenciamento de memória adequado Endereço Lógico – gerado pela CPU, também conhecido como

endereço virtual;

Endereço Físico – endereço visto pela unidade de memória (registrador de endereço de memória) - MMU

Os métodos de resolução de endereços Lógicos e Físicos geram endereços iguais em tempo de carga e de compilação, Endereços lógicos (virtuais) e físicos são diferentes quando se usa o esquema de resolução de endereços em tempo de execução

Page 6: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Unidade de Gerência de Memória (Unidade de Gerência de Memória (MMUMMU))

Dispositivo de hardware que mapeia endereços virtuais para endereços físicos;

No esquema do MMU, o valor do registrador de relocação (base) é adicionado a todo endereço gerado por um processo de usuário no momento em que ele é enviado para a memória;

O programa de usuário negocia com endereços lógicos, nunca vê o endereço físico real;

Page 7: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Relocação dinâmica usando um registrador de relocaçãoRelocação dinâmica usando um registrador de relocação

Page 8: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Carga DinâmicaCarga Dinâmica

Rotina não é carregada até que seja chamada

Melhor utilização do espaço de memória, rotinas não utilizadas nunca são carregadas;

Útil quando há necessidade de grande quantidade de código para lidar com casos que ocorrem com pouca freqüência;

Carga Dinâmica não requer suporte especial por parte do sistema operacional, é implementado através de projeto de programa;

Page 9: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Ligação DinâmicaLigação Dinâmica

Ligação é adiada até o tempo de execução (ver 4º slide)

Pequeno trecho de código, stub, utilizado para localizar a rotina de biblioteca apropriada residente na memória (ou não);

O Stub substituí a si mesmo pelo endereço da rotina, e executa a rotina

Sistema Operacional precisam checar se a rotina está edereçada na memória;

Ligação dinâmica é particularmente útil para bibliotecas (correções de bugs)

Page 10: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

OverlaysOverlays

Manter em memória apenas as instruções e dados que são necessários em determinado momento;

Necessário quando um processo é maior do que o montante de memória alocado a ele;

Implementado pelo usuário, não necessita de suporte especial do Sistema Operacional, programar e projetar as estruturas de overlay é complexo.

Page 11: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Overlays para um montador de dois passosOverlays para um montador de dois passos

Page 12: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

SwappingSwapping

Um processo pode ser removido temporariamente da memória para um armazenamento auxiliar e, em seguida, retornado à memória para continuar sua execução;

Backing store – Disco grande e rápido o suficiente para armazenar uma cópia de todas as imagens de memória de todos os usuários, deve fornecer acesso direto a essas imagens de memória;

Roll out, roll in – Uma variante de swapping é utilizada para algoritmos de escalonamento baseado em prioridade, processos de baixa prioridade são descarregados e é carregado e executado um processo de prioridade mais alta (swapped);

A Maior parte de tempo de swap é o tempo de transferência; O tempo total de transferência é proporcional à quantidade de memória trocada;

Muitas diferentes versões de swapping são encontradas em muitos sistemas (Unix, Linux and Windows);

Page 13: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Visão Esquemática de SwappingVisão Esquemática de Swapping

•Problema de I/O•Manter o job em memória enquanto ele estiver envolvido em I/O;•Executar I/O somente em buffers de SO

Page 14: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Alocação Contígua de MemóriaAlocação Contígua de Memória

Memória principal geralmente dividida em duas partições: Sistema Operacional residente, normalmente carregado na

memória baixa (vetor de interrupção);

Processos de usuário ficam na memória alta;

Alocação com partição simples Esquema do registrador de relocação utilizado para proteger

processos de usuário de outros, e de mudanças do código e dados do Sistema Operacional;

Registrador de relocação contém o valor do menor endereço físico, registrador limite contém a faixa de endereços lógicos, cada endereço lógico deve ser menor que o valor do registrador limite;

Page 15: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Suporte de Hardware para os registradores de relocação e limiteSuporte de Hardware para os registradores de relocação e limite

Page 16: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Alocação Contígua (Cont.)Alocação Contígua (Cont.)

Alocação com Múltiplas Partições Hole (Buraco) – Bloco de memória disponível, blocos de vários

tamanhos disponíveis na memória;

Quando um processo chega, é alocado memória de um hole grande o suficiente para acomodá-lo;

Sistema operacional mantém informações sobre:

A) partições alocadas b) Partições livres (hole)

OS

process 5

process 8

process 2

OS

process 5

process 2

OS

process 5

process 2

OS

process 5

process 9

process 2

process 9

process 10

Page 17: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Problema de alocação de Memória DinâmicaProblema de alocação de Memória Dinâmica

First-fit: Aloca o primeiro bloco de memória grande o suficiente

Best-fit: Aloca o menor bloco grande o suficiente; deve procurar em toda lista, a menos que a lista esteja ordenada por tamanho. Produz o menor bloco restante.

Worst-fit: Aloca o maior bloco; Deve procurar também em toda a lista. Gera o maior bloco restante.

Como atender a um pedido de tamanho n de uma lista de blocos de memória livres:

First-fit e Best-fit são melhores em termos de redução de tempo e utilização da memória

Page 18: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

FragmentaçãoFragmentação

Fragmentação Externa – Existe espaço total na memória para satisfazer uma requisição, mas não é contíguo;

Fragmentação Interna – A memória alocada pode ser um pouco maior do que a memória necessária; esta diferença de tamanho é memória interna à partição, que não é utilizada;

Reduzir fragmentação externa através da compactação Trocar de posição o conteúdo da memória, para reunir toda a

memória livre em um grande bloco;

Compactação só será possível se a relocação for dinâmica, e for feita em tempo de execução;

Page 19: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

PaginaçãoPaginação

Espaço de endereçamento físico de um processo pode ser não contíguo; o processo é alocado na memória física, sempre que esta está disponível;

Divide a memória física em blocos de tamanho fixo, chamados frames-quadros (tamanho é potência de 2, variando entre 512 bytes e 16 megabytes);

Divide a memória lógica em blocos de tamanho igual, chamados pages-páginas;

Mantém uma lista de todos os frames livres; Para rodar um programa de n pages, precisa encontrar n

frames livres e carregar o programa; Mantém uma tabela de pages para traduzir o endereço lógico

para físico; Fragmentação interna

Page 20: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Esquema de Tradução de EndereçosEsquema de Tradução de Endereços

Endereços gerados pela CPU são divididos em: Número de página (p) – Usado como um índice em uma tabela de

páginas, a qual contém o endereço base de cada página na memória física

Deslocamento de página (offset) (d) – Combinado com o endereço de página para definir o endereço de memória física que é enviado para a unidade de memória

Page 21: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Arquitetura da Tradução de Endereços Arquitetura da Tradução de Endereços

Page 22: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Exemplo de Paginação Exemplo de Paginação

Page 23: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Exemplo de PaginaçãoExemplo de Paginação

Page 24: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Frames LivresFrames Livres

(a) Antes da alocação (b) Depois da Alocação

Page 25: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Implementação da Tabela de PáginasImplementação da Tabela de Páginas

A tabela de página é mantida na memória principal;

Registrador Base da Tabela de Página (PTBR) aponta para a tabela de página;

Registrador de Tamanho da Tabela de Página (PTLR), indica o tamanho da tabela de página

Neste esquema todo acesso a dados/instruções requerem dois acessos à memória. Um para a tabela de página e outro para o dado/instrução;

O problema dos dois acessos à memória pode ser resolvido através do uso de um cache de hardware especial, pequeno e de busca rápida, chamado Registradores Associativos ou Translation look-aside buffers (TLBs)

Page 26: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Registradores AssociativosRegistradores Associativos

Registradores Associativos – busca paralela

Tradução de Endereço (A´, A´´) Se A´ está nos Registradores Associativos, pegue o endereço do

frame

Se não pegue o endereço do frame da tabela de página na memória

Page # Frame #

Page 27: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Hardware de Paginação com TLBHardware de Paginação com TLB

Page 28: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Tempo Efetivo de AcessoTempo Efetivo de Acesso

Associative Lookup = unidades de tempo

Assumindo ciclo de memória de 1 microssengundo

Taxa de Acerto (Hit Ratio) – porcentagem de vezes que o nº da página é encontrado nos registradores associativos; está diretamente associada ao nº de registradores associativos;

Taxa de Acerto = Tempo Efetivo de Acesso (EAT)

EAT = (1 + ) + (2 + )(1 – )

= 2 + –

Page 29: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Proteção de MemóriaProteção de Memória

Proteção de memória é implementado pela associação de um bit de proteção com cada quadro;

Um bit Válido-Inválido é associado a cada entrada na tabela de páginas: “válido”, indica que a página associada está no espaço de

endereçamento lógico do processo, portanto, é uma página legal (válida);

“Inválido”, indica que página associada não está no espaço de endereçamento lógico do processo.

Page 30: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Bit válido (v) ou inválido (i) em uma Tabela de Páginas Bit válido (v) ou inválido (i) em uma Tabela de Páginas

Page 31: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Estrutura de Tabelas de PáginasEstrutura de Tabelas de Páginas

Paginação Hierárquica;

Tabela de Página Compartilhada;

Tabela de Página Invertida.

Page 32: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Tabelas de Páginas HierárquicasTabelas de Páginas Hierárquicas

Quebrar o espaço de endereçamento lógico em múltiplas tabelas de páginas;

Uma técnica simples é uma tabela de página de dois níveis.

Page 33: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Exemplo de paginação de dois níveisExemplo de paginação de dois níveis

Um espaço de endereçamento lógico (de 32 bits, com página do tamanho de 4K) é dividido em:

Um nº de página consistindo em 20 bits Um deslocamento de pagina consistindo em 12 bits

Paginamos a tabela de página , o nº da página é dividido em: Nº de página de 10 bits Um deslocamento de 10 bits

Assim, um endereço lógico torna-se:

Onde p1 é um índice para a tabela de página externa e p2 é o deslocamento dentro da página da tabela de página externa

page number page offset

pi p2 d

10 10 12

Page 34: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Esquema de Tabela de Página de dois níveisEsquema de Tabela de Página de dois níveis

Page 35: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Esquema de Tradução de EndereçosEsquema de Tradução de Endereços

Esquema de tradução de endereços com paginação de dois níveis de 32 bits

Page 36: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Tabelas de Páginas “Hashed”Tabelas de Páginas “Hashed”

Comum em espaços de endereçamento maiores que 32 bits

O número de página virtual é “hashed” em uma tabela de página. Esta tabela de página contém um “conjunto” de elementos “hashing” da mesma locação;

Números de página virtual são comparados neste “conjunto”, procurando por um igual. Se um endereço igual é encontrado, o quadro físico correspondente é extráído

Page 37: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Tabela de Página “Hashed”Tabela de Página “Hashed”

Page 38: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Tabela de Página InvertidaTabela de Página Invertida

Uma entrada para cada página real de memória;

Cada entrada consiste no endereço virtual da página armazenada naquela posição real de memória, com informações sobre o processo que é proprietário da página;

Diminuí a memória necessária para armazenar cada tabela de página, mas aumenta o tempo necessário de pesquisa na tabela quando ocorre uma referência de página;

Usa uma hash para limitar a pesquisa para uma entrada – ou, ao menos algumas – entradas de tabela de página

Page 39: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Arquitetura de Tabela de Página InvertidaArquitetura de Tabela de Página Invertida

Page 40: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Páginas CompartilhadasPáginas Compartilhadas

Código Compartilhado Uma cópia de código (reentrante) compartilhado ente os processos

(ex. Editores de texto, compiladores, ambientes gráficos);

Código compartilhado deve aparecer na mesma localização no espaço de endereçamento lógico de todos os processos;

Código e Dados Privados Cada processo mantém uma cópia separada do código e dos

dados;

As páginas de dados e códigos privados podem aparecer em qualquer lugar do espaço de endereçamento lógico;

Page 41: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Exemplo de Página CompartilhadaExemplo de Página Compartilhada

Page 42: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

SegmentaçãoSegmentação

Esquema de gerenciamento de memória que oferece suporte à visão de usuário da memória;

Um programa é uma coleção de segmentos. Um segmento é uma unidade lógica:

Programa Principal,

Procedimentos,

Funções,

Métodos,

Objetos,

Variáveis Locais, Variáveis Globais,

Pilhas,

Tabela de símbolos, arrays

Page 43: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Visão de Usuário de um ProgramaVisão de Usuário de um Programa

Page 44: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Visão Lógica de SegmentaçãoVisão Lógica de Segmentação

1

3

2

4

1

4

2

3

user space physical memory space

Page 45: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Arquitetura de Segmentação Arquitetura de Segmentação

Endereço Lógico consiste de uma dupla:

<nº do segmento, deslocamento>,

Tabela de Segmentos – mapeia endereços bidimensionais para endereços unidimensionais físicos; Cada entrada da tabela tem: base – Contém o endereço físico de início no qual reside o

segmento na memória;

limite – especifica o tamanho do segmento;

Registrador Base da Tabela de Segmentos (STBR) aponta para a localização da tabela de segmentos na memória;

Registrador de Tamanho da Tabela de segmentos (STLR) indica o número de segmentos usados pelo programa;

o número de segmento s é legal se s < STLR

Page 46: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Arquitetura de Segmentação (Cont.)Arquitetura de Segmentação (Cont.)

Relocação. Dinâmica

Por tabela de segmentação

Compartilhamento. Segmentos Compartilhados

Mesmo número do segmento

Alocação. First Fit/Best Fit

Fragmentação Externa

Page 47: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Arquitetura de Segmentação (Cont.)Arquitetura de Segmentação (Cont.)

Proteção. Associado com cada entrada na Tabela de segmento: Bit de validação = 0 segmento ilegal

Privilégios de read/write/execute

Bits de proteção associados com segmentos; compartilhamento de código ocorre em nível de segmento;

Segmentos variam de tamanho, alocação de memória é um problema de alocação dinâmica de armazenamento;

Um exemplo de segmentação é mostrado no diagrama

Page 48: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Hardware de SegmentaçãoHardware de Segmentação

Page 49: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Exemplo de SegmentaçãoExemplo de Segmentação

Page 50: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Compartilhamento de SegmentosCompartilhamento de Segmentos

Page 51: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Segmentação com Paginação – MULTICSSegmentação com Paginação – MULTICS

O sistema MULTICS resolveu o problema de frgamentação externa e lentidão no tempo de busca com a paginação de segmentos

A solução difere da segmentação pura, já que a entrada para a tabela de segmentação não contém o endereço base para o segmento, mas sim o endereço base de uma tabela de página para este segmento

Page 52: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Esquema de Tradução de Endereços MULTICSEsquema de Tradução de Endereços MULTICS

Page 53: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Segmentação com Paginação – Intel 386Segmentação com Paginação – Intel 386

Como mostra o diagrama, Intel 386 usa segmentação com Paginação para o gerenciamento de memória com um esquema de Paginação de dois níveis

Page 54: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Tradução de Endereços - Intel 30386Tradução de Endereços - Intel 30386

Page 55: Original: Silberschatz, Galvin and Gagne Sistemas Operacionais Gerência de Memória Fundamentos Swapping Alocação Contígua de memória Paginação Segmentação

Original: Silberschatz, Galvin and GagneSistemas Operacionais

Linux em Intel 80x86Linux em Intel 80x86

Usa segmentação mínima para manter a implementação da memória mais portável

Usa 6 segmentos: Código do Kernel Dados do kernel Código de usuário (compartilhado por todos os processos de

usuários, usando endereços logicos) Dados Usuários (do mesmo modo compartilhado) Estado das tarefas (contexto do hardware por processo)

Usa 2 níveis de proteção: Modo kernel Modo Usuário