El Bloque de Control de Tareas ( TCB ) es una estructura de datos que 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 despachabilidad y los registros generales y de punto flotante para una tarea que actualmente no está asignada 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, carga los registros del 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
- Un IRB se utiliza para manejar una salida asíncrona. [ 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 síncrona. [ c ]
- Bloque de solicitud de interrupción del sistema [ 3 ] : 289–291
- Un SIRB se utiliza para ejecutar código de recuperación de errores de E/S.
- Bloques de solicitud del supervisor [ 3 ] : 293–301
- Un SVRB representa la ejecución de una rutina SVC de tipo 2, tipo 3 o tipo 4.
Un RB contiene varios campos, entre ellos un PSW antiguo, registros generales antiguos, un PSW y un contador de espera.
Despacho
El Despachador es una rutina en el 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 ninguna bandera de no despacho establecida.
- Tiene un corredor de primera categoría con un tiempo 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 antiguo y nuevo, carga los registros del TCB y carga el PSW desde el RB superior.
Si el despachador no encuentra trabajo que cumpla los requisitos, entra 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 a su vez tiene dos prioridades distintas: un SRB Global (prioridad sobre todos los SRB y TCB del espacio de direcciones local) y un SRB Local (prioridad solo sobre los TCB del espacio de direcciones local); y el despachador de MVS debe administrar todo esto con absoluta coherencia en hasta dos procesadores (MVS/370) y hasta dieciséis procesadores (sistemas sucesores).
Véase también
Notas
Referencias
- ↑ Sistema operativo IBM System/360 - Supervisor de tareas fijas - Número de programa 360S-CI-505 (PDF) . Lógica del programa (Tercera edición). Febrero de 1967. Y28-6612-2.
- ↑ Sistema operativo IBM System/360 - Supervisor MVT (PDF) . Lógica de programas (octava edición). Mayo de 1973. GY28-6659-7 . Consultado el 14 de marzo de 2022 .
- 1 2 3 4 5 6 Sistema operativo IBM System/360: Bloques de control del sistema - Versión 21.7 del sistema operativo (PDF) . Biblioteca de referencia de sistemas (Décima edición). IBM. Abril de 1973. GC28-6628-9 . Consultado el 12 de junio de 2022 .
- Proceso (informática)