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.