Блок управления задачами

Блок управления задачами ( TCB ) содержит состояние задачи [a] , например, в OS/360 и ее преемниках на архитектуре IBM System/360 и ее преемниках.

TCB в OS/360 и последующих версиях

В OS/360 , OS/VS1 , SVS , MVS/370 , MVS/XA , MVS/ESA , OS/390 и z/OS TCB [1] [2] [3] : 311–321  содержит, помимо прочих данных, флаги невозможности диспетчеризации, а также общие регистры и регистры с плавающей точкой для задачи, которая в данный момент не назначена центральному процессору.

TCB предоставляет якорь для связанного списка других связанных блоков запросов [3] : 269–301  (RB); связанный сверху RB для TCB содержит слово состояния программы (PSW), когда задача не назначена ЦП.

Когда диспетчер программы управления выбирает TCB для диспетчеризации, диспетчер загружает регистры из TCB и загружает PSW из верхнего RB TCB, тем самым диспетчеризируя единицу работы.

Запросить блоки

OS/360 имеет следующие типы блоков запросов

Блок запроса прерывания [3] : 281–284 
IRB используется для обработки асинхронного выхода. [b]
Блок запроса программы [3] : 285–287 
PRB представляет собой модуль, вызываемый с помощью макроса ATTACH, макроса LINK или синхронного выхода. [c]
Блок запроса на прерывание системы [3] : 289–291 
SIRB используется для запуска кода восстановления после ошибок ввода-вывода.
Блоки запросов супервизора [3] : 293–301 
SVRB представляет собой выполнение процедуры SVC типа 2, типа 3 или типа 4.

RB содержит несколько полей, среди которых старый PSW, старые общие регистры, PSW и счетчик ожидания.

Диспетчерская

Dispatcher это процедура в ядре, которая выбирает работу для отправки. Она выбирает задачу с наивысшим приоритетом, которая:

  1. Не работает на другом процессоре
  2. Не имеет установленных флагов невозможности отправки.
  3. Имеет топового RB с нулевым количеством ожиданий.

Система поддерживает пару [d] указателей TCB, известных как TCB old и TCB new. Указатель TCB new, равный нулю, заставляет диспетчера искать подходящую задачу.

Когда диспетчер находит подходящую задачу, он устанавливает старые и новые указатели TCB, загружает регистры из TCB и загружает PSW из верхнего RB.

Если диспетчеру не удается найти подходящую работу, он переходит в режим ожидания.

История

С появлением MVS/370 и последующих систем была введена совершенно новая среда: блок запросов на обслуживание (SRB), который обычно имеет более высокий приоритет, чем любой блок управления задачами, и, по сути, сам по себе имеет два различных приоритета: глобальный SRB (приоритет над всеми SRB и TCB локального адресного пространства) и локальный SRB (приоритет только над TCB локального адресного пространства); и диспетчер MVS должен управлять всеми ими с абсолютной согласованностью на двух процессорах (MVS/370) и шестнадцати процессорах (последующие системы).

Смотрите также

Примечания

  1. ^ Примерно аналогично потоку в UNIX - подобных операционных системах.
  2. ^ Асинхронная процедура для обработки исключения, события таймера или другого сигнала.
  3. ^ Непривилегированная процедура обратного вызова .
  4. ^ В 65MP есть пара для каждого ЦП; в MVS есть указатели для каждого адресного пространства.

Ссылки

  1. ^ IBM System/360 Operating System - Fixed-Task Supervisor - Номер программы 360S-CI-505 (PDF) . Program Logic (Третье изд.). Февраль 1967. Y28-6612-2.
  2. ^ IBM System/360 Operating System - MVT Supervisor (PDF) . Program Logic (восьмое изд.). Май 1973 г. GY28-6659-7 . Получено 14 марта 2022 г.
  3. ^ abcdef IBM System/360 Operating System: System Control Blocks - OS Release 21.7 (PDF) . Systems Reference Library (Tenth ed.). IBM. Апрель 1973 г. GC28-6628-9 . Получено 12 июня 2022 г. .
Взято с "https://en.wikipedia.org/w/index.php?title=Task_Control_Block&oldid=1256557911"