sábado, 4 de dezembro de 2010

Swapping x Paginação x Segmentação x Memória Virtual

Swapping
Existem situações onde não é possível manter todos os processos na memória.
Ex: um processo já alocado na memória faz uma chamada de sistema pedindo mais memória e não existe memória livre contígua a área onde o mesmo está alocado um usuário dispara um programa, não existe memória disponível mas é política dos sistema disparar imediatamente todos os programas solicitados de terminal.

Usando o swapping o sistema escolhe um programa residente que é levado da memória para o disco (swap-out ) retornando posteriormente para a memória (swap-in).

Paginação
A paginação permite que o programa possa ser espalhado por áreas não contíguas de memória. Características:
  • o espaço de endereçamento lógico de um processo é dividido em páginas lógicas de tamanho fixo
  • a memória física é dividida em páginas com tamanho fixo, com tamanho igual ao da página lógica
  • o programa é carregado página a página, cada página lógica ocupa uma página física
  • as páginas físicas não são necessariamente contíguas
  • o endereço lógico é inicialmente dividido em duas partes : um número de página lógica e um deslocamento dentro da página
  • o número da página lógica é usado como índice no acesso a tabela de páginas, de forma a obter o número da página física correspondente
  • não existe fragmentação externa
  • existe fragmentação interna (Ex: um programa que ocupe 201kb, o tamanho de página é de 4 kb, serão alocadas 51 páginas resultando uma fragmentação interna de 3kb)
  • além da localização a tabela de páginas armazena também o bit de validade, (1) se a página está na memória (0) se a página não está na memória
  • a transferência das páginas de processo podem ser transferidas para a memória por demanda, levando apenas o que é necessário para a execução do programa ou por paginação antecipada, onde o sistema tenta prever as páginas que serão necessárias à execução do programa.
Paginas constantemente referenciadas em um processo devem permanecer na memória:


Segmentação

  • Técnica de gerência de memória onde programas são divididos em segmentos de tamanhos variados cada um com seu próprio espaço de endereçamento.
  • A principal diferença entre a paginação e a segmentação é a alocação da memória de maneira não fixa, a alocação depende da lógica do programa.
  • O mapeamento é feito através das tabelas de mapeamento de segmentos.
  • Os endereços são compostos pelo número do segmento e um deslocamento dentro do segmento.
  • Cada entrada na tabela mantém o endereço físico do segmento, o tamanho do segmento, se ele está ou não na memória e sua proteção.
  • O sistema operacional mantém uma tabela com as áreas livres e ocupadas da memória.
  • Somente segmentos referenciados são transferidos para a memória principal.
  • Ocorre fragmentação externa.
  • Sistemas que implementam a segmentação com paginação. Cada segmento é dividido fisicamente em páginas.
  • O endereço é formado pelo número do segmento, número da página dentro desse segmento e o deslocamento dentro dessa página.

Memória Virtual

  • Técnica de gerenciamento que combina a memória principal e a secundária dando ao usuário a idéia de existir uma memória maior que a memória principal.
  • Desvincula o endereçamento feito pelo programa dos endereços físicos da memória principal.
  • Um programa no ambiente de memória virtual não faz referência a endereços físicos mas endereços virtuais.
  • O endereço virtual é traduzido para o endereço físico através do mapeamento.
  • Os programas podem ser muito maiores do que sua memória física, apenas parte deles está residente na memória em um determinado instante.
  • O restante do programa fica na memória secundária até ser referenciado.



Nenhum comentário:

Postar um comentário

Related Posts Plugin for WordPress, Blogger...