<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Task_Control_Block</id>
	<title>Task Control Block - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Task_Control_Block"/>
	<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Task_Control_Block&amp;action=history"/>
	<updated>2026-04-23T21:48:15Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Task_Control_Block&amp;diff=2115946&amp;oldid=prev</id>
		<title>imported&gt;Chatul: /* See also */  Thread, not process; OS/360</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Task_Control_Block&amp;diff=2115946&amp;oldid=prev"/>
		<updated>2025-04-04T19:04:59Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;See also: &lt;/span&gt;  Thread, not process; OS/360&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Short description|Instance of a thread control block within IBM OS/360 and successor systems}}&lt;br /&gt;
{{for|the equivalent in Unix-derived systems|Thread control block}}&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Task Control Block&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;TCB&amp;#039;&amp;#039;&amp;#039;) contains the state of a task{{efn|Roughly analogous to a [[Thread (computing)|thread]] in [[UNIX]]-like operating systems.}} in, e.g., [[OS/360 and successors]] on [[IBM System/360 architecture]] and successors.&lt;br /&gt;
&lt;br /&gt;
==The TCB in OS/360 and successors==&lt;br /&gt;
In [[OS/360]], [[OS/VS1]], [[OS/VS2 (SVS)|SVS]], [[MVS/370]], [[MVS/XA]], [[MVS/ESA]], [[OS/390]] and [[z/OS]], the TCB&amp;lt;ref name=FixSup/&amp;gt;&amp;lt;ref name=MVTSup/&amp;gt;&amp;lt;ref name=SCB/&amp;gt;{{rp|pp=311–321}} contains, among other data, non-dispatchability flags and the general and floating point registers for a task that is not currently assigned to a CPU.&lt;br /&gt;
&lt;br /&gt;
A TCB provides an anchor for a linked list of other, related request blocks&amp;lt;ref name=SCB/&amp;gt;{{rp|pp=269–301}} (RBs); the top-linked RB for a TCB contains the [[Program status word]] (PSW) when the task is not assigned to a CPU.&lt;br /&gt;
&lt;br /&gt;
When the control program&amp;#039;s dispatcher selects a TCB to be dispatched, the dispatcher loads registers from the TCB and loads the PSW from the top RB of the TCB, thereby dispatching the unit of work.&lt;br /&gt;
&lt;br /&gt;
===Request Blocks===&lt;br /&gt;
&lt;br /&gt;
OS/360 has the following types of request blocks&lt;br /&gt;
; Interruption Request Block&amp;lt;ref name=SCB/&amp;gt;{{rp|pp=281–284}} &lt;br /&gt;
: An IRB is used to handle an asynchronous exit.{{efn|An asynchronous routine to handle an exception, timer event or other signal.}}&lt;br /&gt;
; Program Request Block&amp;lt;ref name=SCB/&amp;gt;{{rp|pp=285–287}}&lt;br /&gt;
: A PRB represents a module invoked with an ATTACH macro, a LINK macro or a synchronous exit.{{efn|Unprivileged [[Callback (computer programming)|callback]] routine.}} &lt;br /&gt;
; System Interruption Request Block&amp;lt;ref name=SCB/&amp;gt;{{rp|pp=289–291}}&lt;br /&gt;
: An SIRB is used to run I/O error recovery code.&lt;br /&gt;
; Supervisor Request Blocks&amp;lt;ref name=SCB/&amp;gt;{{rp|pp=293–301}} &lt;br /&gt;
: An SVRB represents the execution of a Type 2, Type 3 or Type 4 SVC routine&lt;br /&gt;
&lt;br /&gt;
An RB contains several fields, among them an old PSW, old general registers, a PSW and a wait count.&lt;br /&gt;
&lt;br /&gt;
===Dispatching===&lt;br /&gt;
The &amp;#039;&amp;#039;Dispatcher&amp;#039;&amp;#039; is a routine in the nucleus that selects the work to be dispatched. It selects the highest priority task that:&lt;br /&gt;
#Is not running on another CPU&lt;br /&gt;
#Does not have any non-dispatchability flags set&lt;br /&gt;
#Has a top RB with a zero wait count.&lt;br /&gt;
&lt;br /&gt;
The system maintains a pair{{efn|In [[65MP]] there is a pair for each CPU; in MVS there are pointers for each address space.}} of TCB pointers known as TCB old and TCB new. A TCB new pointer of zero causes the dispatcher to search for an eligible task.&lt;br /&gt;
&lt;br /&gt;
When the dispatcher finds an eligible task, it sets the old and new TCB pointers. loads the registers from the TCB and loads the PSW from the top RB.&lt;br /&gt;
&lt;br /&gt;
If the dispatcher fails to find eligible work, it enters an enabled wait.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
With the introduction of [[MVS/370]] and successor systems, a whole new environment was introduced: the Service Request Block (SRB), which generally has a higher priority than any Task Control Block, and, indeed, which itself has two distinct priorities: a Global SRB (priority over all local address space SRBs and TCBs) and a Local SRB (priority over only the local address space TCBs); and MVS&amp;#039;s dispatcher must manage all of these with absolute consistency across as many as two processors (MVS/370) and as many as sixteen processors (successor systems).&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[[OS/360 and successors]]&lt;br /&gt;
*[[Thread control block]]&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
{{notelist}}&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{reflist|refs=&lt;br /&gt;
&amp;lt;ref name=FixSup&amp;gt;{{cite book&lt;br /&gt;
 | title       = IBM System/360 Operating System - Fixed-Task Supervisor - Program Number 360S-CI-505&lt;br /&gt;
 | id          = Y28-6612-2&lt;br /&gt;
 | date        = February 1967&lt;br /&gt;
 | edition     = Third&lt;br /&gt;
 | url         = http://www.bitsavers.org/pdf/ibm/360/os/plm_1966-67/Y28-6612-2_Fixed-Task_Supervisor_PLM_Sep67.pdf&lt;br /&gt;
 | series      = Program Logic&lt;br /&gt;
 | access-date =&lt;br /&gt;
 }}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&amp;lt;ref name=MVTSup&amp;gt;{{cite book&lt;br /&gt;
 | title       = IBM System/360 Operating System - MVT Supervisor&lt;br /&gt;
 | id          = GY28-6659-7&lt;br /&gt;
 | date        = May 1973&lt;br /&gt;
 | edition     = Eighth&lt;br /&gt;
 | url         = http://bitsavers.org/pdf/ibm/360/os/R21.7_Apr73/plm/GY28-6659-7_MVT_Supervisor_PLM_Rel_21.7_May73.pdf&lt;br /&gt;
 | series      = Program Logic&lt;br /&gt;
 | access-date = March 14, 2022&lt;br /&gt;
 }}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&amp;lt;ref name=SCB&amp;gt;{{cite book&lt;br /&gt;
 |   publisher = IBM&lt;br /&gt;
 |       title = IBM System/360 Operating System: System Control Blocks - OS Release 21.7&lt;br /&gt;
 |          id = GC28-6628-9&lt;br /&gt;
 |     edition = Tenth&lt;br /&gt;
 |        date = April 1973&lt;br /&gt;
 |         url = http://bitsavers.org/pdf/ibm/360/os/R21.7_Apr73/GC28-6628-9_OS_System_Ctl_Blks_R21.7_Apr73.pdf&lt;br /&gt;
 |      series = Systems Reference Library&lt;br /&gt;
 | access-date = June 12, 2022&lt;br /&gt;
 }}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Process (computing)]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Chatul</name></author>
	</entry>
</feed>