On Lunes, 1 de Febrero de 2010 00:19:51 Camaleón escribió:
El Sun, 31 Jan 2010 23:07:34 +0100, Carlos E. R. escribió:
El 2010-01-31 a las 20:02 -0000, Camaleón escribió:
El Sun, 31 Jan 2010 20:15:20 +0100, Carlos E. R. escribió:
El 2010-01-31 a las 17:49 -0000, Camaleón escribió:
> Aquí explicaban cómo hacerlo, con las "artimañas" del mmap(), una > pizca de C y ensamblador. En apenas 62 KiB. Y es del año 2005...
Que no, que no lo entiendes.
Eso explícaselo al autor del "tub", no a mí ;-)
El del tub concuerda con lo que yo digo.
Entonces es que no lo has entendido o es que no lo quieres entender.
No, eres tú quien no lo entiende. Simplemente intenta compilar en assembler de una máquina de 32 bits la instrucción que te puse, y verás como no puedes. Con pae y sin pae, es así. Limite estructural o lo que quieras llamarlo.
A ver, Carlos, que esto tiene visos de alargarse más de la cuenta y no quiero líos ni tampoco quiero discutir contigo. Prefiero entender las cosas, así que si digo algo que no sea cierto, me lo dices y ya está.
En la Wikipedia (en relación al PAE), decía lo siguiente:
*** (...) For application software which needs access to more than 4 GB of RAM, some special mechanisms may be provided by the operating system in addition to the regular PAE support. On Microsoft Windows this mechanism is called Address Windowing Extensions, while on Unix-like systems a variety of techniques are used, such as using mmap() to map regions of a file into and out of the address space as needed. ***
Es decir, entiendo que lo quiere decir es que para que una aplicación -de 32 bits- pueda acceder a más de esos 4 GiB. (2 GiB.) de memoria, además de tener habilitado el PAE, hace falta utilizar un "añadido", como es el caso del AWE (en sistemas Windows) y de mmap() en sistemas Linux.
¿Correcto?
Sigo.
Leyendo la documentación del AWE -que lo explica bastante bien, por cierto- me da entender que esta "extensión", al igual que el mmap() en Linux, lo que permite es que una aplicación (o un proceso) pueda acceder a mayor cantidad de memoria, siempre en función de la cantidad de RAM física que se tenga instalada.
*** http://msdn.microsoft.com/en-us/library/aa366527(VS.85).aspx
Address Windowing Extensions
Address Windowing Extensions (AWE) is a set of extensions that allows an application to quickly manipulate physical memory greater than 4GB. Certain data-intensive applications, such as database management systems and scientific and engineering software, need access to very large caches of data. In the case of very large data sets, restricting the cache to fit within an application's 2GB of user address space is a severe restriction. In these situations, the cache is too small to properly support the application.
AWE solves this problem by allowing applications to directly address huge amounts of memory while continuing to use 32-bit pointers. AWE allows applications to have data caches larger than 4GB (where sufficient physical memory is present). AWE uses physical nonpaged memory and window views of various portions of this physical memory within a 32-bit virtual address space. ***
Y pongo el ejemplo del AWE porque se entiende perfectamente el concepto de lo que hace, cómo lo hace y de para qué sirve.
Y lo pongo porque es exactamente en lo que estaba pensando: que no tiene mucho sentido que una aplicación de 32 bits no pueda acceder a más RAM cuando se tiene instalado un sistema operativo que soporte PAE.
Ahora bien, si me dices que el mmap() NO sirve para hacer esto mismo pero en entornos Linux -que es básicamente lo que he interpretado que permitía hacer ese "tub"-, entonces:
a) El texto de la Wikipedia está equivocado al pretender englobarlos los dos conceptos (AWE y mmap) cuando obviamente son distintos y cada uno tiene funcionalidades diferentes.
b) Tampoco he entendido para qué sirve el AWE :-)
Saludos,
yo creo haber entendido que AWE = EMS mas o menos o XMS si me apuras que para el caso era igual. Yo he hecho aplicaciones con EMS/XMS y no variaba muchos mas que la posisicon de buffer(window en AWE) y las llamadas a gestor de memeoris extendida o al limulador. Salu2 -- 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