Planificador

Planificador

El planificador (o scheduler en inglés) es un componente funcional muy importante de los sistemas operativos multitarea y multiproceso, y es esencial en los sistemas operativos de tiempo real. Su función consiste en repartir el tiempo disponible de un microprocesador entre todos los procesos que están disponibles para su ejecución.

Contenido

Motivación

Todo sistema operativo gestiona los programas mediante el concepto de proceso. En un instante dado, en el ordenador pueden existir diversos procesos listos para ser ejecutados. Sin embargo, solamente uno de ellos puede ser ejecutado (en cada microprocesador). De ahí la necesidad de que una parte del sistema operativo gestione, de una manera equitativa, qué proceso debe ejecutarse en cada momento.

Cómo funciona

Supóngase un ordenador que contiene un único microprocesador. Dicho microprocesador solamente puede ejecutar un programa en cada instante de tiempo. Además, cuando un programa está ejecutándose, nunca dejará de hacerlo por sí mismo. De manera que, en principio, cualquier programa monopoliza el microprocesador impidiendo que otros programas se ejecuten.

Por ello, la primera misión de un planificador es expulsar el programa en ejecución cuando decida que es pertinente. Esto se consigue de dos maneras, siempre con ayuda del propio hardware:

  • Cuando expira un temporizador, que se activa a intervalos regulares de tiempo. En intervalos muy cortos, generalmente cada 250 milisegundos.
  • Cuando el programa solicita una operación de entrada/salida. Dado que el programa no puede continuar hasta que termine dicha operación, es un buen momento para ejecutar otro programa.

En ambos casos, el control del microprocesador pasa a manos del planificador gracias a que el hardware genera una interrupción. En este proceso de expulsión, se guarda el estado de ejecución del programa (programa y su estado se denomina proceso).

A continuación, el planificador decide cuál será el siguiente proceso en ejecutarse. Naturalmente, solamente se escogen procesos que estén listos para hacerlo. Si un proceso sigue esperando por una operación de entrada/salida no será candidato a ejecutarse hasta que finalice tal operación.

La selección del proceso sigue alguna política de planificación (ver más adelante) prestablecida. Una vez seleccionado un proceso, se procede a ejecutarlo. Para ello, el planificador restaura su estado de ejecución (previamente salvado) y abandona el uso del microprocesador cediéndoselo a dicho proceso.

Todo esto apenas dura unos pocos milisegundos.

Gracias a que el tiempo del microprocesador se reparte entre todos los procesos a intervalos muy cortos, el ordenador ofrece la sensación de que todos los procesos están ejecutándose a la vez.

Cuando un ordenador tiene varios microprocesadores (véase arquitecura NUMA y SMP), este esquema se repite para cada microprocesador.

Tiempo real

Un sistema operativo en tiempo real se caracteriza por garantizar que todo programa se ejecutará en un límite máximo de tiempo. El planificador debe comportarse de manera que esto sea cierto para cualquier proceso.

En estos casos, la finalidad del planificador es balancear o equilibrar la carga del procesador, impidiendo que un proceso monopolice el procesador o que sea privado de los recursos de la máquina. En entornos de tiempo real, como los dispositivos para el control automático en la industria (por ejemplo, robots), el planificador también impide que los procesos se paren o interrumpan a otros que esperan que se realicen ciertas acciones. Su labor resulta imprescindible para mantener el sistema estable y funcionando.

Niveles de planificación

Los niveles de planificación están basados en la frecuencia con la que se realiza cada uno.

En los sistemas operativos de propósito general, existen tres tipos de planificadores. El planificador a corto plazo es el que se ha descrito aquí, siendo también el más importante. En inglés, se denomina dispatcher o short term scheduler, también existe un planificador a mediano plazo (en inglés, mid term scheduler) relacionado con aquellos procesos que no se encuentran en memoria principal (véase memoria virtual). Su misión es mover procesos entre memoria principal y disco (lo que se conoce como swapping) y por último existe el planificador a largo plazo (en inglés long term scheduler) es el encargado de ingresar nuevos procesos al sistema y de finalizarlos.

Políticas de planificación

A continuación se enumeran diversas políticas de planificación. Lo habitual es utilizar políticas mixtas. Generalmente, el planificador a corto plazo utiliza round-robin, mientras que el planificador a largo plazo utiliza varias colas FIFO. Cada una de estas colas corresponde a una prioridad diferente.

  • Planificación mediante colas multinivel.

Tipos de Algoritmos

Existen dos tipos de algoritmos de calendarización (políticas de planificación), expropiativos y no expropiativos. Los primeros permiten que se ejecute el proceso hasta que acabe su trabajo, los segundos, asignan un tiempo de ejecución a cada proceso después del cual se calendariza otro proceso y así repetidamente, hasta que cada proceso acabe su trabajo.


Wikimedia foundation. 2010.

Игры ⚽ Нужен реферат?

Mira otros diccionarios:

  • planificador — planificador, ra 1. adj. Que planifica (ǁ somete a planificación). U. m. c. s.) 2. Perteneciente o relativo a la planificación …   Diccionario de la lengua española

  • Planificador — ► adjetivo 1 De la planificación. ► sustantivo 2 Persona encargada de la planificación. * * * planificador, ra. adj. Que planifica (ǁ somete a planificación). U. m. c. s. || 2. Perteneciente o relativo a la planificación. * * * El planificador es …   Enciclopedia Universal

  • Planificador Completamente Justo — Saltar a navegación, búsqueda Algoritmo planificador desarrollado con la meta de maximizar el uso de la CPU con las diferentes tareas que se lanzan en un sistema Linux basándose en el Fair Queuing. Este planificador, apareció en la versión del… …   Wikipedia Español

  • planificador — pla|ni|fi|ca|dor Mot Agut Adjectiu variable …   Diccionari Català-Català

  • Common Unix Printing System — Desarrollador Easy Software Products www.cups.org …   Wikipedia Español

  • Masato Kato — (加藤正人 Katō Masato, nacido el 28 de marzo de 1963?) es un desarrollador y escritor de escenarios de videojuegos japonés. Trabajó por primera vez para Tecmo en Captain Tsubasa y la serie Ninja Gaiden. Luego trabajó en Gainax, y después en Square.… …   Wikipedia Español

  • Planificación en salud — Saltar a navegación, búsqueda Contenido 1 Nociones generales 2 Características básicas de la planificación 3 Por qué planificar? …   Wikipedia Español

  • Cálculo económico — Saltar a navegación, búsqueda La teoría del cálculo económico es una teoría económica que afirma que la apropiada producción, distribución y uso de bienes y servicios solo puede darse en un contexto de propiedad privada de los medios de… …   Wikipedia Español

  • El alma al aire — Saltar a navegación, búsqueda El alma al aire Álbum de Alejandro Sanz Publicación 2000 Grabación Marzo y Julio del 2000 …   Wikipedia Español

  • RTAI — Saltar a navegación, búsqueda RTAI (Real Time Application Interface) Interface para Aplicaciones en Tiempo Real, es una implementación de Linux para tiempo real basada en un principio en RTLinux, y actualmente en ADEOS, no es un sistema operativo …   Wikipedia Español

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”