El Miércoles, 3 de Febrero de 2010 13:24:15 Angel Alvarez escribió:
El Miércoles, 3 de Febrero de 2010 12:15:46 Camaleón escribió:
El Wed, 03 Feb 2010 03:41:00 +0100, Carlos E. R. escribió:
El 2010-02-02 a las 08:23 -0000, Camaleón escribió:
Te recuerdo el origen de la discusión:
***
Hipótesis: en oS de 32 bits y 8 GiB, no mataría el sistema, al no poder reservar más de 4 GiB por proceso >:-)
Con el "kernel-pae", lo dudo >>:-)
Precisamente con el pae. El sistema total puede pasar de los 4 gigas, pero cada proceso no. ***
Un sistema con PAE y mediante mmap() *puede* pasar de los 4 GiB/proceso.
No te estaba diciendo más que eso. Cómo lo gestione el sistema operativo es "transparente" para el proceso.
Sigues sin entenderlo :-(
Y tu sigues empeñado en argumentar absurdos y llevarlos hasta las últimas consecuencias. No es la primera vez que lo haces, por cierto.
En 32 bits (con PAE) puedes hacer estas cosas:
No se trata de eso.
Ahora, te reto a aumentar ese tamaño en una variable, en un 32 bits con pae. >>>:-)
Así no estás demostrando que un proceso no pueda tener acceso a >4GiB.
Y yo te reto a que preguntes a cualquier programador del kernel sobre este asunto porque me parece que tampoco eres un experto en esto :-).
No es que no me fíe de ti, es de tu "cabezonería" de la que no me fío.
Saludos,
-- Camaleón
teneis razón ambos a la vez
si estás en modo kernel puedes "acceder" a mas memoria
- tocando la MMU
"x86 processor hardware architecture is augmented with additional address lines used to select the additional memory, so physical address size is increased from 32 bits to 36 bits. This, theoretically, increases maximum physical memory size from 4 GB to 64 GB. The 32-bit size of the virtual address is not changed, so regular application software continues to use instructions with 32-bit addresses and (in a flat memory model) is limited to 4 gigabytes of virtual address space. The operating system uses page tables to map this 4 GB address space into the 64 GB of physical memory. The mapping is typically applied differently for each process. In this way, the extra memory is useful even though no single regular application can access it all simultaneously."
luego cada proceso direcciona max 4GB pero el kernel puede acceder a mas memoria 46GB porque hay dos bits mas disponible.
obviamente me refería a 64GB no 46.. Salu2
como puede acceder cada proceso a esa memoria extra?
pidiendole al kernel que le mapée dentro de sus espacion direccionable de 32bits
esto es AWE, o mmap
Tu produces una direccion de 32bits y la MMU la traduce a 32 bits
con PAE
Tu produces una direccion de 32 bits y la MMU la traduce a 36 bits.
se ve bien en los graficos de la wikipedia:
http://en.wikipedia.org/wiki/Physical_Address_Extension
Asi el proceso sigue pensando en 32bits y sigue constreñido a "direccionar" max 4 GB pero puede "acceder" a más.
Lo que yo decia que viene siendo la versión modena de EMS o XMS.
No hace falta programar para saber eso. Cuando yo era becario habia que lidiar con el EMM386.exe y el HIMEM.sys y por tanto saber que que iba la vaina para recolocar cosas del DOS en esas partes.
¿No os acordais que QEMM-386?
http://en.wikipedia.org/wiki/QEMM
Sed buenos..
Salu2
-- Este correo no tiene dibujos. Las formas extrañas en la pantalla son letras. __________________________________________
Clist UAH a.k.a Angel __________________________________________ Evitar la programación defensiva. Manual de Erlang
-- Este correo no tiene dibujos. Las formas extrañas en la pantalla son letras. __________________________________________ Clist UAH a.k.a Angel __________________________________________ Te has metido en un hipoteca de 70M y encima te roban una panda de Ninjas... Crisis Ninja para Dummies. -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org