Sistemas Operativos

Administración de memoria

se refiere a los distintos métodos y operaciones que se encargan de obtener la máxima utilidad de la memoria, organizando los procesos y programas que se ejecutan de manera tal que se aproveche de la mejor manera posible el espacio disponible


Administración Básica de memoria.


Los sistemas de administración de memoria se pueden dividir en dos clases, los que trasladan procesos entre la memoria y el disco durante la ejecución (intercambio y paginación) y los que no lo hacen.

Monoprogramacion sin intercambio ni paginacion.

El esquema de administración de memoria más sencillo posible es ejecutar sólo un programa a la vez, compartiendo la memoria entre ese programa y el sistema operativo. En la Figura 5 se muestran tres variaciones sobre este tema.



Multiprogramacion con particiones fijas.

Aunque  a  veces  se  usa  la  mono-programación en  computadoras  pequeñas  con  sistemas  operativos sencillos, hay muchos casos en que es deseable permitir la ejecución de múltiples procesos a la vez. En los sistemas de tiempo compartido, tener varios procesos en la memoria a la vez implica que cuando un proceso   está   bloqueado   esperando   que   termine   una   E/S,   otro   puede   usar   el   CPU.   Así,   la multiprogramación aumenta el  aprovechamiento del  CPU. Sin  embargo, incluso en  computadoras personales hay ocasiones en las que resulta útil poder ejecutar dos o más programas a la vez.

La forma más fácil de lograr la multiprogramación consiste simplemente en dividir la memoria en n particiones, posiblemente desiguales. Esta división puede, por ejemplo, efectuarse manualmente cuando se inicia el sistema.

Cuando llega un trabajo, se le puede colocar en la cola de entrada de la partición pequeña que puede contenerlo. Puesto que las  particiones están  fijas en  este esquema, cualquier espacio de  una partición que un trabajo no utilice se desperdiciará. En la Figura 6 vemos el aspecto que tiene este sistema de particiones fijas y colas de entrada individuales.



Memoria Virtual.

Hace muchos años las personas enfrentaron por primera vez programas que eran demasiado grandes para caber en la memoria disponible. La solución que normalmente se adoptaba era dividir el programa en fragmentos, llamados superposiciones. La superposición O era la primera que se ejecutaba. Al terminar, esta superposición llamaba a otra. Algunos sistemas de superposición eran muy complejos, pues permitían varias superposiciones en la memoria a la vez. Las superposiciones se mantenían en disco y el sistema operativo las intercambiaba con la memoria dinámicamente, según fuera necesario


Aunque el trabajo real de intercambiar las superposiciones corría por cuenta del sistema, la tarea de  dividir  el  programa  en  fragmentos tenía  que  ser  efectuada  por  el  programador. La  división  de programas grandes en fragmentos modulares pequeños consumía tiempo y era tediosa. No pasó mucho tiempo antes de que a alguien se le ocurriera una forma de dejar todo el trabajo a la computadora.

El método que se inventó (Fotheringham, 1961) se conoce ahora como memoria virtual. La idea en que se basa la memoria virtual es que el tamaño combinado del programa, los datos y la pila puede exceder la cantidad de memoria física disponible para él. El sistema operativo mantiene en la memoria principal las partes del programa que actualmente se están usando, y el resto en el disco. Por ejemplo, un programa de 16M puede ejecutarse en una máquina de 4M si se escogen con cuidado los 4M que se mantendrán en la memoria en cada instante, intercambiando segmentos del programa entre el disco y la memoria según se necesite.

La memoria virtual también puede funcionar en un sistema de multiprogramación, manteniendo segmentos de muchos programas en la memoria a la vez. Mientras un programa está esperando que se traiga a la memoria una de sus partes, está esperando E/S y no puede ejecutarse, así que puede otorgarse el CPU a otro proceso, lo mismo que en cualquier otro sistema de multiprogramación


Enlaces

  1. https://www.youtube.com/watch?v=TVgSXMY5Z_8
  2. https://www.youtube.com/watch?v=Q-spkAY96YA
  3. https://www.youtube.com/watch?v=b2YP9uYGew4


Comentarios

Entradas más populares de este blog

Bienvenidos