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.