• Sign In
 

LATAM Team blog

Search Blogs
  • Advanced search options...
Tags
  • Cluster
  • Crash
  • Desarrollo
  • Desenvolvimento
  • Directory Services
  • DST
  • Español
  • Exchange/Outlook
  • Hang
  • High Availability
  • IIS
  • Networking
  • Office
  • People
  • Performance
  • Português
  • PowerShell Scripts
  • Security
  • Setup
  • Sharepoint
  • SMS
  • SQL
  • Virtualization
  • Windbg Scripts
  • Windows
Blog - News

Where Are You Coming From Today?

Where are you now?

Follow us on:

Options
  • Blog Home
  • About
  • Share this
  • RSS for posts
  • Atom
  • RSS for comments
Archive
Archives
  • May 2012 (12)
  • April 2012 (6)
  • March 2012 (6)
  • February 2012 (4)
  • January 2012 (7)
  • December 2011 (11)
  • October 2011 (6)
  • September 2011 (1)
  • August 2011 (3)
  • July 2011 (7)
  • June 2011 (6)
  • May 2011 (5)
  • April 2011 (2)
  • March 2011 (13)
  • February 2011 (1)
  • January 2011 (5)
  • December 2010 (6)
  • November 2010 (1)
  • October 2010 (6)
  • September 2010 (2)
  • August 2010 (3)
  • July 2010 (3)
  • June 2010 (5)
  • May 2010 (1)
  • April 2010 (10)
  • March 2010 (21)
  • February 2010 (8)
  • January 2010 (3)
  • December 2009 (5)
  • November 2009 (5)
  • October 2009 (6)
  • September 2009 (8)
  • August 2009 (9)
  • July 2009 (1)
  • June 2009 (3)
  • May 2009 (2)
  • April 2009 (7)
  • March 2009 (4)
  • February 2009 (7)
  • January 2009 (7)
  • December 2008 (8)
  • November 2008 (7)
  • October 2008 (22)
  • September 2008 (17)
  • August 2008 (13)
  • July 2008 (11)
  • June 2008 (7)
  • May 2008 (3)
  • April 2008 (2)
  • March 2008 (6)
  • January 2008 (4)
  • December 2007 (9)
  • November 2007 (4)
  • October 2007 (3)
  • September 2007 (8)
  • August 2007 (4)
  • July 2007 (2)
  • June 2007 (5)
  • May 2007 (7)
  • April 2007 (9)
  • March 2007 (7)
  • February 2007 (6)
  • January 2007 (4)
  • December 2006 (14)
  • November 2006 (10)
  • October 2006 (10)
  • September 2006 (11)
  • August 2006 (15)
  • July 2006 (7)
  • June 2006 (14)
  • May 2006 (22)
  • April 2006 (16)
  • March 2006 (20)
  • January 2006 (1)

Boot.ini e o Gerenciamento de Memória do Windows

TechNet Blogs > LATAM Team blog > Boot.ini e o Gerenciamento de Memória do Windows

Boot.ini e o Gerenciamento de Memória do Windows

LatamBlog
7 Jul 2006 5:17 PM
  • Comments 5

 

Boot.ini e o Gerenciamento de Memória do Windows

Por: Yuri Diógenes

 

1. Introdução

 

O arquivo boot.ini como já explicado em artigos passados é essencial para que o Windows inicie com sucesso. Porém, muito mais que apenas um arquivo necessário para o processo de boot, este arquivo também poderá influenciar na maneira em que o Windows vai fazer o gerenciamento de memória. O artigo a seguir vai mostrar algumas modificações que podem ser realizadas neste arquivo com o intuito de otimizar o uso de memória, porém também será mostrado os prós e contra do uso de tais parâmetros.

 

2. Espaço de Endereçamento de Memória

 

Houve uma época que só poderíamos acessar 640K de memória RAM, época do MS-DOS e do modelo de acesso segmentado a memória. A demanda aumentou e com o aumento da demanda veio a evolução tanto do hardware quanto do software. O ambiente que hoje domina o mercado é o de 32 bits com um modelo de acesso “flat” à memória. Com isso a memória não é mais segmentada e na realidade agora é apenas um espaço continuo de endereçamento de 4GB.

 

 

 

 

 

No modelo de endereçamento utilizado pelo Windows (NT/2000/XP/2003) cada processo tem acesso à até 2GB exclusivo enquanto que o núcleo do sistema operacional fica com os outros 2GB

 

Um outro conceito importante que deve se entendido é PTE – Page Table Entries. Este conceito é importante de ser passado agora pois dependendo do tipo de alteração que façamos no boot.ini, haverá uma mudança no SO que pode afetar estas páginas de sistema.

 

Antes que a CPU possa encontrar os bytes de informação localizados em páginas de memória ele precisa dinamicamente construir outras páginas de memória que contém os mapeamentos de informação necessária para que ele faça a devida busca. É este mapeamento de informações que chamamos de “Page Table Entries” ou simplesmente PTE. Com base nisso é afirmativo afirmar que os PTE’s são usados para fazer o mapeamento de espaço de endereçamento de E/S, pilhas do kernel ou arquivos, ou seja, o PTE vai apontar a localização da informação na memória física.

 

 

 

O processo de uso dos PTE’s então acontece da seguinte forma:

1. O dado é requisitado do Kernel ou de uma aplicação, essa requisição por sua vez é enviado para o gerenciador de memória;

2. O gerenciador de memória consulta a tabela de páginas que vai conter dados organizados da seguinte forma:

 

 

3. Após realizar consulta, o gerenciador de memória faz o acesso da informação através de consulta no endereço virtual (arquivo de paginação) e memória (RAM).

4. O gerenciador de memória então devolve o dado requisitado pela aplicação ou pelo Kernel.

 

 

3. Alterando o Boot.ini com o parâmetro /3GB

 

O parâmetro /3GB pode ser adicionado em um sistema operacional Windows 2000 Advanced Server, Windows 2000 Datacenter Server ou todas as versões do Windows Server 2003. Quando adicionamos este parâmetro, o que estamos fazendo na realidade é dizer para o sistema operacional que a partir de agora ele só vai utilizar até 1GB de espaço de endereçamento e que as aplicações podem usar até 3GB.

 

As aplicações que desejam tirar proveito desta característica precisam ter um “flag” no cabeçalho chamado de IMAGE_FILE_LARGE_ADDRESS_AWARE, este flag é adicionado ao executável da aplicação através do parâmetro /LARGEADDRESSAWARE. Caso a aplicação não seja iniciada usando este elemento o Windows não vai disponibilizar este 1GB extra para ser utilizado pela aplicação.

 

4. Alterando o Boot.ini com o parâmetro /Userva

 

Muitas vezes algumas aplicações precisam mais de 2GB de memória, porém 3GB também pode ser considerado um número alto. É possível fazer uma otimização neste espaço que compreende entre 2GB e 3GB, temos aí 1GB para distribuir de forma mais eficiente para aplicação e é aí que entra o parâmetro /userva, que está disponível em sistemas com o Windows Server 2003.

 

Este parâmetro é usado em conjunção com o 3GB, ou seja, o que estamos fazendo de fato é dizer que a aplicação poderá usar mais de 2GB, porém estabelecemos o valor máximo no parâmetro /userva. Vejamos como exemplo o arquivo boot.ini abaixo:

 

[Boot Loader]

Timeout=30

Default=multi(0)disk(0)rdisk(0)partition(2)\WINNT

[Operating Systems]

multi(0)disk(0)rdisk(0)partition(2)\WINNT="Microsoft Windows Server 2003" /3GB /Userva=2500

 

Neste arquivo estamos dizendo que será disponibilizado 2.5GB para a aplicação. Com isso o sistema operacional vai disponibilizar 1.5GB para o Kernel e 2.5GB para a aplicação.

 

5. Alterando o Boot.ini com o parâmetro /PAE

 

Com o que foi passado até agora é normal que uma pergunta apareça: se o sistema operacional só gerencia 4GB, o que vou fazer com meu servidor que comprei com 8GB?

 

Essa é uma pergunta cabível e felizmente tem uma boa resposta. Para tirar proveito do espaço de endereçamento superior a 4GB é necessário o uso do parâmetro /PAE no arquivo boot.ini.

 

O parâmetro PAE (Physical Address Extension) permite o uso de até 64GB de memória em sistema 32bits. Isso porque ao invés de usar o tradicional 232 = 4GB, ele usa um sistema de endereçamento de 36 bits, ou seja, 236 = 64GB. Na prática o único produto no momento disponível para tirar 100% de aproveitamento desta tecnologia é o Windows Server 2003 Datacenter Edition, que suporta 64GB de memória.

 

Para mais informações sobre o parâmetro PAE leia o artigo a seguir:

 

What Is PAE X86?

http://technet2.microsoft.com/WindowsServer/en/Library/efc41320-713f-4004-bc81-ddddfc8552651033.mspx?mfr=true

 

 

 

6. Pros e Contras do /3GB

 

Vantagem: Otimização da fragmentação de memória virtual

A fragmentação de memória acontece quando a memória está disponível para o processo, porém a página existente não é suficiente para alocação requisitada. Vejamos na figura abaixo como funciona isso na prática:

 

 

 

Assim como acontece na fragmentação de disco, a fragmentação de memória existe quando múltiplos blocos de página apesar de estarem disponíveis não se encontram em blocos contínuos. Veja, que ao adicionar o parâmetro /3GB temos uma mudança neste comportamento disponibilizando uma quantidade maior de memória para aplicação, com isso a tendência é termos mais páginas contínuas para alocar.

 

Desvantagem: Limitação da Memória Disponível para o Kernel

Apesar de ser um efeito obvio, tendo em vista que estamos agora limitando o Kernel e com isso limitando algumas das principais características do sistema operacional, como quantidade de PTE’s disponíveis. Vejamos na tabela abaixo os efeitos desta mudança:

 

Efetuar o boot...

Sem 3GB

Com 3GB

PTE’s de sistema livre

140.000

40.000

Número máximo do tamanho de “Paged Pool”

300 a 340 MB

192 MB

Número máximo do tamanho de “NonPaged Pool”

256 MB

128 MB

 

Como é possível notar existe uma diferença grande com o uso ou não do parâmetro. Apenas para enfatizar, a falta de PTE’s disponível no sistema por sua vez pode causar comportamentos como:

 

  • Parada Inesperada (Tela Azul com erro 0xD8) – isso pode acontecer porque drivers podem tentar alocar mais PTE’s do que há disponível;
  • Evento 51: este é um erro que acontece quando há uma operação de escrita do cache de sistema para o disco.

 

7. Referências

 

294418 Comparison of 32-Bit and 64-Bit Memory Architecture

268363 Intel Physical Addressing Extensions (PAE) in Windows 2000

171793 Information on Application Use of 4GT RAM Tuning

316739 How to Use the /USERVA Switch in the Boot.ini File to Tune /3GB

319642 Maximum Paged Pool Size no longer limited to 160 mb on Windows .NET

  • 5 Comments
Comments
Comments
  • marcelo
    13 Nov 2006 11:19 AM

    Boa Tarde

    Como ficaria a sintaxe do boot para um memoria Ram  de 20 Gb no windows 2003

    grato

    Marcelo

  • LatamBlog
    13 Nov 2006 11:38 AM

    Olá Marcelo,

    Primeiramente obrigado por sua participação no Blog. Quanto a sua pergunta veja que no ítem 5 deste artigo inicio o parágrafo justamente tocando neste ponto: "...se o sistema operacional só gerencia 4GB, o que vou fazer com meu servidor que comprei com 8GB?"

    Neste caso a reposta foi: "Essa é uma pergunta cabível e felizmente tem uma boa resposta. Para tirar proveito do espaço de endereçamento superior a 4GB é necessário o uso do parâmetro /PAE no arquivo boot.ini."

    Então, essa resposta também é cabível para a sua pergunta.

    Aqui mais uma referência sobre este assunto:

    283037 Large memory support is available in Windows Server 2003 and in Windows 2000

    http://support.microsoft.com/default.aspx?scid=kb;EN-US;283037

    Mais uma vez obrigado pelo seu post...

    Yuri Diógenes

  • Paulo Beeny
    26 Feb 2008 3:06 PM

    Ótima explicação. No caso de usar um Windows XP 32bits com 4GB ele só msotra 3,5GB se eu mudar o boot.ini para 4GB ele vai reconhecer e gerenciar os 4GB?

  • Cláudio
    7 Apr 2008 10:47 AM

    Olá, gostaria de saber se este processo é valido para x64 também.

  • LatamBlog
    10 Apr 2008 10:39 AM

    Cláudio,

    Voce pode encontrar informaçőes relacionadas a plataforma x64 bits em

    http://download.microsoft.com/download/9/e/9/9e9b9c02-4e68-46d5-83e3-86258e9e780c/Benefits_of_Windows_x64.doc

Page 1 of 1 (5 items)
  • © 2012 Microsoft Corporation.
  • Terms of Use
  • Trademarks
  • Privacy Statement
  • 5.6.402.223
  • TechNet
  • Products
  • Resources
  • Downloads
  • Support
Products
  • Windows
  • Windows
    Server
  • System
    Center
  • Internet
    Explorer
 
  • Office
  • Office 365
  • Exchange
    Server
 
  • SQL Server
  • SharePoint
    Products
  • Lync
  • See all products »
Resources
  • Script Center
  • Solution Accelerators
  • Windows Sysinternals
  • Evaluation Center
  • Microsoft Answers
  • TechNet Edge
 
  • TechNet Flash Newsletter
  • TechNet Magazine
  • TechNet Subscriptions
  • Virtual Labs
Solutions
  • Business Intelligence
  • Networking
  • Private Cloud
  • Security
  • Virtualization
Downloads
  • Windows 8 Consumer Preview
  • SP1 RTM for Windows Server 2008 R2 and Windows 7
  • Internet Explorer 9
  • SQL Server 2012
  • See all downloads »
Evals
  • Microsoft Private Cloud
  • Windows Server "8" Beta Trial
  • Office Professional Plus 2010
  • Windows 7 Enterprise Trial
  • Project Professional 2010
  • Windows Server 2008 R2 with SP1
  • See all evaluations »
Tools
  • Service Packs
  • TechNet Script Repository
  • Security Tools
  • Microsoft Download Center
TechNet Support
  • Exchange Server 2010
  • Forefront Products
  • Internet Explorer 9
  • Office 2010
  • SharePoint Server 2010
  • SQL Server 2008 R2
 
  • Windows 7
  • System Center
  • Windows Server 2008 R2
  • Ask a question in TechNet Forums
Microsoft Support
  • Microsoft Support
  • Microsoft Fix It
  • Microsoft Premier and Essentials Support Options