El bloque de control de tareas ( TCB ) contiene el estado de una tarea [a] en, por ejemplo, OS/360 y sucesores en la arquitectura IBM System/360 y sucesores.
El TCB en OS/360 y sucesores
En OS/360 , OS/VS1 , SVS , MVS/370 , MVS/XA , MVS/ESA , OS/390 y z/OS , el TCB [1] [2] [3] : 311–321 contiene, entre otros datos, indicadores de no despacho y los registros generales y de punto flotante para una tarea que no está asignada actualmente a una CPU.
Un TCB proporciona un ancla para una lista enlazada de otros bloques de solicitud relacionados [3] : 269–301 (RB); el RB enlazado superior para un TCB contiene la palabra de estado del programa (PSW) cuando la tarea no está asignada a una CPU.
Cuando el despachador del programa de control selecciona un TCB para ser despachado, el despachador carga registros desde el TCB y carga el PSW desde el RB superior del TCB, despachando así la unidad de trabajo.
Bloques de solicitud
OS/360 tiene los siguientes tipos de bloques de solicitud
- Bloque de solicitud de interrupción [3] : 281–284
- Se utiliza un IRB para gestionar una salida asincrónica. [b]
- Bloque de solicitud de programa [3] : 285–287
- Un PRB representa un módulo invocado con una macro ATTACH, una macro LINK o una salida sincrónica. [c]
- Bloque de solicitud de interrupción del sistema [3] : 289–291
- Se utiliza un SIRB para ejecutar el código de recuperación de errores de E/S.
- Bloques de solicitud de supervisor [3] : 293–301
- Una SVRB representa la ejecución de una rutina SVC Tipo 2, Tipo 3 o Tipo 4
Un RB contiene varios campos, entre ellos un antiguo PSW, antiguos registros generales, un PSW y un recuento de espera.
Despacho
El despachador es una rutina del núcleo que selecciona el trabajo que se va a despachar. Selecciona la tarea de mayor prioridad que:
- No se está ejecutando en otra CPU
- No tiene ningún indicador de no capacidad de envío establecido
- Tiene un RB superior con un conteo de espera de cero.
El sistema mantiene un par [d] de punteros TCB conocidos como TCB antiguo y TCB nuevo. Un puntero TCB nuevo de cero hace que el despachador busque una tarea elegible.
Cuando el despachador encuentra una tarea elegible, establece los punteros TCB antiguos y nuevos, carga los registros desde el TCB y carga el PSW desde el RB superior.
Si el despachador no encuentra trabajo elegible, ingresa en una espera habilitada.
Historia
Con la introducción de MVS/370 y los sistemas sucesores, se introdujo un entorno completamente nuevo: el Bloque de solicitud de servicio (SRB), que generalmente tiene una prioridad más alta que cualquier Bloque de control de tareas y, de hecho, que tiene dos prioridades distintas: un SRB global (prioridad sobre todos los SRB y TCB del espacio de direcciones locales) y un SRB local (prioridad solo sobre los TCB del espacio de direcciones locales); y el despachador de MVS debe gestionar todos ellos con absoluta consistencia en hasta dos procesadores (MVS/370) y hasta dieciséis procesadores (sistemas sucesores).
Véase también
Notas
- ^ Aproximadamente análogo a un hilo en sistemas operativos tipo UNIX .
- ^ Una rutina asincrónica para manejar una excepción, un evento de temporizador u otra señal.
- ^ Rutina de devolución de llamada sin privilegios .
- ^ En 65MP hay un par para cada CPU; en MVS hay punteros para cada espacio de direcciones.
Referencias
- ^ Sistema operativo IBM System/360 - Supervisor de tareas fijas - Número de programa 360S-CI-505 (PDF) (tercera edición). Febrero de 1967. Y28-6612-2.
{{cite book}}:|work=ignorado ( ayuda ) - ^ IBM System/360 Operating System - MVT Supervisor (PDF) (Octava edición). Mayo de 1973. GY28-6659-7 . Consultado el 14 de marzo de 2022 .
{{cite book}}:|work=ignorado ( ayuda ) - ^ abcdef IBM System/360 Operating System: System Control Blocks - OS Release 21.7 (PDF) (Décima edición). IBM. Abril de 1973. GC28-6628-9 . Consultado el 12 de junio de 2022 .
{{cite book}}:|work=ignorado ( ayuda )