Por dentro do Windows: Gerenciamento de Memória

20
1 Por dentro do Windows: Por dentro do Windows: Gerenciamento de Gerenciamento de Memória Memória Rodrigo Strauss Rodrigo Strauss http://www.1bit.com.br http://www.1bit.com.br

description

Por dentro do Windows: Gerenciamento de Memória. Rodrigo Strauss http://www.1bit.com.br. 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) - PowerPoint PPT Presentation

Transcript of Por dentro do Windows: Gerenciamento de Memória

1

Por dentro do Windows:Por dentro do Windows:Gerenciamento de MemóriaGerenciamento de Memória

Rodrigo StraussRodrigo Strausshttp://www.1bit.com.brhttp://www.1bit.com.br

2

Definindo WindowsDefinindo Windows

Falaremos somente sobre Windows Falaremos somente sobre Windows NTNT

NT 3.51NT 3.51

NT 4NT 4

Windows 2000 (NT5)Windows 2000 (NT5)

Windows XP (NT 5.1)Windows XP (NT 5.1)

Windows 2003 Server (NT 5.2)Windows 2003 Server (NT 5.2)

Windows Vista e Longhorn Server (NT 6)Windows Vista e Longhorn Server (NT 6)

(Quase) nada disso se aplica a (Quase) nada disso se aplica a Windows 9x!Windows 9x!

3

Visão Geral do WindowsVisão Geral do Windows

Memory ManagerMemory ManagerI/O ManagerI/O Manager

SecuritySecurity

SchedulerScheduler

Object ManagerObject Manager

Inter-process Inter-process CommunicationCommunication

Hardware Abstraction LayerHardware Abstraction Layer

User ModeUser Mode

Kernel ModeKernel Mode

NTDLLNTDLL

advapi32advapi32kernel32kernel32

RegistryRegistry

Power Power ManagementManagement

Plug and PlayPlug and Play

. . .. . .

4

O Memory ManagerO Memory Manager

Peça chave do WindowsPeça chave do Windows

Baixo nível, abaixo da implementação Baixo nível, abaixo da implementação de gerenciamento de memória das de gerenciamento de memória das linguagens ou frameworkslinguagens ou frameworks

Nesse ponto do Windows, não importa se Nesse ponto do Windows, não importa se existe um Garbage Collector ou nãoexiste um Garbage Collector ou não

Isso faz parte do básico do sistema Isso faz parte do básico do sistema operacionaloperacional

Funcionamento parecido entre os Funcionamento parecido entre os sistemas operacionais de 32/64 bits, como sistemas operacionais de 32/64 bits, como UNIX, Linux, MacOS, OS/2, etcUNIX, Linux, MacOS, OS/2, etc

Conhecimento útil para programadores, Conhecimento útil para programadores, técnicos, engenheiros, etctécnicos, engenheiros, etc

5

FuncionalidadesFuncionalidades

Espaço de memória linear para Espaço de memória linear para todos os processostodos os processos

Gerencia espaço de Gerencia espaço de endereçamento dos processos e endereçamento dos processos e seus Working Setsseus Working Sets

Memória Virtual e memória físicaMemória Virtual e memória física

File Mapping (arquivos File Mapping (arquivos mapeados)mapeados)

Memória compartilhada e copy-Memória compartilhada e copy-on-writeon-write

Trabalha em conjunto com o Trabalha em conjunto com o Cache Manager e o I/O ManagerCache Manager e o I/O Manager

6

Processo?Processo?

É basicamente uma instância de um É basicamente uma instância de um executávelexecutável

É um container para um address É um container para um address space e suas threadsspace e suas threads

Conceito de segurança (tokens), cota, Conceito de segurança (tokens), cota, tabela de handles.tabela de handles.

ArquivosArquivos

Chaves de registrosChaves de registros

Primitivas de sincronização, etcPrimitivas de sincronização, etc

Tudo isso acaba quando o processo Tudo isso acaba quando o processo acabaacaba

7

Memória VirtualMemória Virtual

Os programas não acessam a Os programas não acessam a memória física diretamentememória física diretamente

Provê acesso linear à memóriaProvê acesso linear à memória

Permite usar mais memória do que a Permite usar mais memória do que a quantidade instalada na máquinaquantidade instalada na máquina

Memória não volátil como retaguarda Memória não volátil como retaguarda para excesso de uso: arquivo de para excesso de uso: arquivo de paginaçãopaginação

Permite realocar a memória física Permite realocar a memória física usada por um programa para outrousada por um programa para outro

8

Layout de memória x86Layout de memória x86

Aplicação

(User Process Space)

System

(Kernel, Executive, HAL)

0

2Gb

4Gb

Memória de Sistema

(kernel mode)

Memória do Processo

(user mode)

9

Memória VirtualMemória Virtual

Como a memória virtual é mapeada Como a memória virtual é mapeada para a memória físicapara a memória física

0000 0000 0000 0000 0000 0000 0000 0000

CR3

PD PT page dadosdados

1024 PDEs

1024 PTEs

4096 bytes

10

Páginas de memóriaPáginas de memória

Alocação por página de memória Alocação por página de memória (4kb ou 4MB)(4kb ou 4MB)

Limite abstraído pelo Heap Manager Limite abstraído pelo Heap Manager do Windows ou da linguagem ou do Windows ou da linguagem ou framework usadoframework usado

Determinado pelo hardwareDeterminado pelo hardware

11

Acabou a memória, e Acabou a memória, e agora?agora?

Similaridades com o cache do Similaridades com o cache do processadorprocessador

Liberando memória físicaLiberando memória físicaTirar memória de quem?Tirar memória de quem?

Gravando (ou não) no arquivo de Gravando (ou não) no arquivo de paginaçãopaginação

Marcando as páginas de memória como Marcando as páginas de memória como inválidasinválidas

Usando a memória física “liberada” na Usando a memória física “liberada” na nova alocaçãonova alocação

12

Ainda existe memória Ainda existe memória disponível...disponível...

O Windows pode rearranjar o uso da O Windows pode rearranjar o uso da memória física por diversos motivosmemória física por diversos motivos

Cache para arquivosCache para arquivos

Programas inativosProgramas inativos

Responsividade para novos programasResponsividade para novos programas

A memória solitada pelos programas A memória solitada pelos programas é fornecida sob demandaé fornecida sob demanda

13

Page FaultsPage Faults

O que acontece quando o programa O que acontece quando o programa acessa um dado que não está mais acessa um dado que não está mais na memória?na memória?

Exceção/interrupção de hardware Exceção/interrupção de hardware tratada pelo Memory Managertratada pelo Memory Manager

Restauração da memóriaRestauração da memória

O que acontece se não existe memória O que acontece se não existe memória física disponívelfísica disponível

Colaboração entre I/O Manager, File Colaboração entre I/O Manager, File System e Cache ManagerSystem e Cache Manager

14

Indicadores de memóriaIndicadores de memória

Virtual MemoryVirtual Memory

Working SetWorking Set

Private BytesPrivate Bytes

15

Mais funcionalidadesMais funcionalidades

Flags de permissão de uso de Flags de permissão de uso de memóriamemória

PAGE_READONLYPAGE_READONLY

PAGE_READWRITEPAGE_READWRITE

PAGE_EXECUTE_READPAGE_EXECUTE_READ

PAGE_EXECUTE_READWRITEPAGE_EXECUTE_READWRITE

Data Execution PreventionData Execution PreventionWindows XP SP2+, Windows Server 2003 Windows XP SP2+, Windows Server 2003 SP1+, Windows Vista e Longhorn ServerSP1+, Windows Vista e Longhorn Server

Alguns programas necessitam executar Alguns programas necessitam executar código gravado em memóriacódigo gravado em memória

16

O começo da era 64 bitsO começo da era 64 bits

2 GB de RAM já não são mais 2 GB de RAM já não são mais suficientes para muitas aplicações suficientes para muitas aplicações para usuários finaispara usuários finais

2 GB de RAM é um limite muito baixo 2 GB de RAM é um limite muito baixo para certas aplicações de missão para certas aplicações de missão críticacrítica

Bancos de dadosBancos de dados

Servidores de dadosServidores de dados

Processamentos e cálculosProcessamentos e cálculos

17

Windows 64 bitsWindows 64 bits

Windows Server sempre foi Windows Server sempre foi preparado para 64 bits, agora o preparado para 64 bits, agora o Windows XP também éWindows XP também é

Nos próximos anos Nos próximos anos todostodos os novos os novos processadores sejam x64, processadores sejam x64, suportando tanto sistemas suportando tanto sistemas operacionais 64 bits quanto 32 bitsoperacionais 64 bits quanto 32 bits

18

NúmerosNúmeros

Architectural component 64-bit Windows 32-bit Windows

Virtual memory 16 terabytes 4 GB

Paging file size 512 terabytes 16 terabytes

Hyperspace 8 GB 4 MB

Paged pool 128 GB 470 MB

Non-paged pool 128 GB 256 MB

System cache 1 terabyte 1 GB

System PTEs 128 GB 660 MB

http://support.microsoft.com/default.aspx?scid=kb;en-us;294418

19

FileMappingFileMapping

Mapeando arquivos na memóriaMapeando arquivos na memória

Uso na carga de executáveis e DLLsUso na carga de executáveis e DLLs

Page faultsPage faults

Copy on writeCopy on write

Prefetch do Windows XPPrefetch do Windows XP

SuperFetch do Windows VistaSuperFetch do Windows Vista

20

Game Game Over!Over!Perguntas?Perguntas?