República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Superior
UPT José Antonio Anzoátegui
Extensión Barcelona
GESTION DE
MEMORIA
PRINCIPAL
Prof: Estudiante:
Dulce Paraguan Pilar Choy
Barcelona, mayo de 2021
La organización y gestión de la memoria.
Para que un proceso pueda ejecutarse debe estar ubicado en la memoria
principal del ordenador. Una parte del sistema operativo se va a encargar de
gestionar la memoria principal, de forma que los procesos puedan residir en la
memoria sin conflictos. La gestión de la memoria implica varias tareas, una de
ellas es llevar un registro de qué zonas están libres (es decir, no están siendo
utilizadas por ningún proceso), y qué zonas están ocupadas por qué procesos.
Otra tarea importante surge en sistemas en los que no todos los procesos, o no
todo el código y datos de un proceso, se ubican en la memoria principal. En
estos sistemas, a menudo se debe pasar parte, o la totalidad del código y datos
de un proceso, de memoria a disco, o viceversa; siendo el sistema operativo
responsable de esta tarea. De esta forma se libera al usuario de realizar estas
transferencias de información, de las cuales no es consciente.
Otros dos temas importantes en la gestión de la memoria son el de la carga de
los programas de disco a memoria y el de la protección. Desde el momento en
que varios procesos deben compartir la memoria del ordenador surge el
problema de la protección. En general, se pretende que un proceso no pueda
modificar las direcciones de memoria en las que no reside. Esto es así ya que
en las direcciones de memoria donde no está ubicado el proceso pueden
residir otros procesos, o código o estructuras de datos del S.O. Si un proceso
puede modificar indiscriminadamente la memoria, podría, por ejemplo, cambiar
el valor de una dirección de memoria donde residiera una variable de otro
proceso, con la consecuente ejecución incorrecta del proceso propietario de la
variable. Algunos sistemas ni siquiera permiten que un proceso pueda leer las
direcciones de memoria en las que no reside, con esto se consigue privacidad
sobre el código y datos de los procesos. Conforme avance este tema y el
siguiente se profundizará en todos estos aspectos.
Existen varias formas de gestionar la memoria. Por lo común, la forma de
gestión dependerá de la máquina virtual que se quiera proporcionar y del
hardware subyacente. Con independencia de la forma de gestión es necesario
decidir qué estrategias se deben utilizar para obtener un rendimiento óptimo.
Las estrategias de administración de la memoria determinan el comportamiento
de una organización de memoria determinada cuando se siguen diferentes
políticas: ¿Cuándo se coge un nuevo programa para colocarlo en la memoria?
¿Se coge el programa cuando el sistema lo necesita, o se intenta anticiparse a
las peticiones del sistema? ¿En qué lugar de la memoria principal se coloca el
siguiente programa por ejecutar? ¿Se colocan los programas lo más cerca
posible unos de otros en los espacios disponibles de la memoria principal para
reducir al mínimo el desperdicio de espacio, o se colocan lo más rápido posible
para reducir el tiempo empleado en tomar la decisión?
Los sistemas actuales son en su mayor parte sistemas con almacenamiento
virtual, muchas de la formas de gestión estudiadas en este tema tienen
principalmente valor histórico, pero sientan las bases de los sistemas actuales.
Características
Son pocas las ocasiones en las que un proceso debe modificar de manera
dinámica la cantidad de memoria que maneja; piensa por ejemplo en un
programa que emplee listas o arreglos dinámicos, o alguno que se emplee para
codificar o decodificar multimedia o para compresión de datos. La memoria es
uno de los más valiosos recursos del hardware y también ha de tenerse en
cuenta que un proceso no debería ocupar toda la RAM.
Funciones
Atender las solicitudes de memoria de los procesos (asignaciones y
liberaciones)
Protección de la memoria
La protección de la memoria es necesaria, no solo para garantizar que pueda
ejecutarse cualquier proceso, también para establecer límites de uso. Sucede
que si se ejecutan varios programas de manera simultánea, todos deben estar
escritos en la RAM, ello incluye el código y los datos del Sistema Operativo;
hay que evitar entonces que un proceso dañe el código de otro o modifique la
ubicación del propio.
Mapa de la memoria
Este mapa se establece al momento de diseñar el Sistema Operativo y se
supone que ningún proceso pueda modificarle directamente.
La gestión de la memoria ha de garantizar también que pueda localizarse, de
manera unívoca, el código de cualquier proceso para ejecutarle o eliminarlo.
Jerarquía de la memoria
Los programas y datos necesitan estar en la memoria principal para ser
ejecutados, o para poder ser referenciados. Los programas o datos que no se
necesitan de inmediato pueden guardarse en la memoria secundaria hasta que
se necesiten, y en ese momento se transfieren a la memoria principal para ser
ejecutados o referenciados. Los soportes de memoria secundaria, como cintas
o discos, son en general menos caros que la memoria principal, y su capacidad
es mucho mayor. Normalmente, es mucho más rápido el acceso a la memoria
principal que a la secundaria.
En los sistemas con varios niveles de memoria hay muchas transferencias
constantes de programas y datos entre los distintos niveles. Estas
transferencias consumen recursos del sistema, como tiempo de la CPU, que de
otro modo podrían utilizarse provechosamente.
ADMINISTRACION
Es una tarea realizada por el sistema operativo que consiste en
gestionar la jerarquía de memoria, en cargar y descargar procesos en memoria
principal para que sean ejecutados. Para ello el sistema operativo gestiona lo
que se conoce como MMU o Unidad de Administración de Memoria, el cual es
un dispositivo hardware que transforma las direcciones lógicas en físicas.
Su trabajo es seguir la pista de qué partes de la memoria están en uso
y cuales no lo están, con el fin de poder asignar memoria a los procesos
cuando la necesiten, y recuperar esa memoria cuando dejen de necesitarla, así
como gestionar el intercambio entre memoria principal y el disco cuando la
memoria principal resulte demasiado pequeña para contener a todos los
procesos
En un sistema monoprogramado, la memoria principal se divide en dos partes:
una parte para el sistema operativo (monitor residente, núcleo) y otra parte
para el programa que se ejecuta en ese instante. En un sistema
multiprogramado, la parte de "usuario" de la memoria debe subdividirse aún
más para hacer sitio a varios procesos. La tarea de subdivisión la lleva a cabo
dinámicamente el sistema operativo y se conoce como gestión de memoria.
En un sistema multiprogramado resulta vital una gestión efectiva de la
memoria. Si sólo hay unos pocos procesos en memoria, entonces la mayor
parte del tiempo estarán esperando a la E/S y el procesador estará
desocupado. Por ello, hace falta repartir eficientemente la memoria para meter
tantos procesos como sea posible.