La Gestión de Memoria Ensayo
November 3, 2020 | Author: Anonymous | Category: N/A
Short Description
Download La Gestión de Memoria Ensayo...
Description
La gestión de memoria en un sistema operativo es el factor más fundamental para la memoria principal del ordenador, ya que esta debe mantener la información sobre cada proceso que se esté ejecutando por el usuario y cuanta memoria se encuentra utilizando para llevar a cabo este, además debe precisar las zonas de la memoria que se hallan ocupadas y cuales están libres o disponibles para cualquier proceso que el sistema operativo o el usuario desee iniciar. Debido a lo anterior se debe tener en cuenta la diferencia entre un sistema mono programado el cual solo comparte la memoria principal con él y con el programa que se esté ejecutando, por otra parte el sistema multiprogramado es aquel que comparte la memoria principal con varios programas simultáneamente. El sistema operativo contiene una parte esencial para la gestión de memoria principal de este el cual es denominado el administrador de la memoria, su actividad primordial es llevar el control de las zonas de memoria que están ocupadas y las que están disponibles para asignar de manera apropiada la cantidad de memoria necesaria para ejecutar un proceso y de igual forma retirarle los recursos consumidos por esta cuando el proceso esté en su fase de terminación. Uno de los aspectos notables de la gestión de memoria del sistema operativo es el recolector de basura el cual tiene la tarea de escanear la memoria ocupada por la KVM para analizar si está siendo usada por ella o no y de esta manera poder liberarla para iniciar un nuevo proceso más adelante, teniendo en cuenta lo anterior se genera un proceso importante en los métodos que se utilizan para la gestión de memoria los cuales son la recolección de basura que se centra en la reutilización de la memoria, es decir que el usuario no se tiene que preocupar por liberar memoria de un objeto si no que este lo hará de forma automática; por otra parte se encuentra la reserva de memoria que es la que ejecuta la memoria virtual disponible del sistema operativo para mantener funcionando una aplicación o programa determinado. La gestión de memoria cada día se convierte en un complejo campo del sistema operativo en donde el objetivo principal es optimizarla eficientemente para un mejor desempeño de los recursos que el sistema provee para las múltiples tareas que el usuario desee ejecutar en él. Las áreas que de destacan dentro de la gestión de memoria son el hardware que controla el almacenamiento en los dispositivos electrónicos tales como el disco duro, compact-disc, el memory usb, memorias RAM y memorias de cache. La segunda área es el sistema operativo el cual utilizan una memoria en el cual alojan los distintos procesos que se están ejecutando por el usuario y los eliminan de la memoria cuando están en su fase de terminación. La tercera área de la gestión de memoria es la aplicación informática la cual implica aportar la memoria que sea necesaria para los objetos y las estructuras de datos de los programas a partir de un conjunto de recursos limitados por el sistema operativo.
El gestor de memoria en un sistema operativo puede presentar varios problemas o factores que se encuentran relacionados con la liberación de memoria ocupada por los datos de un proceso en ejecución para la posterior reutilización de los recursos y la memoria que este haya estado ocupando en su ejecución; debido a lo anterior se han detectado varios problemas relacionados con dicha gestión de recursos de la memoria los cuales son: la libración prematura la cual se presenta cuando se libera la memoria de un objeto que este en proceso de ejecución de manera fortuita lo que ocasiona que este entre una fase de terminación forzada generando un error fatal en el programa que está en funcionamiento con dichos recursos ya asignados. Otra dificultad es fuera de memoria el cual se da cuando un programa comienza a demandar recursos de forma continua para ejecutar sus procesos de funcionamiento lo que ocasiona un agotamiento de memoria disponible del sistema, este factor es causa de una mal programación de la aplicación o inadaptabilidad de esta con el hardware donde se está ejecutando. El siguiente problema es la fragmentación externa la cual se da cuando la memoria tiene varios bloques de memoria libre o disponible intercalados con bloques de memoria en uso lo que generara que si se ejecuta un programa que demande bastantes recursos el gestor de memoria alerte al usuario que el sistema no tiene memoria suficiente para ejecutarlo cuando en realidad no es así. La localización pobre de referencias se genera en la forma de gestionar la memoria entre el hardware y el sistema operativo, cuanto más cercanos sean los accesos consecutivos de memoria más eficiente será el rendimiento de esta, por ellos el gestor de memoria debe procurar agrupar de manera controlada y cercana aquellos objetos de sean accesibles en tiempo de ejecución. Otra dificultad es el diseño flexible que se deriva en la adaptación del gestor de memoria, ya que este supone en bloques, tamaños o patrones el uso de la memoria para ejecutar cada objeto, pero si este tiene un error puede presentar un factor de escases de memoria lo que afectaría el rendimiento de esta y por consiguiente del sistema en general. El último problema en la gestión de memoria es el de interfaces de conexión en sistemas complejos el cual se da cuando los objetos que componen un programa pasan por distintos módulos y las interfaces comienzan a gestionar su propia memoria, si todo este flujo de recursos cae en un solo módulo de ejecución puede provocar problemas de inconsistencia en la estructura de la memoria. La gestión de memoria manual es una actividad bastante compleja para el programador ya que es el encargado de controlar directamente la distribución de la memoria reciclada en bloques disponibles para la asignación de recursos y bloques con procesos en ejecución; esta actividad tiene ventajas y desventajas frente a la gestión de memoria y la función del programador en el sistema, tales como que este siempre está enterado del estado de la memoria pero conlleva a dificultades como la gran cantidad de código que debe generar el programador para cumplir esta función y la sobretasa de memoria por objeto en cada bloque de la memoria por hacerlo de manera manual.
Dentro de los modelos básicos de administración de la gestión de memoria se destaca la multiprogramación ya que la monoprogramación rara vez se emplea en macro computadoras con múltiples usuarios, la multiprogramación tiene varias ventajas como facilitar la programación de una aplicación dividiéndola en dos o más procesos para que los grandes ordenadores proporcionen servicio interactivo a varias personas en forma simultánea. La multiprogramación tiene varias particiones como las particiones fijas que son las que la memoria principal puede contener más de un proceso, dividido en cierto número de partes posiblemente distintas y de tamaño constante; cuando llega un proceso este de localiza en la lista de espera de entrada hasta que haya una partición disponible que lo pueda contener y entre en estado de ejecución, de la misma forma toda partición que finalice el proceso que estaba llevando acabo se libera y que disponible para un nuevo proceso que el usuario genere. Por otra parte también existen las particiones variables las cuales se centran en solucionar el desperdicio de memoria en las particiones fijas cuando la memoria del sistema es escasa. Para prevenir este proceso se utilizan bancos o huecos de datos intercalados que can ejecutando cada proceso que entra en la lista de espera y lo va situando en un bloque de memoria determinado por el gestor, cada bloque que entre en fase de terminación se liberara en espera de asignación de nuevos procesos esta actividad puede generar que objetos muy grandes no se ejecuten de manera adecuada ya que los bloques liberados son muy pequeños para ejecutar este proceso, dicho lo anterior se emplea una fusión de huecos adyacentes que es unir dos huecos contiguos disponibles en uno solo para tener una mayor capacidad de recursos, otra forma es la compactación de bloques o huecos que se centra en desplazar estas zonas ocupadas por objetos en ejecución a un extremo para reorganizar todos los espacios de memoria disponibles y poder ejecutar el nuevo programa o tarea a realizar.
View more...
Comments