Por Dentro Do Windows Memoria
Gerenciamento de Memória
Rodrigo Strauss http://www.1bit.com.br 1
Definindo Windows
Falaremos somente sobre Windows
NT
NT 3.51
NT 4
Windows 2000 (NT5)
Windows XP (NT 5.1)
Windows 2003 Server (NT 5.2)
Windows Vista e Longhorn Server (NT 6)
(Quase) nada disso se aplica a
Windows 9x!
2
Visão Geral do Windows kernel32 advapi32
User Mode
Kernel Mode
...
NTDLL
Object Manager
Registry
Security
Power
Management
Inter-process
Communication
Plug and Play
Scheduler
I/O Manager
Memory Manager
Hardware Abstraction Layer
3
O Memory Manager
Peça chave do Windows
Baixo nível, abaixo da implementação de gerenciamento de memória das linguagens ou frameworks
Nesse ponto do Windows, não importa se existe um Garbage Collector ou não
Isso faz parte do básico do sistema operacional Funcionamento parecido entre os sistemas operacionais de 32/64 bits, como UNIX,
Linux, MacOS, OS/2, etc
Conhecimento útil para programadores, técnicos, engenheiros, etc
4
Funcionalidades
Espaço de memória linear para todos os processos
Gerencia espaço de endereçamento dos processos e seus Working Sets
Memória Virtual e memória física
File Mapping (arquivos mapeados) Memória compartilhada e copyon-write
5
Processo?
É basicamente uma instância de um executável É um container para um address space e suas threads
Conceito de segurança (tokens), cota, tabela de handles.
Arquivos
Chaves de registros
Primitivas de sincronização, etc
Tudo isso acaba quando o processo
6
Memória Virtual
Os programas não acessam a memória física diretamente
Provê acesso linear à memória
Permite usar mais memória do que a quantidade instalada na máquina
Memória não volátil como retaguarda para excesso de uso: arquivo de paginação Permite realocar a memória física usada por um programa para outro
7
Layout de memória x86
4Gb
Memória de
Sistema
(kernel mode)
System
(Kernel, Executive, HAL)
2Gb
Memória do
Processo
(user mode)
Aplicação
(User Process Space)
0
8
Memória Virtual