Optimización de Memoria y Virtualización en Sistemas Operativos

Gestión de Memoria

Los desplazamientos de datos desde el disco duro a la memoria principal se denominan swapping.

Una solución para optimizar el uso de memoria es que el programador divida un programa principal en módulos que se van solapando en memoria a medida que se van ejecutando, proceso conocido como overlaying.

Estructura de la Memoria Principal

La memoria se divide típicamente en tres partes:

  • Primera parte: Destinada al sistema operativo (ubicada en la parte más baja).
  • Zona para el programa de usuario: Espacio dedicado a las aplicaciones en ejecución.
  • Zona para los controladores de dispositivos y BIOS: Ubicada en la parte alta de la memoria.

Tipos de Asignación de Memoria

Asignación Fija

El método más simple para repartir la memoria es dividirla en partes de longitud fija, que pueden ser o no del mismo tamaño. Cada una de estas partes se asigna a un proceso.

Asignación Dinámica

En este tipo de asignación, las particiones no tienen por qué estar limitadas ni en tamaño ni en número. Se asigna a cada proceso el trozo de memoria que necesita hasta que ya no quepa ninguno. Esto puede producir fragmentación externa.

Paginación

En este método, la memoria está dividida en trozos iguales de tamaño fijo, denominados marcos de página. Los procesos también se encuentran divididos en trozos del mismo tamaño que los marcos de página, denominados páginas.

El Sistema Operativo (SO) utiliza una tabla de páginas para cada proceso y una tabla de marcos de páginas libres. Asigna a estos marcos de páginas libres, no necesariamente contiguos, suficientes para albergar todas las páginas del proceso.

La Tabla de Páginas

La tabla de páginas de un proceso contiene una entrada por cada página de la que conste dicho proceso.

Políticas de Asignación de Memoria

Dado que es imposible traer todas las páginas a memoria simultáneamente, el Sistema Operativo debe disponer de una política para decidir cuánta memoria se asignará a cada proceso. Es importante considerar que, mientras más memoria se le asigne a un proceso, menos procesos podrán compartir memoria y, por lo tanto, menos procesos estarán en ejecución simultáneamente.

Asignación Fija (por política)

El sistema operativo, en función del tipo de proceso y en el momento de su creación, le asigna un número fijo de páginas para su ejecución. Si se produce un fallo de página, otra de las páginas del proceso debe salir de memoria antes de poder cargar la nueva página.

Asignación Variable

En este caso, el sistema operativo asigna un determinado número de páginas al proceso. Evaluando el rendimiento del proceso, puede aumentar o reducir este número en cualquier momento en función de la cantidad de fallos de página que esté sufriendo. Si son muchos, se asignan más páginas; si son pocos, se quitan páginas.

Virtualización

La virtualización consiste en crear una máquina virtual que replique completamente a una máquina real.

Componentes de la Virtualización

Sistema Operativo Anfitrión (Host OS)

Es el sistema operativo del ordenador en el cual instalamos nuestro programa de virtualización y que asignará o prestará determinados recursos de hardware a la máquina virtual que creemos.

Sistema Operativo Invitado (Guest OS)

Es el sistema operativo que instalamos en el ordenador virtual que hemos creado, mediante nuestro programa de virtualización, y al cual hemos asignado determinados recursos para funcionar.

Tipos de Virtualización

Muchas instrucciones del núcleo de los sistemas operativos solo se ejecutan si están en el anillo 0. De modo que el software de virtualización tiene que recompilar continuamente el sistema operativo virtualizado para obligar a todas las instrucciones a ejecutarse fuera del anillo 0. Este proceso se conoce como paravirtualización y es muy poco práctico, ya que hace que las máquinas virtuales se ejecuten muy lentamente.

Virtualización Completa del Hardware o Nativa

Cada máquina virtual puede ejecutar cualquier sistema operativo soportado por el hardware real del sistema.

Virtualización de Emulación de Hardware o No Nativa

Las máquinas virtuales también pueden actuar como emuladores de hardware, permitiendo que aplicaciones y sistemas operativos concebidos para otras arquitecturas de procesador se puedan ejecutar sobre un hardware que, en teoría, no soportan.

Virtualización a Nivel de Sistema Operativo

Consiste en dividir una computadora en varios compartimentos independientes, de manera que en cada compartimento podamos instalar un servidor.

Ventajas de la Virtualización

  • Ahorro de costes.
  • Creación de entornos de prueba.
  • Establecimiento de entornos aislados de seguridad.
  • Mejora de la compatibilidad de programas.
  • Rápida incorporación de nuevos recursos para los servidores virtualizados.
  • Reducción de los costes de espacio y consumo energético.
  • Administración global centralizada y simplificada.
  • Gestionar nuestro CPD (Centro de Procesamiento de Datos) como un pool de recursos o agrupación de toda la capacidad de procesamiento, memoria, red y almacenamiento disponible.
  • Aislamiento de procesos y aplicaciones.
  • Reducción de los tiempos de parada necesarios.
  • Balanceo dinámico de máquinas virtuales.
  • Simplificación de la administración de sistemas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.