El planificador es parte del kernel o n£cleo de OS/2 y como tal funciona al nivel m s bajo del sistema (para m s informaci¢n acerca de esto, lea las explicaciones de la p gina Reiniciar el WPS).
El planificador es responsable de la multitarea y la ejecuci¢n multihilo en OS/2. Puesto que normalmente su ordenador tendr un solo procesador, pero pretender utilizar varios programas a la vez, el planificador cambia entre estos programas varias docenas de veces por segundo, de modo que los programas parecen ejecutarse en paralelo.
Para entender las diferentes opciones de la p gina "Planificador" del objeto "OS/2 Kernel", las siguientes explicaciones sobre c¢mo gestiona OS/2 los procesos e hilos de ejecuci¢n pueden ser de ayuda. En esa p gina de opciones recibir informaci¢n m s espec¡fica sobre cada opci¢n si pulsa el bot¢n "Ayuda" que all¡ se encuentra.
Un hilo es la unidad m s peque¤a que proporciona OS/2 para los cambios de administraci¢n de programas. Un programa puede contener varios hilos de ejecuci¢n, pero necesita tener al menos uno. Se escogi¢ el t‚rmino "hilo" (tambi‚n puede encontrarse "hebra") porque dentro de cada hilo las instruciiones se ejecutan secuencialmente, mientra que entre hilos nunca se puede estar seguro de que una instrucci¢n de un hilo se ejecute antes o despu‚s que otra instrucci¢n de un hilo diferente.
Las aplicaciones de OS/2 bien programadas utilizan varios hilos de ejecuci¢n para asegurarse de que el usuario tenga una respuesta r pida a la introducci¢n de datos o a las acciones del rat¢n. Por ejemplo, si ejecuta en un programa un mandato que requiera mucho tiempo, el programa deber¡a iniciar un hilo secundario para esta tarea. As¡, mientras este nuevo hilo se ejecuta en segundo plano, el interfaz de usuario (en el hilo principal del programa) est listo de nuevo para recibir nuevas ¢rdenes del usuario.
Las aplicaciones de OS/2 no tan bien programadas utilizan s¢lo un hilo de ejcuci¢n para el interfaz de usuario y ejecutar tareas. Como resultado, mientras se ejecuta una tarea, se bloquea el interfaz de usuario. Un buen ejemplo de esto viene de la propia IBM: en VIEW.EXE, si se realiza una b£squeda en todas las bibliotecas, el programa se bloquea completamente hasta que finaliza la b£squeda. Esta tarea habr¡a sido perfecta para la ejecuci¢n multihilo.
Los hilos pueden tener diferente prioridad. En general, un hilo con mayor prioridad obtiene m s tiempo de procesador que uno que tenga una prioridad m s baja. Esto es especialmente cierto si hay hay varios hilos con trabajo pendiente, es decir, que compiten por tiempo del procesador; no obstante, esto no se aplica a los hilos que se encuentren "bloqueados" porque no tengan nada que hacer actualmente. Un hilo bloqueado por inactividad no necesita tiempo de procesador y por tanto no es importante qu‚ prioridad tenga.
OS/2 is capaz de controlar la prioridad de los hilos de una manera muy refinada. Diferencia entre cuatro clases de prioridad:
Algunos ejemplos:
Dentro de la clase de "prioridad normal", sin embargo, OS/2 se asegura de que ning£n hilo se quede sin tiempo de proceso, elevando din micamente la prioridad de cada hilo de forma autom tica cada cierto tiempo. Este periodo de tiempo es determinado por la opci¢n del CONFIG.SYS MAXWAIT. Lo que es m s, OS/2 eleva la prioridad de un hilo si va a recibir entrada por el teclado, si el proceso del hilo se ejecuta en primer plano, o si el hilo est accediendo a alg£n dispositivo.
Estos ajustes din micos s¢lo se realizan si el CONFIG.SYS no contiene la l¡nea
PRIORITY=ABSOLUTE, lo que no es recomendable. (Es por esto que no
encontrar esa opci¢n en el objeto "OS/2 Kernel".)