stringtranslate.com

Bloque de control de tareas

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:

  1. No se está ejecutando en otra CPU
  2. No tiene ningún indicador de no capacidad de envío establecido
  3. 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

  1. ^ Aproximadamente análogo a un hilo en sistemas operativos tipo UNIX .
  2. ^ Una rutina asincrónica para manejar una excepción, un evento de temporizador u otra señal.
  3. ^ Rutina de devolución de llamada sin privilegios .
  4. ^ En 65MP hay un par para cada CPU; en MVS hay punteros para cada espacio de direcciones.

Referencias

  1. ^ 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 )
  2. ^ 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 )
  3. ^ 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 )