SISTEMAS OPERACIONAIS

Slides:



Advertisements
Apresentações semelhantes
Parte 1: Organização de Computadores
Advertisements

Gerência de Memória Principal
DESENVOLVIMENTO DE SISTEMAS PARA INTERNET
Arquitetura e organização de computadores
Gerenciamento de Memória
Aula 16: Memória Principal e Memória Virtual
ARQUITETURAS DE COMPUTADORES II
Gerenciamento de Memória
Arquitetura de Sistemas Operacionais
Arquitetura de Sistemas Operacionais Francis Berenger Machado
SSC541 - SISTEMAS OPERACIONAIS I Aula 12 – Gerenciamento de Memória
SSC SISTEMAS OPERACIONAIS I Aula 15 – Gerenciamento de Memória
SSC541 - SISTEMAS OPERACIONAIS I Aula 13 – Gerenciamento de Memória
Gerência de Memória Paginação
Gerência de Memória Sistemas Operacionais I
Arquitetura de Computadores
Arquitetura de Computadores
Sistemas Operacionais Turmas MBI1 e NBI2. Prof: Marcelo Mendes.
Debian Gerência de Memória.
Sistemas Operacionais I
Sistemas Operacionais I
Gerência de Memória.
Resumindo Na arquitetura x86 (32 e 64 bits), são usadas a segmentação e a paginação. O espaço de endereçamento de uma aplicação é dividido em segmentos,
Capítulo 9: Memória Virtual
Arquitetura de Sistemas Operacionais – Machado/Maia 10/1 Arquitetura de Sistemas Operacionais Francis Berenger Machado Luiz Paulo Maia Capítulo 10 Gerência.
Arquitectura de Computadores II
Proteção de Memória O sistema operacional deve impedir que um processo tenha acesso ou modifique uma página do sistema sem autorização. Proteção para páginas.
Sistemas Operacionais Gerenciamento de Memória
SISTEMAS OPERACIONAIS
SSC SISTEMAS OPERACIONAIS I Aula 11 – Gerenciamento de Memória 2
Fundamentos da Arquitetura de Computadores
SISTEMAS OPERACIONAIS
Sistemas Operacionais
Sistemas Operacionais
Gerência de Memória Fundamentos Swapping Alocação Contígua de memória
Gerência de Memória Virtual
Memória virtual Professor Esp. Diego André Sant’Ana
Sistemas Operacionais
SISTEMAS OPERACIONAIS I
Gerenciamento de Memória (Paginação e Memória Virtual)
Sistemas Operacionais
SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
Capítulo 8: Memória principal
SO Paginação de Memória Algoritmos de Substituição de Página
Gerenciamento de Memória Conceitos Básicos
Gerência de Memória Principal
ARQUITETURAS DE COMPUTADORES II
DEPARTAMENTO DE INFORMÁTICA UFPE GRECO Gerenciamento de Memória.
Sistemas Operacionais
Ch7b-1 Capítulo Sistemas de Memória - Memória Virtual.
Capítulo 8: Memória Principal
Infra-Estrutura de Software Gerenciamento de Memória.
Gerenciamento de Memória
Memória Virtual O problema é que temos um espaço limitado de memória RAM e, cada vez mais, os aplicativos consomem partes maiores dela. E o que o processador.
Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.
Faculdade Pernambucana - FAPE
Bruno Iran Ferreira Maciel
Sistemas de Arquivos Sistemas Operacionais Profa. Priscila Facciolli
Infra-estrutura Hardware
Memória Virtual.
MEMÓRIAS.
Gerência de Memória Sidney Cunha de Lucena Baseado no livro
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Gerenciamento de Memória Capítulo Gerenciamento básico de memória 3.2 Troca de processos.
Memória Virtual ARQUITETURAS DE COMPUTADORES II Prof. César Augusto M. Marcon.
Gerência de Memória Principal ARQUITETURAS DE COMPUTADORES II César A. Marcon, César De Rose e Fernando Moraes.
Hierarquia de Memória – Parte 2 Prof. André Luis M. Silva
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner
SISTEMAS OPERACIONAIS MEMÓRIA VIRTUAL. INTRODUÇÃO Memória Virtual é um técnica sofisticada e poderosa de gerenciamento de memória, onde a MP e a MS são.
Transcrição da apresentação:

SISTEMAS OPERACIONAIS Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação SISTEMAS OPERACIONAIS Memória Aula 14 Regiane Kawasaki kawasaki@ufpa.br

Implementação da Tabela de Páginas SO deve manter: Molduras livres \ alocadas; Números de frames e páginas de um processo; Uma entrada para cada moldura e para cada processo. Implementação da Tabela de Páginas: Via Registradores Via Memória Memória Associativa

Implementação da tabela de páginas via registradores Tabela de páginas é mantida por um conjunto de registradores: Uma entrada para cada página virtual. Quando processo é inicializado, o SO carrega os registradores com a tabela de página do processo. Vantagens: Direto. Não requer referências à memória durante mapeamento. Desvantagens: Implementação cara. Necessidade de carregar a tabela de páginas completa a cada troca de contexto.

Implementação da tabela de páginas via memória Tabela de páginas é mantida em memória Registrador: Indica início da tabela - Page-table Base Register (PTBR). Informa número de entradas - Page-table Length Register (PTLR). Cada operação necessita de, no mínimo, dois acessos à memória.

Implementação da tabela de páginas em memória

Memória Associativa (Translation look-aside buffers – TLBs) Meio termo entre implementação via registradores e via memória. Baseado em uma memória cache especial (TLB) composta por um banco de registradores (memória associativa). A ideia é manter a tabela de páginas em memória com uma cópia parcial da tabela em um banco de registradores (TLB): Página acessada está na TLB (hit): similar a solução de registradores; Página acessada não está na TLB (miss): similar a solução via memória.

Implementação de Tabela de Páginas via TLB

Aspectos relacionados com o uso da TLB Melhora o desempenho no acesso à tabela de páginas Desvantagem: Uma única TLB (pertencente à MMU) é compartilhada entre todos os processos. Um acesso pode ser feito em duas partes: Se a página está presente na TLB a tradução é feita; Se a página não está presente na TLB, consulta a tabela em memória e atualiza a entrada na TLB.

Como lidar com espaço de endereço virtual muito extenso: Tabelas de Páginas Multinível Objetivo: Evitar que todas as páginas fiquem na memória o tempo todo. Endereço virtual: Exemplo: Considere um endereço virtual de 32 bits, dividido em um campo PT1 de 10 bits; um campo PT2 de 10 bits e o campo Deslocamento de 12 bits. Total de páginas virtuais  PT1 + PT2 = 20 bits = 220 Tamanho de cada página  Deslocamento = 12 bits = 212 = 4kB ... PT1 PT2 PTn Deslocamento

Como lidar com espaço de endereço virtual muito extenso: Tabelas de Páginas Multinível Suponha que um processo necessite de 12 MB: 4 MB da base da memória para o código do programa; 4 MB para os dados do programa; 4 MB do topo da memória para a pilha.

Tabela de páginas para os 4MB do topo da memória Tabela de Páginas de dois níveis Endereço de 32 bits E.E.V. = 4 GB 1 2 3 4 5 1023 Tabela de páginas de nível 2 Tabela de páginas para os 4MB do topo da memória (pilha) PT1 PT2 Deslocamento 10 12 Bits . . . de nível 1 (Dados do Programa) (Código do Programa)

Como lidar com espaço de endereço virtual muito extenso: Tabelas de Páginas Multinível Neste caso, embora o espaço de endereçamento possua mais de um milhão de páginas virtuais, somente quatro tabelas de páginas são realmente necessárias: A tabela de nível 1 e as três tabelas de nível 2 referentes aos endereços de 0 a 4 M (código do programa), de 4 M a 8 M (para os dados) e aos 4 M do topo (para a pilha). Os bits presente/ausente nas 1021 entradas da tabela de páginas de nível 1 são marcado com 0. Pode ser expandido para três, quatro ou mais níveis.

Como lidar com espaço de endereço virtual muito extenso: Tabelas de Páginas Invertidas Para espaços de endereçamento virtuais de 32 bits, a tabela de páginas multinível funciona razoavelmente bem. Entretanto, essa situação muda drasticamente, à medida que surgem computadores de 64 bits. Espaço de endereçamento virtual = 264 bytes Se tamanho da página = 4 KB. Tabela de páginas com 252 entradas (Inviável!!!). Possível solução: TABELA DE PÁGINAS INVERTIDAS

Como lidar com espaço de endereço virtual muito extenso: Tabelas de Páginas Invertidas Cada entrada informa que o par (processo, página virtual) está localizado na moldura de página. : Endereço virtual de 64 bits Página de 4 KB 1 GB de RAM Tabela de página invertida = 1GB / 4KB = 218 = 262.144 entradas

Como lidar com espaço de endereço virtual muito extenso: Tabelas de Páginas Invertidas Tabela baseada na memória real (moldura), ao invés do espaço de endereçamento virtual. Vantagem: Economia de espaço na memória RAM Desvantagens: Tradução de virtual para físico torna-se muito mais difícil; Deve-se pesquisar em toda a tabela de páginas invertidas a entrada (n, p), onde o processo n referencia a página virtual p, a cada referência à memória, e não somente nas faltas de páginas. Possível solução: Memória Associativa

Memória Virtual por Segmentação Técnica de gerenciamento de memória onde o espaço de endereçamento virtual é dividido em blocos de tamanhos diferentes chamados Segmentos. Paginação: Um programa é dividido em páginas de tamanho fixo, sem qualquer ligação com a sua estrutura. Segmentação: Existe uma relação entre a lógica do programa e sua alocação na MP.

Memória Virtual por Segmentação Geralmente, a definição do segmento é realizada pelo compilador, a partir do código fonte do programa. Cada segmento pode representar um procedimento, uma função, vetor, pilha etc. O espaço de endereçamento virtual de um processo possui um número máximo de segmentos que podem existir, onde cada segmento pode variar de tamanho dentro de um limite.

Memória Virtual por Segmentação O tamanho do segmento pode variar durante a execução do programa, facilitando a implementação de estruturas de dados dinâmicas. O mecanismo de mapeamento é muito semelhante ao da Paginação: Segmentos são mapeados através de Tabelas de Segmentos. Os endereços virtuais são compostos pelo número do segmento virtual (entrada da tabela de segmentos) + Deslocamento.

Memória Virtual por Segmentação Para que a Segmentação funcione de forma eficiente, os programas devem estar bem modularizados. Para alocar os segmentos na MP, o SO mantém uma tabela com as áreas livres e ocupadas na memória. Quando um novo segmento é referenciado, o SO seleciona um espaço livre suficiente para que o segmento seja carregado na MP.

Memória Virtual por Segmentação Alocação de segmentos segue os algoritmos já estudados: FIRST-FIT BEST-FIT NEXT-FIT WORST-FIT QUICK- FIT