Utilização do RAM do kernel SMP do Linux

1

Eu tenho uma máquina linux com o Redhat 32 bit SMP Kernel instalado, o tamanho da ram da máquina é de 16 GB e a arquitetura do processador é de 64 bits. Por favor, esclarecer minhas dúvidas sobre esta configuração:

  1. O sistema operacional pode usar a memória de 16GB completamente? (ouvi dizer que no windows so se estamos usando 32 bits, a capacidade máxima de memória RAM é inferior a 4 GB)
  2. Qual é a especialidade do kernel SMP comparado ao normal

A seguir estão os detalhes da instalação do redhat

[user@applicaton ~]$ uname -a
Linux applicaton 2.6.18-164.el5PAE #1 SMP Tue Aug 18 15:59:11 EDT 2009 i686 i686 i386 GNU/Linux
[user@applicaton ~]$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.4 (Tikanga)
[user@applicaton ~]$ lsb_release
LSB Version:    :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
[user@applicaton ~]$

Podemos usar o SMP junto com o PAE no linux?

    
por Akhil Thayyil 31.01.2013 / 08:07

3 respostas

3

Como há muita confusão, deixe-me dar os fatos reais.

Um processo de 32 bits é fundamentalmente limitado a 4 GB de memória virtual, porque um processo de 32 bits usa ponteiros de 32 bits em seu espaço de memória virtual. Alguns sistemas operacionais de 32 bits reduzem esse limite para 2 GB ou 3 GB porque usam um pouco desse espaço para a memória do kernel.

Um sistema operacional de 32 bits normalmente seria limitado a 4 GB de memória física, porque o SO usa ponteiros de 32 bits na RAM. O PAE permite que o sistema operacional use ponteiros maiores e, portanto, aborde mais de 4 GB de RAM física . Não tem efeito na limitação da memória virtual.

Processos de 32 bits executados em sistemas operacionais de 64 bits podem usar toda a RAM física no sistema. Eles simplesmente não podem usar mais de 4 GB na forma de mapeamentos de memória virtual por vez. Mas isso está longe de ser a única maneira pela qual os processos usam memória. ( AWE é um caminho. Mapeamento de memória pedaços de um arquivo em um disco RAM é outro. Há muito mais.)

Observe que, mesmo se você tiver menos de 4 GB de RAM, em um sistema operacional de 64 bits, os processos poderão usar mais de 4 GB de memória virtual. (Por exemplo, eles podem mapear arquivos enormes ou usar matrizes esparsas gigantescas.)

Os limites de memória físico e virtual são freqüentemente confundidos. Eles são limites para coisas completamente diferentes e quase completamente não relacionados uns aos outros. A memória física (RAM) não é igual à memória virtual (espaço de endereço).

    
por 31.01.2013 / 10:11
2

Os kernels de 32 bits podem utilizar o PAE ( link ) para acessar mais de 4 GB de RAM, mas há um problema: um único O processo ainda é limitado a 4 GB de memória, por isso, se você precisar de aplicativos para usar mais do que isso (por exemplo, servidores de aplicativos como o tomcat), sua única opção é usar os kernels de 64 bits.

    
por 31.01.2013 / 08:29
2

Em geral, em um sistema de 32 bits, você não pode endereçar mais de 4 Gb de RAM. Isso ocorre porque os locais da memória são representados como números binários de 32 bits (máx. 4294967296 bits). Uma solução para isso é usar um kernel PAE , mas é um truque, pois ele envia o endereçamento para fora para 36 bits e extra mapeamento nas tabelas de páginas. Ele expande (no linux após o suporte a 2.3.23 w / cpu) o intervalo de endereços de memória física para 64Gb, mas um processo normal continuará a usar um espaço de endereçamento de 32 bits e ainda estará limitado à memória virtual de 4Gb. Aplicativos que exigem mais de 4 GB de memória, o sistema operacional pode oferecer mecanismos especiais além do PAE, por exemplo, AWE no Windows.

Uma solução melhor é mudar para uma distribuição de 64 bits, o kernel sozinho não é suficiente para ser de 64 bits, já que certas bibliotecas e módulos são de 32 bits ou 64 bits, e a comutação é geralmente confusa.

O kernel do SMP significa que possui extensões Symmetric Multi Processing , o que permite que o kernel execute vários processos simultâneos. Se você tem um processador com vários núcleos, isso é obrigatório para poder usar mais de um núcleo de cada vez.

    
por 31.01.2013 / 08:32