Gerenciamento de Memória: Linux, Solaris e Windows 2000

Classificado em Computação

Escrito em em português com um tamanho de 2,96 KB

Gerenciamento de Memória no Linux

Alocação de páginas: O Linux utiliza um mecanismo para lidar com blocos contíguos de quadros de página. Para isso, emprega o sistema de camarada (buddy system), onde o kernel mantém listas de grupos de quadros de páginas contíguas de tamanho fixo.

Algoritmo de substituição de página: O algoritmo utilizado no Linux é baseado no relógio (NUR ou NRU), que combina um bit de uso e um bit de modificação para cada página da memória principal.

Gerenciamento de Memória no Solaris

Sistema de paginação e estruturas de dados: Para a memória virtual paginada, o Solaris utiliza estruturas de dados independentes da arquitetura:

  • Tabela de páginas: Uma tabela por processo, com uma entrada para cada página de memória virtual.
  • Descritor de bloco de disco: Associado a cada página do processo, descreve a cópia da página virtual em disco.
  • Tabela de quadros de página: Descreve cada quadro da memória real, indexada pelo número do quadro.

Substituição de páginas: O Solaris utiliza o algoritmo de relógio de duas agulhas, que usa um bit de referência para identificar páginas elegíveis para ejeção. Dois fatores determinam seu funcionamento:

  • Velocidade de transporte: A velocidade com que os ponteiros percorrem a lista de páginas (páginas por segundo).
  • Intervalo entre agulhas: O espaço entre a agulha frontal e a traseira.

Gerenciamento de Memória no Windows 2000

O gerenciador de memória virtual do Windows 2000 (W2K) controla a alocação de memória e a paginação.

Mapa de endereços virtuais: Cada processo de usuário no W2K possui um espaço de endereço de 32 bits, permitindo até 4 GB de memória. Como parte é reservada ao sistema operacional, cada usuário dispõe de 2 GB de espaço de endereço virtual.

Paginação no W2K: Ao criar um processo, o usuário pode utilizar o espaço de 2 GB, dividido em páginas de tamanho fixo. O Working Set (WS) define um tamanho máximo baseado na RAM disponível.

Quando ocorre uma falha de página, o sistema carrega a página solicitada e páginas vizinhas, técnica chamada de paginação por demanda com clustering. Se a memória estiver cheia, utiliza-se uma política de substituição LRU (para mover ao disco) ou FIFO (removido do WS, mas mantido na memória).

Threads e Falhas de Página

Dependendo do modelo de threads utilizado (One-to-One, Many-to-One ou Many-to-Many):

  • No kernel do Solaris, as falhas de página (PF) são tratadas separadamente por thread.
  • No Linux, as threads podem gerar falhas de página de forma independente.
  • No Windows NT, a situação é semelhante à do Linux.

Entradas relacionadas: