Sistemas operacionais Paginao de memria O Espao de

  • Slides: 27
Download presentation
Sistemas operacionais

Sistemas operacionais

Paginação de memória • O Espaço de Endereçamento lógico de um processo pode ser

Paginação de memória • O Espaço de Endereçamento lógico de um processo pode ser não contínuo; aloca-se memória física ao processo sempre que esta é disponível. • A memória física (sistema) e a memória lógica (processo) são divididos em blocos de tamanho fixo e idênticos: o Memória física dividida denominados de frames em blocos de tamanho fixo o Memória lógica divide em blocos de tamanho fixo denominados de páginas

Paginação de memória • Sistema mantém o registro de todos os frames livres. •

Paginação de memória • Sistema mantém o registro de todos os frames livres. • Para executar um processo do tamanho de n páginas, basta encontrar n frames livres na memória o • Necessidade de traduzir endereços lógicos (páginas) em endereços físicos (frames) o o • Páginas são carregadas em qualquer frame livre Define-se uma tabela de página (page table) para traduzir endereço lógico em físico. Elimina a fragmentação externa e reduz a fragmentação interna

Paginação de memória

Paginação de memória

Paginação de memória Características da paginação • Paginação é um tipo de relocação (via

Paginação de memória Características da paginação • Paginação é um tipo de relocação (via hardware) • Não gera fragmentação externa • Fragmentação interna é restrita apenas a última página

Paginação de memória • Importante: o Visão do usuário: espaço de endereçamento contíguo o

Paginação de memória • Importante: o Visão do usuário: espaço de endereçamento contíguo o Visão do sistema: processo é “esparramado” na memória física • n páginas são alocadas a n frames implicando na criação de uma tabela de correspondência o Tabela de páginas Facilita implementação de proteção e compartilhamento

Paginação de memória Tamanho da página Páginas grandes significam: o Processos compostos por menos

Paginação de memória Tamanho da página Páginas grandes significam: o Processos compostos por menos páginas (tabela de páginas menores) o Aumento da fragmentação interna na última página Páginas pequenas significam: o Processos compostos por mais páginas (tabela de página maiores) o Diminuição da fragmentação interna na última página.

Paginação de memória • Objetivos conflitantes Tamanho da página é imposto pelo hardware (MMU)

Paginação de memória • Objetivos conflitantes Tamanho da página é imposto pelo hardware (MMU) Valores típicos variam entre 1 kbyte e 8 kbytes

Paginação de memória Questões relacionadas com a gerência de páginas • A gerência de

Paginação de memória Questões relacionadas com a gerência de páginas • A gerência de memória deve manter controle de áreas livres e ocupadas Inclusão de mecanismos de proteção n n n Evitar que um processo acesse área (páginas) de outros processos Garantir que um processo acesse apenas endereços válidos Garantir acessos autorizados a uma posição de memória e. g. : páginas read-only, read-write, etc. Inclusão de mecanismos de compartilhamento n Permitir que dois ou mais processos dividam uma área comum e. g. : páginas de código de um aplicativo do tipo editor de texto

Paginação de memória Proteção • Proteção de acesso é garantida por definição: n Processos

Paginação de memória Proteção • Proteção de acesso é garantida por definição: n Processos acessam somente suas páginas (end. válidos) n Endereço inválido apenas na última página (Se houver fragmentação interna) n Inclusão de bits de controle na tabela de página (por entrada). n Indicação se a página é de leitura, escrita ou executável n Proteção de memória é implementada associando-se um bit de proteção a cada frame.

Paginação de memória Bit Válido - Inválido anexado a cada entrada na tabela de

Paginação de memória Bit Válido - Inválido anexado a cada entrada na tabela de página: • “válido” indica que a página associada está no espaço de endereçamento lógico do processo, assim, é a uma página legal. • “inválido” indica que a página endereçamento lógico do processo. não está no espaço de

Paginação de memória Exemplo de proteção

Paginação de memória Exemplo de proteção

Paginação de memória Compartilhamento de páginas Código compartilhado o Uma cópia do código (read-only,

Paginação de memória Compartilhamento de páginas Código compartilhado o Uma cópia do código (read-only, re-entrante) pode ser compartilhada entre vários processos (e. g. ; editores de texto, compiladores, etc. . . ) o O código compartilhado pertence ao espaço lógico de todos os processos Dados e código próprios o Cada processo possui sua própria área de código e seus dados

Paginação de memória Exemplo de compartilhamento:

Paginação de memória Exemplo de compartilhamento:

Segmentação de memória n Segmentação n Técnica de gerência de memória, onde os programas

Segmentação de memória n Segmentação n Técnica de gerência de memória, onde os programas são divididos logicamente e em sub-rotinas e estruturas de dados e colocados em blocos de informações na memória n Segmentos – blocos de tamanhos diferentes com seu próprio espaço de endereçamento. n Respeita a visão do programador.

Segmentação de memória n Segmentação X Paginação ¨ Paginação com partes de tamanho fixo

Segmentação de memória n Segmentação X Paginação ¨ Paginação com partes de tamanho fixo e segmentos com blocos de tamanhos variados ¨ permite uma relação entre a lógica do programa e sua divisão na memória.

Segmentação de memória n Segmentação n Cada entrada na tabela de segmentos possuí o

Segmentação de memória n Segmentação n Cada entrada na tabela de segmentos possuí o endereço do segmento na memória física, informações sobre o tamanho do segmento, sua proteção e se ele está na memória ou não. n O Sistema Operacional mantém uma tabela com as áreas livres e ocupadas da memória.

Segmentação de memória n Segmentação n A escolha da área livre a ser ocupada

Segmentação de memória n Segmentação n A escolha da área livre a ser ocupada por um processo a ser carregado na memória pode ser a mesma utilizada no item Alocação Particionada Dinâmica (best-fit, worst-fit ou first-fit). n Apenas os segmentos referenciados são transferidos para a memória real. Os programas devem ser bem modularizados para uma maior eficiência. n

Segmentação de memória n Segmentação com Paginação n Permite a divisão lógica dos programas

Segmentação de memória n Segmentação com Paginação n Permite a divisão lógica dos programas e segmentos e, cada segmento é dividido fisicamente em páginas. n Um endereço é formado pelo número do segmento, pelo número de página, contida nesse segmento, e pelo deslocamento dentro dessa página. n O endereço físico é obtido somando-se a posição inicial do frame e o deslocamento.

Paginação de memória Implementação da tabela de páginas • Sistema operacional deve manter: o

Paginação de memória Implementação da tabela de páginas • Sistema operacional deve manter: o Frames livres/alocados o Número de frames e de páginas de um processo o Uma entrada para cada frame e para cada processo • Como implementar a tabela de páginas? o Registradores e Memória

Paginação de memória Implementação da tabela de páginas via registradores Tabela de páginas é

Paginação de memória Implementação da tabela de páginas via registradores Tabela de páginas é mantida por um conjunto de registradores o Cada página um registrador o No descritor de processo devem ser mantidas cópias dos registradores Troca de contexto: atualização dos registradores Desvantagem é o número de registradores

Paginação de memória Cada acesso necessita, no mínimo, dois acessos a memória

Paginação de memória Cada acesso necessita, no mínimo, dois acessos a memória

Paginação de memória Page-faults: n n n Quando é pedida uma página que não

Paginação de memória Page-faults: n n n Quando é pedida uma página que não se encontra na memória principal, ocorre uma page fault Uma page fault é uma exceção que causa bloqueio ao processo em questão Inicia-se o de carregamento da página em falta, da memória secundária para a memória principal Efetuam-se as alterações necessárias na page table, de modo a esta continuar consistente Pode ser necessário transferir uma outra página para a memória secundária, de modo a libertar-se uma page frame – nesse caso corre -se o algoritmo de substituição de páginas

Paginação de memória Algoritmos de substituição de páginas O algoritmo ideal: n n n

Paginação de memória Algoritmos de substituição de páginas O algoritmo ideal: n n n Sempre que for necessária uma substituição de páginas, a que deveria sair será aquela que só será utilizada daqui a mais tempo Este algoritmo não é realizável, pois os S. O. s não conseguem prever o futuro. . . A aproximação é tentar descartar as páginas que são pouco utilizadas, ou que já não são utilizadas há muito tempo, na esperança de que não venham a ser utilizadas brevemente

Paginação de memória Algoritmos de substituição de páginas FIFO (First-in, first-out) n n n

Paginação de memória Algoritmos de substituição de páginas FIFO (First-in, first-out) n n n A página a substituir é a que se encontra carregada há mais tempo na memória principal Algoritmo de fácil implementação, bastando ter uma lista com índices de páginas, com a mais antiga no topo e a mais recente no fim À medida que as páginas vão sendo carregadas na memória, os seus índices vão também sendo acrescentados ao fim da lista mantida pelo algoritmo Problema: a página que foi carregada há mais tempo pode estar a ser utilizada. . .

Paginação de memória Algoritmos de substituição de páginas Bit de referência n n A

Paginação de memória Algoritmos de substituição de páginas Bit de referência n n A cada frame e associado um bit “R” com valor inicial 0. Quando uma página é referenciada o Bit “R” é alterado para 1. Ao fim de algum tempo todas as páginas tem bit “R” igual a 1. Neste momento deve entrar em ação um algoritmo de “esquecimento” que torna todos os bits 1 em 0. O frame escolhido para a substituição é aquele primeiro que ao ser verificado tiver o bit “R” igual a 0.

Paginação de memória Algoritmos de substituição de páginas Segunda chance n n n Algoritmo

Paginação de memória Algoritmos de substituição de páginas Segunda chance n n n Algoritmo baseado no FIFO, mas que utiliza o bit de referência (R) Antes de uma página ser descartada, analisa-se o bit R e, caso este se encontre a “ 1”, então é posto a “ 0”, mas a página não é descartada, analisando-se a próxima. A página a descartar será a primeira que for encontrada com R=0