Planificador para niños
El planificador (también conocido como scheduler en inglés) es una parte muy importante de los sistemas operativos de los ordenadores. Su trabajo principal es organizar cómo el microprocesador (el "cerebro" del ordenador) reparte su tiempo entre todos los programas que están funcionando al mismo tiempo. Esto es clave para que el ordenador funcione bien, especialmente en sistemas que necesitan responder muy rápido.
Contenido
¿Por qué necesitamos un planificador?
Todo sistema operativo maneja los programas como si fueran "tareas" o "procesos". Imagina que tienes muchos programas abiertos en tu ordenador, como un navegador de internet, un juego y un editor de texto. En un momento dado, el microprocesador solo puede ejecutar una de esas tareas a la vez.
El planificador es como un director de orquesta. Se asegura de que cada tarea reciba su turno para usar el microprocesador. Así, el ordenador puede hacer muchas cosas a la vez de forma eficiente, sin que un solo programa acapare todo el tiempo del procesador.
¿Cómo funciona el planificador?
Imagina que tu ordenador tiene un solo microprocesador. Este solo puede ejecutar un programa en cada instante. Si un programa se ejecuta, no se detendrá por sí mismo. Esto podría hacer que un programa use todo el microprocesador y no deje que otros funcionen.
Por eso, la primera tarea del planificador es "pausar" el programa que se está ejecutando cuando sea necesario. Esto se logra de dos maneras, con ayuda del propio ordenador:
- Cuando un temporizador se activa: El ordenador tiene un reloj interno que suena a intervalos muy cortos (por ejemplo, cada 250 milisegundos). Cuando suena, el planificador toma el control.
- Cuando el programa necesita algo: Si un programa necesita, por ejemplo, leer un archivo del disco duro o mostrar algo en la pantalla (una operación de entrada/salida), no puede seguir hasta que eso termine. Este es un buen momento para que el planificador deje que otro programa se ejecute.
En ambos casos, el control del microprocesador pasa al planificador gracias a una "interrupción" que genera el ordenador. Cuando el planificador "pausa" un programa, guarda toda la información sobre lo que estaba haciendo ese programa. A esto se le llama "contexto".
Después, el planificador decide cuál será el siguiente programa en ejecutarse. Solo elige programas que estén listos para funcionar. Si un programa está esperando que termine una operación de entrada/salida, no será elegido.
La forma en que el planificador elige el siguiente programa se basa en unas "reglas" o "políticas de planificación". Una vez que elige un programa, el planificador "restaura" la información que había guardado de ese programa y le cede el control del microprocesador.
Gracias a que el tiempo del microprocesador se reparte entre todos los programas en intervalos muy cortos, el ordenador da la sensación de que todos los programas están funcionando al mismo tiempo. Esto se llama "ejecución concurrente".
Si un ordenador tiene varios microprocesadores, este proceso se repite para cada uno de ellos.
Planificadores en sistemas de tiempo real
Algunos sistemas operativos se llaman de "tiempo real". Esto significa que garantizan que un programa se ejecutará en un tiempo máximo establecido. Por ejemplo, los sistemas que controlan robots en una fábrica necesitan responder de forma muy precisa y rápida.
En estos casos, el planificador debe asegurarse de que ningún programa acapare el microprocesador o impida que otros programas importantes funcionen. Su trabajo es esencial para que estos sistemas sean estables y funcionen correctamente.
¿Cuántos tipos de planificadores hay?
En los sistemas operativos más comunes, existen tres tipos de planificadores, según la frecuencia con la que actúan:
- Planificador a corto plazo: Es el más importante y el que hemos descrito. Se encarga de decidir qué programa se ejecuta en cada momento.
- Planificador a medio plazo: Se encarga de mover programas entre la memoria principal del ordenador y el disco duro. Esto ayuda a que el ordenador pueda manejar más programas de los que caben en la memoria al mismo tiempo.
- Planificador a largo plazo: Es el encargado de decidir qué nuevos programas pueden empezar a ejecutarse en el sistema y cuándo un programa debe terminar.
Reglas para elegir programas
El planificador usa diferentes "políticas" o "algoritmos" para decidir qué programa se ejecuta. A menudo, se usan combinaciones de estas políticas. Algunas de las más comunes son:
- Round-robin: Cada programa recibe un pequeño turno para ejecutarse, y luego pasa al siguiente. Es como una ronda donde todos tienen su oportunidad.
- FIFO (First In, First Out): El primer programa que llega es el primero en ejecutarse. Como una fila de espera.
- Prioridades: Los programas más importantes o urgentes se ejecutan antes que los demás.
- SJF (Shortest Job First): Se ejecuta primero el programa que se espera que termine más rápido.
Tipos de algoritmos de planificación
Existen dos grandes tipos de algoritmos que usa el planificador:
- Algoritmos expropiativos: Estos pueden "quitarle" el turno a un programa que se está ejecutando si llega otro programa más importante o si su tiempo asignado se acaba.
- Algoritmos no expropiativos: Una vez que un programa empieza a ejecutarse, no se detiene hasta que termina su tarea o necesita esperar por algo (como una operación de entrada/salida).