Gestión de Memoria en Sistemas Operativos

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

Escrito el en español con un tamaño de 6,46 KB

Visión de la Memoria

La visión de memoria se refiere a cómo el sistema operativo ve y maneja la memoria disponible para proporcionar un entorno estable y eficiente para la ejecución de programas y la gestión de datos.

  • En el ciclo de instrucción hay más de una referencia a memoria.
  • Estas referencias son a la memoria principal.
  • El sistema operativo no administra la memoria caché.

Protección de Memoria

La protección de memoria es un mecanismo que utiliza el sistema operativo para evitar que un proceso acceda a la memoria de otro proceso.

Registro Base y Límite

Utiliza un registro base (dirección inicial) y un registro límite (tamaño del espacio) para definir el área de memoria que un proceso puede utilizar.

  • Cada dirección de memoria a la que un proceso intenta acceder se compara con los registros base y límite para asegurar que no exceda su área asignada.

Organización del Almacenamiento en Tiempo de Ejecución

La organización del almacenamiento en tiempo de ejecución se refiere a cómo el sistema operativo y el compilador trabajan en conjunto para gestionar la memoria que un programa necesita mientras se está ejecutando.

Esquema de Uso de la CPU

El compilador genera un esquema que determina cómo el programa utilizará la CPU y la memoria durante su ejecución.

El Stack (Pila)

Mantiene el registro de activación o frame, que es una estructura de datos que almacena información sobre las funciones o procedimientos que se ejecutan.

Espacio Contiguo de Memoria

El espacio contiguo de memoria se refiere a una forma de asignar espacio en la memoria RAM para los procesos que se están ejecutando.

Allocation Memory

El sistema operativo debe proporcionar espacio para alojar la ejecución del proceso. En un entorno de multiprocesamiento, se necesita espacio para más de un proceso.

Particiones Fijas

Las particiones fijas se utilizaban en sistemas de procesamiento por lotes, donde se atendían diferentes colas de entrada según el tamaño de la partición.

  • Operador Determina Particiones: El tamaño de las particiones es determinado por el operador del sistema y para cambiarlo, es necesario detener el procesamiento.
  • Planificación de Carga: La carga de la máquina se planifica en función de los recursos que se usarán, lo que puede llevar a una utilización ineficiente de la memoria.
  • Fragmentación Interna: Un inconveniente de las particiones fijas es la fragmentación interna, que son pequeños espacios de memoria no utilizados asignados a procesos que no los necesitan.

Particiones Variables

Las particiones variables permiten que el sistema operativo administre el tamaño y la cantidad de particiones de manera dinámica, ajustándose a los procesos en ejecución.

  • Requerimientos de Memoria: Los procesos tienen requerimientos de memoria que varían, tomando y dejando memoria durante su ejecución, lo que plantea la pregunta: ¿Cuánto espacio asignar al inicio?
  • Estrategias de Asignación: Para decidir el espacio a asignar cuando llega un proceso de tamaño N, se pueden utilizar estrategias como Mejor Ajuste, Peor Ajuste o Primer Ajuste.
  • Fragmentación: Las particiones variables pueden llevar a la fragmentación externa, donde pequeños espacios de memoria disponibles son demasiado pequeños para ser asignados a nuevos procesos.

Swapping

Es un mecanismo que permite obtener un mayor nivel de multiprogramación al llevar procesos que no están ejecutando a disco temporalmente.

Swap-out y Swap-in

Al proceso de mover un proceso desde la memoria principal a disco se le llama swap-out, y al inverso, swap-in.

Tiempo de Transferencia

El tiempo más significativo en el swapping es el tiempo de transferencia, que es el tiempo que toma mover los procesos entre la memoria y el disco.

Uso de Swapping

Esta técnica se utiliza para manejar la memoria de manera más eficiente, permitiendo que más procesos se ejecuten simultáneamente al liberar espacio en la memoria RAM.

Memoria Virtual

La memoria virtual es una técnica que permite ejecutar programas que requieren más memoria de la disponible físicamente, manteniendo solo en memoria física lo que el proceso está utilizando y el resto en disco.

Beneficios

  • Permite que el espacio de direcciones de los procesos sea más grande que la memoria física.
  • Facilita la compartición de espacios de memoria entre procesos.

Implementación

Se implementa a través de técnicas como la paginación y la segmentación, donde las direcciones virtuales o lógicas generadas por la CPU se mapean a direcciones reales en la memoria.

Paginación Pura

Es una técnica de gestión de memoria en bloques de tamaño fijo llamados páginas.

  • Bloques de Tamaño Fijo: La memoria se divide en páginas, que son bloques de tamaño fijo, generalmente de 2KB a 4KB.
  • Direcciones Virtuales: Las direcciones generadas por la CPU se conocen como direcciones virtuales o lógicas y se dividen en páginas.

Paginación

Es una técnica de administración de memoria en sistemas operativos que permite manejar la memoria de manera eficiente.

  • Divide la memoria en marcos de páginas (frames) del mismo tamaño que las páginas.
  • Usa una Unidad de Administración de Memoria (MMU) para mapear direcciones virtuales en reales.
  • Incluye estrategias como paginación por demanda, donde no todas las páginas están en memoria simultáneamente.

¿Qué se Logra con la Memoria Virtual?

  • Separación de Memoria: La memoria virtual permite separar la memoria del usuario de la memoria física.
  • Ejecución Parcial en Memoria: Solo una parte del programa necesita estar en memoria para su ejecución.
  • Espacio de Direcciones Ampliado: El espacio de direcciones de los procesos puede ser más grande que la memoria física disponible.
  • Compartición de Memoria: Permite que los espacios de memoria se compartan entre diferentes procesos.

Entradas relacionadas: