Le bloc de contrôle des tâches ( TCB ) contient l'état d'une tâche dans, par exemple, OS/360 et successeurs sur l'architecture IBM System/360 et successeurs.
Le TCB dans OS/360 et ses successeurs
Dans OS/360 , OS/VS1 , SVS , MVS/370 , MVS/XA , MVS/ESA , OS/390 et z/OS , le TCB contient, entre autres données, des indicateurs de non-dispatchabilité et les registres généraux et à virgule flottante pour une tâche qui n'est pas actuellement affectée à un processeur.
Un TCB fournit une ancre pour une liste chaînée d'autres blocs de requêtes associés (RB) ; le RB lié en haut pour un TCB contient le mot d'état du programme (PSW) lorsque la tâche n'est pas affectée à un CPU.
Lorsque le répartiteur du programme de contrôle sélectionne un TCB à répartir, le répartiteur charge les registres du TCB et charge le PSW à partir du RB supérieur du TCB, répartissant ainsi l'unité de travail.
Blocs de requêtes
OS/360 possède les types de blocs de requête suivants
- Bloc de demande d'interruption
- Un IRB est utilisé pour gérer une sortie asynchrone.
- Bloc de demande de programme
- Un PRB représente un module invoqué avec une macro ATTACH, une macro LINK ou une sortie synchrone.
- Bloc de demande d'interruption du système
- Un SIRB est utilisé pour exécuter le code de récupération d’erreur d’E/S.
- Blocs de demandes du superviseur
- Un SVRB représente l'exécution d'une routine SVC de type 2, de type 3 ou de type 4
Un RB contient plusieurs champs, parmi lesquels un ancien PSW, d'anciens registres généraux, un PSW et un nombre d'attentes.
Expéditeur
Le Dispatcher est une routine du noyau qui sélectionne le travail à répartir. Il sélectionne la tâche la plus prioritaire qui :
- Ne fonctionne pas sur un autre processeur
- N'a aucun indicateur de non-dispatchabilité défini
- A un RB de haut niveau avec un nombre d'attentes nul.
Le système conserve une paire de pointeurs TCB appelés TCB old et TCB new. Un nouveau pointeur TCB de zéro oblige le répartiteur à rechercher une tâche éligible.
Lorsque le répartiteur trouve une tâche éligible, il définit les anciens et les nouveaux pointeurs TCB. charge les registres du TCB et charge le PSW à partir du RB supérieur.
Si le répartiteur ne parvient pas à trouver un travail éligible, il entre dans une attente activée.
Histoire
Avec l'introduction de MVS/370 et des systèmes successeurs, un tout nouvel environnement a été introduit : le bloc de demande de service (SRB), qui a généralement une priorité plus élevée que n'importe quel bloc de contrôle de tâche, et qui, en fait, a lui-même deux priorités distinctes : un SRB global (priorité sur tous les SRB et TCB de l'espace d'adressage local) et un SRB local (priorité sur les seuls TCB de l'espace d'adressage local) ; et le répartiteur de MVS doit gérer tous ces éléments avec une cohérence absolue sur jusqu'à deux processeurs (MVS/370) et jusqu'à seize processeurs (systèmes successeurs).