Memoria
Memoria
Gestión de la memoria
Se denomina gestión de memoria al acto de gestionar la memoria de un dispositivo informático. De forma simplificada se trata de proveer mecanismos para asignar secciones de memoria a los programas que las solicitan, y a la vez, liberar las secciones de memoria que ya no se utilizan para que estén disponibles para otros programas. El proceso de asignación de memoria a los programas que las solicitan es llamado por algunos "alocar" (del inglés "allocate" que significa asignar). La gestión de la memoria principal de un ordenador es una tarea de suma importancia para el funcionamiento del mismo.
Los sistemas de memoria virtual separan las direcciones de memoria utilizadas por un proceso de las direcciones físicas reales, permitiendo la separación de procesos e incrementando la cantidad efectiva de memoria de acceso aleatorio utilizando la paginación. La calidad de la gestión de la memoria es crucial para las prestaciones del sistema.
El recolector de basura es la asignación y liberación automática de los recursos de memoria para un programa.
Características
Los sistemas de gestión de memoria de sistemas operativos multitarea normalmente tratan con las siguientes tareas.
Reasignación
En los sistemas con memoria virtual, los
programas en la memoria debe ser capaz de residir en diferentes partes de la
memoria en diferentes momentos. Esto se debe a que cuando un programa que
reside momentaneamente en un lugar de la memoria, puede llegar a intercambiarse
de posicion y funcionar del mismo modo que en la locacion anterior.
La unidad de gestión de memoria virtual también debe hacer frente a la
concurrencia, es decir, debe ser capaz de trasladar los programas en la memoria
y manejar referencias de la memoria y las direcciones en el código del programa
para que siempre apunten a la ubicación correcta en la memoria.
Protección
Protección de memoria.
Los procesos no deberían poder referenciar la memoria de otros procesos sin permiso, para evitarlo existe la protección de memoria, que evita que código malicioso o erróneo de un programa interfiera con la operación de otros programas en ejecución.
Memoria compartida
Aunque la memoria utilizada por diferentes procesos suele estar protegida, algunos procesos puede que sí tengan que compartir información y, para ello, han de acceder la misma sección de memoria. La memoria compartida es una de las técnicas más rápidas para posibilitar la comunicación entre procesos.
Organización lógica
Los programas a menudo están organizados en modulos, algunos de los cuales pueden ser compartidos por diferentes programas, algunos son de sólo-lectura y otros contienen datos que pueden se pueden modificar. La gestión de memoria es responsable de manejar esta organización lógica, que se contrapone al espacio de direcciones físicas lineales. Una forma de lograrlo es mediante la segmentación de memoria.
Organización física
La memoria suele dividirse en un almacenamiento primario de alta velocidad y uno secundario de menor velocidad. La gestión de memoria del sistema operativo se ocupa de trasladar la información entre estos dos niveles de memoria.
