Anuncio publicitario
Actualmente, la mayoría de las computadoras se envían con una versión de Windows de 64 bits y, a menudo, con una cantidad mínima de RAM. Esto pone en duda qué tan bien funcionan estos sistemas. Esto es especialmente cierto cuando los usuarios desean ejecutar su software heredado de 32 bits en estas nuevas computadoras.
Lo que plantea una pregunta interesante. Vos si necesita más o menos RAM ¿Cuánta RAM necesitas realmente?La RAM es como una memoria a corto plazo. Cuanto más realice múltiples tareas, más necesitará. Descubra cuánto tiene su computadora, cómo aprovecharla al máximo o cómo obtener más. Lee mas para ejecutar una aplicación de 32 bits en un Versión de 64 bits de Windows ¿Qué es la informática de 64 bits?El empaque de una computadora o hardware de computadora está repleto de términos técnicos e insignias. Uno de los más destacados es el de 64 bits. Lee mas ? Esta semana, Bruce Epper se entera.
Un lector pregunta:
¿Es cierto que ejecutar aplicaciones de 32 bits en un sistema Windows de 64 bits consume
1,5 veces más memoria en comparación con ejecutar la aplicación de 32 bits en un sistema operativo Windows de 32 bits?
Respuesta de Bruce:
Anteriormente hemos discutido los beneficios y los inconvenientes de mantener todo en 64 bits en todos los ámbitos y algunos de los efectos de "mezclar y combinar" Cómo el hardware y el software afectan el rendimiento de WindowsEn teoría, el software de 32 bits podría superar a su contraparte de 64 bits, dependiendo de la configuración del hardware. ¿Suena complicado? Estamos aquí para tener sentido y ayudarlo a obtener el mejor rendimiento de su sistema. Lee mas . Hoy vamos a examinar cómo se ejecutan las aplicaciones de 32 bits en las versiones de Windows de 64 bits.
Un sistema operativo Windows de 64 bits no puede ejecutar un programa Windows de 32 bits sin ayuda adicional. Son demasiado diferentes: desde punteros y tipos de datos, hasta cómo las llamadas al sistema (cómo los programas usan los recursos del sistema operativo subyacente). Necesitas alguna forma de hacerlos compatibles.
Entendiendo WoW64
Windows usa el subsistema WoW64 (Windows32 en Windows64) para compensar las diferencias. Funciona efectivamente como un mini-emulador de Windows de 32 bits en sistemas x64 y un emulador completo en sistemas Itanium (IA64).
Los sistemas IA64 requieren un emulador completo debido a las diferencias en las instrucciones del procesador y los tamaños de página de memoria (4K en x86 y x64, 8K en IA64). Dado que los procesadores x64 tienen todas las instrucciones de los procesadores x86 y utilizan el mismo tamaño de página de memoria, no es necesario un emulador completo.
En ambos casos, WoW64 proporciona una interfaz entre el kernel de Windows de 64 bits y la versión de 32 bits de ntdll.dll (contiene una lista de los Funciones del kernel de Windows), interceptando las llamadas del kernel y modificándolas para que puedan ser procesadas por las funciones nativas de 64 bits proporcionadas por Windows núcleo.
Hay 3 archivos DLL que se utilizan en los sistemas x64 / IA64 para lograr esto: wow64cpu.dll, wow64win.dll y wow64.dll. Sus funciones son abstraer las características del procesador y proporcionar procesadores (llegaremos a ellos más tarde) en win32k.sys que proporciona la funcionalidad de "ventana" y ntoskrnl.exe que contiene el ejecutivo, el kernel, el administrador de memoria, programador de procesos (que no debe confundirse con el Programador de tareas accesible desde el Panel de control) y otros elementos centrales del funcionamiento sistema.
Un procesador es una subrutina (piense en estas como una serie de instrucciones que realizan una sola tarea) que permite que un programa ejecute una subrutina o función común en el sistema.
En este caso, extrae los argumentos de la pila de llamadas del programa de 32 bits, los convierte en sus contrapartes de 64 bits y realiza la llamada al sistema de 64 bits. Al regresar de la llamada, convertirá los resultados de 64 bits de nuevo a 32 bits y los devolverá a la pila de llamadas del programa para que los use la persona que llama.
Todo el procesamiento se realiza en modo de usuario (que tiene permisos limitados) por dos razones. Primero, minimiza los efectos de errores en el código que podrían resultar en un agujero de seguridad, corrupción de datos o un bloqueo del sistema si se ejecuta en modo kernel.
En segundo lugar, reduce el impacto en el rendimiento que tendría si se ejecutara en modo kernel (el modo utilizado por las partes esenciales del sistema operativo) debido a la sobrecarga involucrada al cambiar entre modo de usuario y modo kernel y de regreso.
Volviendo a los sistemas Itanium, hay algunas otras diferencias importantes a tener en cuenta. Los sistemas IA64 utilizan dos archivos adicionales. IA32exec.bin es el emulador de software x86 y Wowia32x.dll proporciona la interfaz entre WoW64 y el emulador de software.
Un proceso de 32 bits cargará estos archivos, así como la versión de 64 bits de ntdll.dll. Estos son los únicos archivos binarios de 64 bits que se pueden cargar en un proceso de 32 bits antes de Windows 7. Windows 7 y versiones posteriores también tienen otra DLL, apisetschema.dll, que se cargará en todos los procesos.
Cuando se inicia un proceso de 32 bits, cargará Wow64.dll que a su vez carga la versión de 32 bits de ntdll.dll y cualquier DLL de 32 bits necesaria de % systemroot% \ SysWOW64. La mayoría de estos archivos son idénticos a los binarios en un sistema de 32 bits, aunque algunos se han reescrito para comportarse de manera diferente en WOW64.
Al observar la lista de DLL cargados, podemos ver que hay 9 DLL cargados en el proceso en Win64 que no están allí para el sistema Win32.
Ahora, es posible que tenga la tentación de mirar los tamaños de los archivos, sumarlos y usarlos como base para determinar la cantidad de memoria adicional que se está usando, pero terminaría con resultados inexactos. Estos archivos, por su naturaleza, están diseñados para ser componentes compartidos y, como resultado, el primer archivo que requiere una DLL lo carga en la memoria.
Los programas posteriores que requieren la misma DLL no cargan todo el componente en la memoria. Obtienen un puntero al componente ya cargado y asignan RAM para los elementos adicionales que se cargan en el proceso.
Nuestra configuración de prueba
Para ver lo que está sucediendo, configuré dos máquinas virtuales que ejecutan Windows 7 Ultimate con 2 GB de RAM asignados a cada una. Uno de ellos es la versión de 32 bits y el otro es de 64 bits. Ambos pasaron por exactamente el mismo proceso de instalación y parcheo.
Después de que ambos sistemas fueron parcheados, desactivé el archivo de intercambio en ambos para obtener una mejor imagen del uso de la memoria, asegurándome de que la RAM no pudiera paginarse en el disco. Una vez que se completó, se instaló LibreOffice 5.0.3.2.
Una copia de Explorador de procesos de Sysinternals Process Explorer: el reemplazo de administrador de tareas más poderoso [Windows]Seamos honestos, el Administrador de tareas de Windows no es tan bueno para comprender y administrar los procesos que se ejecutan en su computadora. Incluso en Windows 8, donde se ha mejorado mucho, el administrador de tareas no puede acercarse al ... Lee mas también se colocó en ambas máquinas. Esta es la herramienta que utilicé para recopilar información sobre el uso de la memoria. Se cambió la configuración de la columna predeterminada para que pudiera ver el conjunto de trabajo y el uso de WS Private.
Estos números de conjuntos de trabajo reflejan la cantidad de RAM que utilizan los programas. Se complicó un poco más al reflejar la cantidad de memoria utilizada por las bibliotecas compartidas, incluso si ya estaban cargadas por otro proceso. Debido a esto, si agrega la columna completa, es posible terminar con un total mayor que la RAM instalada. El conjunto de trabajo sigue siendo el mejor indicador de exactamente cuánta memoria se requiere para un proceso.
Los procesos que estamos examinando tampoco son independientes. Los diversos programas de LibreOffice inician otro proceso, soffice.exe, que ejecutará otro proceso más, soffice.bin. Necesitamos mirar los totales de los tres procesos para ver el uso efectivo de la memoria de cada programa.
Para la prueba inicial, simplemente abrí Writer, Calc e Impress individualmente para ver cuánta memoria consumen sin que se carguen datos y exporté los datos desde Process Explorer. Con Calc e Impress, había abierto un archivo .xls de 3,7 MB y un archivo .pptx de 3,9 MB respectivamente y había registrado el nuevo uso de memoria. Los resultados se pueden ver en la siguiente tabla. Todos los datos están en KB.
La gran sorpresa ocurrió con Impress. Sin un documento, estaba usando un 4,1% más de RAM en el sistema de 64 bits y un 9,9% menos con el documento cargado. Desenterré algunas otras presentaciones y obtuve resultados similares con todas ellas. El sistema de 64 bits terminó usando menos RAM que el sistema de 32 bits.
Entonces, ¿las versiones de Windows de 64 bits requieren más RAM que sus contrapartes de 32 bits cuando se ejecutan aplicaciones de 32 bits? En general, sí.
¿Pero necesitas actualizar tu RAM? Probablemente no. La diferencia De Verdad no es tan enorme. Ciertamente no es 1,5 veces diferente.
Bruce ha estado jugando con la electrónica desde los años 70, las computadoras desde principios de los 80 y respondiendo con precisión preguntas sobre tecnología que no ha usado ni visto en todo el tiempo. También se molesta al intentar tocar la guitarra.