Conceptos Fundamentales de Gestión de Memoria y Almacenamiento

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 4,16 KB

Reasignación de Instrucciones

La reasignación de instrucciones depende del momento en que se determina la dirección física:

  • Tiempo de compilación: Si se conoce en el momento de la compilación dónde residirá el proceso en memoria, se puede generar código absoluto.
  • Tiempo de carga: Si no se conoce en tiempo de compilación dónde residirá el proceso en memoria, el compilador generará código reubicable.
  • Tiempo de ejecución: Si el proceso puede desplazarse durante su ejecución desde un segmento de memoria a otro, es necesario retardar la reasignación hasta el instante de ejecución.

Carga Dinámica

Tradicionalmente, todo programa y sus datos deben estar en memoria física para que se ejecuten. Para obtener una mejor utilización del espacio, se utiliza el mecanismo de carga dinámica. Una rutina no se carga en memoria hasta que se la invoca. Las rutinas se mantienen en disco en formato de carga reubicable. El programa principal se carga y se ejecuta. Cuando una rutina necesita llamar a otra, la rutina que invoca comprueba si la otra está cargada. Si no lo está, se invoca al cargador reubicable para que la cargue y actualice las tablas de direcciones.

Bibliotecas Compartidas

Con el mecanismo de enlazado dinámico, los procesos que utilizan una biblioteca de lenguaje solo necesitan una copia del código de la biblioteca en memoria. Para evitar que los programas ejecuten versiones incompatibles de las bibliotecas, se incluye información de la versión. Puede haber más de una versión de una biblioteca cargada en memoria, y cada programa utilizará la copia adecuada. Los programas que se compilen con la nueva versión se verán afectados por los cambios incompatibles incorporados, mientras que otros programas enlazados antes de que se instalara la nueva biblioteca continuarán utilizando la antigua.

Conversión (Mapping) de Memoria y Protección

El registro de reubicación contiene el valor de la dirección física más pequeña, y el registro límite contiene el rango de las direcciones lógicas válidas. Cada dirección lógica debe ser inferior al valor del registro límite; la MMU (Unidad de Gestión de Memoria) convertirá la dirección lógica dinámicamente sumándole el valor del registro de reubicación. Esta dirección física es la que se envía a la memoria. Cuando el planificador de la CPU selecciona un proceso para su ejecución, el despachador carga en los registros de reubicación y límite los valores correctos para ese proceso. Este mecanismo protege al sistema operativo y a los programas y datos de otros usuarios de posibles modificaciones durante la ejecución.

Estrategias de Asignación de Memoria (Agujeros Libres)

Existen diferentes estrategias para seleccionar un agujero libre en la memoria donde cargar un proceso:

  • Primer ajuste (First Fit): Se asigna el primer agujero libre que sea lo suficientemente grande para el proceso.
  • Mejor ajuste (Best Fit): Se asigna el agujero libre más pequeño que tenga el tamaño suficiente. Requiere explorar la lista completa de agujeros libres, a menos que esté ordenada por tamaño.
  • Peor ajuste (Worst Fit): Se asigna el agujero libre de mayor tamaño. También requiere explorar la lista completa si no está ordenada por tamaño.

SAN (Storage Area Network)

Una SAN (Storage Area Network), o Red de Área de Almacenamiento, es una red privada que utiliza protocolos de almacenamiento (en lugar de protocolos de red tradicionales) para conectar servidores con unidades de almacenamiento. Su principal ventaja es la flexibilidad, permitiendo conectar múltiples hosts y matrices de almacenamiento a una misma SAN. Los recursos de almacenamiento pueden asignarse de forma dinámica a los hosts. Un conmutador de la SAN gestiona y controla el acceso de los hosts a los dispositivos de almacenamiento.

Entradas relacionadas: