Conceptos Esenciales de Sistemas Operativos: Planificación de Procesos y Gestión de Memoria
Clasificado en Informática
Escrito el en español con un tamaño de 6,17 KB
Tipos de Algoritmos de Planificación de Procesos
La planificación de procesos es fundamental para la eficiencia de un sistema operativo, determinando el orden y la forma en que los procesos acceden a la CPU. A continuación, se describen los algoritmos más comunes:
Algoritmo por Torneo o Rueda (Round Robin)
Este algoritmo crea una lista con los procesos pendientes y divide el tiempo de la CPU en intervalos fijos, conocidos como quantum. Asigna estos intervalos a los procesos de forma secuencial, según el orden en que se encuentran en la lista. Si un proceso no termina su ejecución en un quantum, es preempcionado y se coloca al final de la cola para esperar su siguiente turno.
Primero en Llegar, Primero en Salir (FIFO - First In, First Out)
Como su nombre indica, el primer proceso que llega a la cola de listos es el primero en ser ejecutado y completado. Es un algoritmo simple y no preempcionable.
Planificación por Tiempo Más Corto (SJF - Shortest Job First)
Este algoritmo selecciona para su ejecución el proceso que se estima que tendrá el tiempo de ráfaga de CPU más corto. Puede ser preempcionable o no preempcionable. Su objetivo es minimizar el tiempo de espera promedio.
Planificación por Tiempo Restante Más Corto (SRTF - Shortest Remaining Time First)
Es una versión preempcionable del SJF. Si un nuevo proceso llega con un tiempo de ejecución restante menor que el del proceso que se está ejecutando actualmente, el nuevo proceso preempciona al actual.
Planificación por Prioridades
En este esquema, a cada proceso se le asigna una prioridad, y la CPU se asigna al proceso con la prioridad más alta. Los procesos de mayor prioridad (por ejemplo, un proceso de administrador) tienen preferencia sobre otros usuarios o tareas. Un proceso puede ver su prioridad reducida si consume un número "X" de quantum consecutivos sin ceder la CPU. Dentro de cada nivel de prioridad, a menudo se aplica un algoritmo como Round Robin para gestionar la lista de espera.
Lista de Espera con Intervalos Múltiples
Este enfoque utiliza intervalos de tiempo (quantum) diferentes para beneficiar a los procesos que requieren más tiempo de procesador. Cada proceso comienza con un intervalo de tiempo mínimo (por ejemplo, 1 quantum). Si un proceso no se bloquea y continúa ejecutándose, su siguiente quantum puede incrementarse (por ejemplo, a 2, luego a 3, etc.). Sin embargo, si el proceso se bloquea (por ejemplo, esperando E/S), al volver a la cola de listos, su quantum se restablece al valor mínimo inicial.
Lista de Espera con Intervalos Múltiples y Prioridades
Combina las características del algoritmo anterior con la asignación de prioridades, permitiendo una gestión más granular y eficiente de los procesos.
Gestión de Memoria en Sistemas Operativos
La gestión de memoria es crucial para el rendimiento del sistema, permitiendo que múltiples procesos compartan la memoria de forma eficiente y segura.
Memoria Virtual y Paginación
Los procesos a menudo requieren un espacio de memoria mayor al que está disponible físicamente en el ordenador. La técnica de memoria virtual permite a los sistemas operativos ejecutar programas sin necesidad de cargarlos completamente en la memoria RAM. Para ello, la memoria virtual utiliza un dispositivo de almacenamiento secundario, generalmente el disco duro, como soporte.
Para configurar la memoria virtual en sistemas Windows (ej. XP, 7), la ruta común es: Inicio > Panel de Control > Sistema > Configuración Avanzada del Sistema > Rendimiento (Configuración) > Opciones Avanzadas > Memoria virtual (Cambiar).
La paginación de memoria es una técnica fundamental de la memoria virtual. Consiste en dividir el espacio de direcciones virtual en bloques de tamaño fijo, denominados páginas, y la memoria física en bloques del mismo tamaño, llamados marcos de página (o frames). El gestor de memoria se encarga de cargar en la memoria real solo las páginas de memoria virtual correspondientes a las instrucciones que se están ejecutando en un momento dado.
La transformación de direcciones lógicas (virtuales) en direcciones físicas (RAM) es realizada por la Unidad de Gestión de Memoria (MMU - Memory Management Unit).
Un marco de página es una división de la memoria física en zonas de igual tamaño, utilizadas para intercambiar páginas de procesos. Solo una parte de la memoria virtual de un proceso está cargada en la memoria real en un momento dado. Por ejemplo, si la RAM es de 4GB, la memoria virtual recomendada podría ser de 5GB o 6GB.
Cuando un proceso intenta acceder a una parte de la memoria virtual cuya página correspondiente no está cargada en la memoria real (RAM), se produce un fallo de página. En respuesta, el sistema operativo carga la página necesaria desde el disco. Las páginas de RAM que no se utilizan activamente se descargan (o se escriben de vuelta al disco si han sido modificadas) para liberar espacio para otras páginas requeridas.
Segmentación de Memoria
A diferencia de la paginación, la segmentación de memoria divide la RAM en espacios que no tienen que ser del mismo tamaño. Estos espacios, llamados segmentos, se asignan a los procesos y varían en tamaño desde 0 hasta un máximo permitido, adaptándose a la estructura lógica del programa (código, datos, pila, etc.).
La principal diferencia entre paginación y segmentación radica en el tamaño de los bloques: en la paginación, el tamaño del bloque (página/marco) es fijo, mientras que en la segmentación, los bloques (segmentos) varían en función de la estructura lógica del proceso.
La paginación se utiliza principalmente para ejecutar procesos que son más grandes que la memoria RAM disponible o para permitir que los procesos se ejecuten sin estar completamente cargados en la memoria real.