Memoria caché y memoria ejecutiva en win98 (frente a win95)
Ante una pregunta sobre el alineamiento (WALIGN) de los ejecutables en win98 y su prerrequisito en win98 o su prerrequisito para ejecutar el SR1 de Office, debido a que la pregunta es interesante, he decidido publicar esto como artículo.
No es requisito que las aplicaciones estan alineadas. El problema surge únicamente con SR1 que no reconoce los ejecutables alineados y no es capaz de parchearlos (no así el SR2), Recuerda que el SR1 es anterior a win98.
La filosofía del alineamiento en win98, parte de la premisa de que win98 cambia el concepto de memoria caché de disco (esto no puede hacerlo el w95).
Me explico:
** La memoria principal de la máquina, la divide Windows en dos tipos: memoria para caché de disco y memoria ejecutable. La división es dinámica por lo que Windows puede cambiar los tamaños de ambos tipos de memoria según los requerimientos (esto es válido para w95 y w98).
** El funcionamiento normal de una caché es siempre lo mismo. Los programas se leen sobre la caché, de tal manera que la próxima vez que se ejecute, si está en la caché, no tiene que bajar al disco y por tanto lo encuentra mucho más rápidamente. Cuanta más memoria caché tengamos, mejor. Pero esto va en detrimento de la memoria de ejecución. Cuanta mas caché tengamos, menos memoria de ejecucion quedará.
** Una vez que el programa (o DLL), está en la caché, se mueve a la memoria ejecutiva y se ejecuta desde allí. En este proceso de "movimiento", se alinean los segmentos del ejecutable a frontera de página (4 Kbs) para
permitir su ejecución.
** Aquí es donde interviene ahora el gran cambio efectuado en win98. La memoria caché, pasa a ser ejecutiva. Es decir los segmentos "alineados", son capaces de ejecutarse desde la memoria caché. Por tanto, existe muchas más rapidez de ejecución en w98 que en w95 ya que el trasiego y alineamiento de los segmentos de código a la memoria ejecutiva es lento, y además la memoria ejecutiva es paginable, mientras que la memoria caché, no lo es.
Un saludo,
--
Jose Manuel Tella Llop
jmtella@csi.com
Fecha: jueves, 25 de marzo de 1999