*TEMA: Gestión De Memoria En El Sistema Operativo Windows. *OBJETIVOS: Entender como gestiona Windows la memoria. Comparar la gestión de Windows con lo estudiado. Analizar todos los pasos de gestión que realiza Windows. *INTRODUCCIÓN: Durante la evolución de la arquitectura de computadoras, la cantidad de memoria principal presente en las mismas se ha incrementado. Sin embargo, el tamaño de los programas ha aumentado más rápidamente que la memoria disponible, siendo eminente el dominio del hard sobre el soft, el equivalente a afirmar una delantera del software respecto al hardware. Desde las primeras versiones, Microsoft Windows introdujo un sistema de administración dinámico de la memoria, consistente en dividir el espacio de direccionamiento virtual en dos zonas claramente diferenciadas: una única área de memoria global y múltiples áreas de memoria local, denominadas respectivamente Global Heap y Local Heap. *DESARROLLO: GESTION DE MEMORIA. La gestión de memoria en Windows tiene lugar a dos niveles diferentes: un nivel que ve el programador de la aplicación y otra visión totalmente diferente para el sistema operativo. MEMORIA VIRTUAL Es un método que permite que varios programas se ejecuten concurrentemente compartiendo la memoria física de la computadora. La gestión de la memoria virtual esta bajo el control del sistema operativo. Por lo que respecta a cualquier programa individual, se tiene acceso todo el tiempo a toda la memoria que se necesite. Ejemplo: supongamos que tenemos un sistema Windows 95 con 4 MB de memoria y un disco fijo con abundante espacio libre. Windows 95 con su interfaz de órdenes, el administrador de impresión, etc., podría ocupar 1MB de la memoria disponible. En el disco se encuentra un procesador de texto que decidimos ejecutar. Una vez cargado este programa ocupa 2MB y abrimos un documento grande que contiene varias fuentes de caracteres diferentes. En conjunto, ese documento ocupa 400k del restante megabytes de memoria. Ahora decidimos que necesitamos incorporar una tabla numérica al documento. Los números se encuentran en una hoja de cálculo, por lo que necesitamos ejecutar la hoja de cálculo para cortar y pegar la tabla en el documento. Windows 95 debe cargar la hoja de cálculo y los datos en los restantes 624k de
memoria. El sistema y ambas aplicaciones se ejecutan a la vez, por lo que a nosotros nos parece que todo debe estar en la memoria. Realmente todo se encuentra no en los 4MB disponibles de memoria física, sino en memoria virtual. La memoria virtual del sistema está compuesta por la RAM de la computadora y el archivo de intercambio de Windows del disco fijo. el sistema operativo gestiona toda esta memoria disponible intercambiando segmentos de programas y datos de una lado a otro entre la RAM y el archivo de intercambio. Por ejemplo si se van a ejecutar las instrucciones de un segmento de código particular., se debe cargar ese segmento en la RAM. Otros segmentos de código pueden encontrarse en el disco, en el archivo de intercambio, hasta el momento en que se necesiten un área del buffer de datos del disco contenida en un segmento de datos tiene que estar en la RAM para conseguir que la transferencia del disco tenga éxito. Siempre que un segmento no se halle en la RAM, el sistema operativo puede marcar su ausencia poniendo a cero bits de presencia en el descriptor correspondiente a ese segmento. En la siguiente figura observamos la disposición básica de la memoria virtual de una aplicación win32. Toda aplicación win32 tiene un mapa de memoria similar y cada espacio de direcciones es único. Otra aplicación puede direccionar la memoria privada asignada a una aplicación win32. El espacio privado de direcciones de aplicación win32 es también la región donde el sistema asigna memoria para satisfacer las peticiones de la aplicación en tiempo de ejecución. Las aplicaciones también pueden solicitar la asignación dinámica de memoria por medio de direcciones virtuales que se corresponden con la región compartida. 4GB 3 GB 2 GB MAPA DE MEMORIA VIRTUAL ASIGNACION DEL MONTON En el lenguaje Windows, el termino montón se refiere a la región de la memoria utilizada para satisfacer las peticiones de asignación de memoria por parte de la aplicación. En Windows 3.1 el sistema mantiene tanto un montón local como un montón global. El montón local es una región de memoria en el espacio de direcciones de la aplicación y el montón global es una región de memoria que pertenece al sistema. GESTION DE MEMORIA PARA APLICACIONES DE WINDOWS 95 La API Win32 significa las tareas más comunes de asignación de memoria dinámica. Windows 95 ofrece funciones que proporcionan soporte a montones privados, ya que una aplicación puede reservar una parte de la memoria de su propio espacio de direcciones, direcciones virtuales que una vez reservada no se utiliza para satisfacer otras peticiones de asignación de memoria
dinámica. Los archivos mapeados en memoria permiten que aplicaciones diferentes compartan datos. MAPA DE MEMORIA DE WINDOWS 95 Windows 95 utiliza los 4GB del espacio virtual de direcciones que proporciona el 386. Dentro de dicho espacio de direcciones, los diferentes componentes y aplicaciones del sistema ocupan regiones con fronteras fijas. En el mapa de memoria del sistema, el MB más bajo del espacio virtual de direcciones se utiliza para la vm de MS-DOS ejecutándose actualmente. Además cada VM tiene un mapa de memoria valido dentro de la región entre 2GB y 3 GB este mapa permite al propio sistema direccionar la memoria VM independientemente de si esta activa. Pero cuando una VM MS-DOS se ejecuta, también se proyecta al MB inferior. Direcciones (32bitsen hexadecimal) Direcciones FFFFFFFF BFFFFFFF 07FFFFFF 033FFFFF 000FFFFF 00000000 GESTION DE MEMORIA FISICA Por debajo de las maquinas virtuales y del espacio virtual de direcciones manejados por Windows 95 están los confines de la memoria física. La gestión de la memoria física es el proceso de selección de las páginas del espacio virtual de direcciones de 4GB del sistema que se hacen corresponder con la memoria física en cada momento. MAQUINAS VIRTUALES Proporciona el contexto con el mapa de direcciones y los contenidos de los registros hardware asignados para la ejecución de una aplicación Siempre se ejecutan en modo protegido (anillo 3), en el que se crea un escudo controlable por el sistema operativo Necesidad de una maquina virtual
Un mapa de memoria que define la memoria virtual accesible al código actualmente ejecutado. Un contexto de ejecución, definido por el estado de los registros y niveles de privilegio. Un conjunto de recursos accesibles para la aplicación.
Características
La memoria virtual asignada a cada máquina virtual se encuentra separada de la memoria virtual asignada a otra VM, evitando la interferencia en las aplicaciones. Las capacidades de protección de memoria y de los puertos de E/S permiten que los dispositivos del sistema estén completamente protegidos Se puede ejecutar cualquier aplicación, convencida de que tiene toda la máquina para ella e ignorando el hecho de que realmente podría estar compartiendo el sistema con otras maquinas virtuales.
Inicialización El sistema operativo configura la maquina virtual y prepara el contexto global para todo el sistema. Si existen los archivos config.sys y autoexec.bat el usuario puede personalizar el contexto global. MULTITAREA Y PLANIFICACION Es una de las actividades más complicadas de Windows, y para ello utiliza la MULTITAREA como forma de compartir el procesador entre varios programas. Se refiere a la capacidad de un sistema operativo para compartir la CPU entre diferentes programas. En el momento en que se esté ejecutando Windows, hay multitarea ya que se estará ejecutando el administrador de programas, y otras diversas tareas que forman parte del sistema, Este proceso permite administrar las conexiones a red, el administrador de impresión, las sesiones de comunicación, etc. al mismo tiempo. El planificador se encarga de realizar el control principalmente con el tiempo de los sucesos, al cabo de los cuales decide si la CPU puede o no ser utilizada por otro proceso. Existen 2 formas de realizar las actividades multitarea:
Cooperativa
Depende de la ayuda de los programadores de aplicaciones para mantener el sistema ejecutándose sin sobresaltos Las tareas se realizan solo cuando la tarea en curso suelta la CPU
Con derecho preferente
Pone a disposición del sistema un control completo sobre que tarea se va a ejecutar, el planificador puede decidir en qué momento da prioridad a un proceso sobre otro. *CONCLUSIONES:
La gestión de memoria en Windows tiene lugar a dos niveles diferentes: un nivel que ve el programador de la aplicación y otra visión totalmente diferente para el sistema operativo. La memoria es uno de los principales recursos de la computadora, la cual debe de administrarse con mucho cuidado Aunque actualmente la mayoría de los sistemas de cómputo cuentan con una alta capacidad de memoria, de igual manera las aplicaciones actuales tienen también altos requerimientos de memoria, lo que sigue generando escasez de memoria en los sistemas multitarea y/o multiusuario La memoria virtual ha llegado a ser un componente esencial de los S.O, convirtiéndose en una herramienta útil de gestión de memoria. La parte del sistema operativo que administra la memoria se llama administrador de memoria y su labor consiste en llevar un registro de las partes de memoria que se estén utilizando y aquellas que no, con el fin de asignar espacio en memoria a los procesos cuando éstos la necesiten y liberándola cuando terminen, así como administrar el intercambio entre la memoria principal y el disco en los casos en los que la memoria principal no le pueda dar capacidad a todos los procesos que tienen necesidad de ella. *BIBLIOGRAFÍA: http://html.rincondelvago.com/sistema-operativo-windows.html http://www.monografias.com/trabajos26/arquitectura-windows/arquitectura-windows.shtml http://www.estudiagratis.com/cursos-gratis-online-Gestion-Memoria-Sistemas-operativos-I-curso1467.html