Gestion De Memoria
fabicaro2131 de Marzo de 2013
5.896 Palabras (24 Páginas)525 Visitas
GESTIÓN DE MEMORIA
La memoria es uno de los recursos más valiosos q posee una computadora.
La gestión de memoria, es una tarea cuya responsabilidad recaen en el Sistema Operativo; permite que los procesos funcionen en diversas zonas, llevar el control de las zonas en uso y de aquellas que no están, asignar memoria a los procesos cuando la necesiten y retirársela cuando terminen, administrar el intercambio entre memoria principal y memoria secundaria cuando la memoria central sea insuficiente.
Existen varias formas de gestionar la memoria por parte del sistema operativo, a lo largo del tiempo han aparecido nuevas formas y aparecerán nuevas en el futuro:
• En los primeros sistemas operativos la memoria se dividía en dos partes, una para el sistema operativo y otra para los programas del usuario, esto requiere utilizar un registro de protección para evitar que se pudiera acceder a la zona de memoria del sistema operativo. Este sistema era el que se utilizaba en los sistemas monoprogramacion (donde solo se ejecuta un proceso).
• El siguiente paso se dio cuando el sistema operativo fue capaz de gestionar la existencia de varios programas y a cada uno le asignaba un espacio llamado partición. Era necesario proteger las asignaciones, por eso hacían falta dos registros: el registro base y el registró limite. El registró base se carga con la dirección física donde empieza el programa, y el registro limite se encarga de la longitud del programa. Cuando el proceso necesita cargar o almacenar algún dato, la memoria comprueba si esta dentro del rango de los registros, y si el valor esta fuera se genera un fallo.
MEMORIA VIRTUAL
La memoria virtual es una técnica para proporcionar la simulación de un espacio de memoria mucho mayor que la memoria física de una computadora; combina la RAM del equipo con espacio temporal en el disco duro. Cuando queda poca RAM, la memoria virtual mueve datos de la RAM a un espacio llamado archivo de paginación. Al mover datos al archivo de paginación y desde él, se libera RAM para completar la tarea. Cuanto mayor sea la RAM del equipo, más rápido tenderán a ejecutarse los programas. Si el equipo se ralentiza porque falta RAM, puede considerar la posibilidad de aumentar la memoria virtual para compensar. Sin embargo, el equipo puede leer los datos de la RAM mucho más rápido que de un disco duro, por lo que la mejor solución es agregar RAM.
DISTINTAS TÉCNICAS DE PARTICIONADO DE MEMORIA
• Intercambio
Consiste en alternar, durante la ejecución de un proceso, su permanencia en memoria principal y memoria secundaria. Para esto, el procesador se basa en una cola denominada Intermedia que almacena en disco los procesos que se ha sacado temporalmente de la memoria.
• Políticas de ubicación
Tiene que ver con dónde va a residir una parte de un proceso de memoria principal. En un sistema de segmentación las posibles alternativas son: primer ajuste, siguiente ajuste, mejor ajuste, peor ajuste. Pero para un sistema que usa paginación o paginación combinada con segmentación, la ubicación carece de importancia puesto que el hardware de traducción de direcciones y el hardware de acceso de memoria principal puede desarrollar sus funciones para cualquier combinación de marco de página con idéntica eficiencia.
• Política de reemplazo
Trata de la pagina que hay que seleccionar en memoria principal para reemplazar cuando se debe cargar una nueva. Se debe tener en cuenta los siguientes puntos:
o El numero de marco de páginas a asignar a cada proceso (tamaño del conjunto residente).
o Si el conjunto de paginas candidatas para el reemplazo debe limitarse a las del proceso que provoco el fallo de pagina o abarcara todo los marcos de paginas situados en memoria principal.
o De entre el conjunto de paginas candidatas, cual pagina elegir.
Todas las políticas de reemplazo tiene como objetivo que la pagina a reemplazar sea la que tenga una menor posibilidad de ser referenciada en un futuro cercano. Debido al principio de cercanía, hay una alta correlación entre la historia de referencia reciente y las pautas de futuras referencias. Así pues, la mayoría de las políticas intentan predecir el comportamiento futuro en función del comportamiento pasado. Pero entre más elaborada y sofisticada sea la política de reemplazo, mayor es la sobre carga de hardware y software para implementarla.
• Superposición (Overlays)
Consiste en conservar en memoria, solamente aquellas instrucciones y datos, que se necesitan de una manera permanente, el resto de las instrucciones, que solo son necesarias en determinados momentos de la ejecución, se pueden cargar en un área común cuando el proceso las requiera.
Para que esta técnica se pueda utilizar, será preciso dividir la zona de memoria asignada en tres partes:
o Una zona para las instrucciones que se necesitan de una manera permanente.
o Una zona pequeña donde residirán las instrucciones necesarias para gestionar las superposiciones.
o Una zona común donde se cargaran las instrucciones que no son necesarias de forma permanente.
Por ejemplo, supongamos que tenemos un programa, que tiene un módulo principal que controla la total ejecución de un programa, que realiza dos funciones consecutivas, necesitando la ejecución de dos módulos independientes, el programa se ejecutará en dos pasos sucesivos.
CONCEPTO DE HIPERPAGINACIÓN, TANTO EN TÉRMINO DE LAS RAZONES POR LAS QUE OCURRE COMO DE LAS TÉCNICAS USADAS PARA CONOCERLO Y GESTIONARLO
Se denomina hiperpaginación a la situación en la que se utilizan una creciente cantidad de recursos para hacer una cantidad de trabajo cada vez menor. Usualmente se refiere a cuando se cargan y descargan sucesiva y constantemente partes de la imagen de un proceso desde y hacia la memoria principal y la memoria virtual o espacio de intercambio. En un estado normal, esto permite que un proceso bloqueado y no listo para correr deje lugar en memoria principal a otro proceso listo. Cuando se produce hiperpaginación, los ciclos del procesador se utilizan en llevar y traer páginas (o segmentos, según sea el caso) y el rendimiento general del sistema se degrada notablemente.
Se produce hiperpaginacion cuando un sistema pasa más tiempo paginando que ejecutando.
Un proceso que tiene asignados menos marcos que los que está usando activamente fallara continuamente de página ya que cada fallo reemplazara una página también usada. Si el reemplazo es global (un proceso puede reemplazar paginas d eotros) puede contagiar el problema
Para evitar la hiperpaginacion se intenta asignar a cada proceso un número de marcos suficiente. Dos modelos principales
Modelo del working set
Modelo de la frecuencia del fallo de pagina
La hiperpaginacion ocurre si un proceso no tiene suficientes páginas, la tasa de fallos de página es muy alta. Esto lleva a:
• Uso bajo de CPU
• El SO piensa que necesita aumentar el grado de multiprogramación
• Otro proceso se añade al sistema
REQUISITOS DE GESTIÓN DE MEMORIA
Al realizar un estudio de los diversos mecanismos y políticas relacionadas con la gestión de memoria, conviene tener presente los requisitos que se deben satisfacer, en el diseño de un módulo de gestión de memoria:
• Reubicación.
• Protección.
• Compartición.
• Organización lógica.
• Organización física.
Respecto a la reubicación, se podría decir que en un sistema multiprogramado, la memoria disponible se encuentra compartida por varios procesos y además en ciertos momentos, será preciso poder cargar y descargar los procesos activos, que se encuentran en la memoria principal, para maximizar el uso del procesador, manteniendo una gran reserva de procesos listos para ejecutarse.
Cuando un proceso haya sido descargado al almacenamiento secundario, será preciso conocer, si cuando ese proceso vuelva a ser cargado, debe situarse en la misma región de memoria principal, en la que estaba situado anteriormente o bien, puede situarse en posiciones diferentes a las que tenía en el instante en que fue descargado.
Esta situación plantea algunos asuntos técnicos relativos al direccionamiento, tal y como se expresa, en la figura que representa la imagen de un proceso. Sin duda alguna, el sistema operativo tiene que conocer, la ubicación de la información de control del proceso y de la pila de ejecución, así como el punto de partida para comenzar la ejecución del proceso.
Puesto que el sistema operativo, gestiona la memoria y es el responsable de traer el proceso a la memoria principal, todas las direcciones necesarias para la ejecución del proceso deben ser fáciles de conseguir, por lo tanto, el hardware del procesador y el software del sistema operativo, deben ser capaces de traducir las referencias a la memoria lógica encontradas en el código del programa, a las direcciones físicas reales, que reflejen la posición actual del programa en memoria principal.
Durante ejecuciones diferentes de un mismo programa, pueden ser asignadas direcciones de carga diferentes, por tanto, es preciso distinguir, una dirección lógica o virtual, que es la que percibe el usuario, de una dirección física o real, que es el lugar de la memoria, donde el programa y sus datos son almacenados, durante una determinada ejecución.
Más específicamente, podríamos decir,
...