Pregunta

Estoy usando 32 bits RHEL 4.4 en hardware basado en AMD64. Aquí está la salida de uname -a

$ uname -a
Linux zulu 2.6.9-42.0.10.ELsmp #1 SMP Fri Feb 16 17:17:21 EST 2007 i686 athlon i386 GNU/Linux

Tengo 8gigs de memoria instalado en este sistema, el sistema operativo es de 32 bits quiero suponer que mi sistema no será capaz de hacer uso de la memoria total de 8 GB. Pero cuando corro top , veo el siguiente -

Mem:   8309168k total,  8292028k used,    17140k free,     7096k buffers

Por lo tanto, top es capaz de ver todos los 8 GB de memoria.

Si instalo 32 bits de WinXP en la misma máquina, administrador de tareas sólo demuestra 3 GB como disponibles.

Mi pregunta es - ¿Cómo es de 32 bits del sistema operativo capaz de ver la memoria de 8 GB? ¿Quiere esto decir que mis aplicaciones serán capaces de utilizar el espacio de direcciones más grande? Y por qué es la diferencia entre bits Linux de 32 y 32 bits de WinXP?

Gracias!

¿Fue útil?

Solución

Su sistema Linux soporta Extensión de dirección física .

Otros consejos

Existen diferentes 'niveles' de la memoria. Lo que es imposible, sea cual sea el sistema operativo, es para hacer frente a más de 4 GB en un solo proceso, ya que sus indicadores son demasiado pequeños para más que eso - que es la limitación fundamental de 32 bits w.r.t memoria. En Linux y Windows, y lo más 'tradicional' sistemas operativos Conjeturaría, el espacio de direcciones virtuales de 32 bits se divide en una parte para el núcleo y una parte para el proceso, para que tenga menos de 4 GB de contenido direccionable para cada proceso.

Pero aún así, el sistema operativo podría utilizar más de 4 Gb - por ejemplo, que tiene 2-3 procesos cada consumir 2 GB de memoria. Incluso 32 bits CPU puede direccionar más de 4 GB de memoria (a nivel de hardware), pero en el espacio de direcciones virtuales, que están siempre limitados por sus punteros de 32 bits.

El viejo nuevo que tiene una buena explicación sobre las diferencias entre el espacio de direcciones físico, espacio de direcciones virtuales y co: http://blogs.msdn.com/oldnewthing/archive/2004/08/18/216492.aspx

El procedimiento que permite esto se llama "PAE" (extensión de dirección física). Su CPU es capaz de utilizar direcciones de 36bit internamente, y su sistema operativo es compatible con ella. Desafortunadamente, Windows XP sólo utiliza PAE con el fin de apoyar el bit NX (no bit de ejecución, provoca una excepción a ocurrir cuando el procesador intenta ejecutar código desde una página marcada con este bit). granos de soporte de 32 bits Linux PAE.

CPUs más recientes compatible-i386 pueden tratar más de 4 GB usando el modo PAE. Windows XP limita artificialmente el espacio de direcciones de 4 GB debido a que hay demasiados controladores de hardware mal escritos que asumen toda la DMA está se llevará a cabo en la memoria por debajo de 4 GB. Así, alrededor de 1 GB de espacio de direcciones de 4 GB se asigna al hardware, el resto de RAM física. ediciones de servidor de Windows no tienen esta limitación. Los núcleos de Linux que soportan PAE no limitan la memoria tampoco. Ambos soporta hasta 32 GB, si no recuerdo mal.

Su aplicación se limita a algún lugar entre 2-3 GB de espacio de direcciones, dependiendo de las opciones del sistema operativo. Una aplicación puede utilizar eficazmente RAM más físico que que por windowing partes de la memoria dentro y fuera de ese espacio de direcciones, el uso de extensiones de ventana de dirección, o archivos de memoria asignada, por ejemplo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top