Task management apparatus
First Claim
1. In a data processing system of the type in which each set of a plurality of sets of registers, one set being provided for each interrupt priority level in the system, interacts with a common main storage and common arithmetic and logic control circuits to execute respective tasks of a program, and in which a task dispatching program means operates in conjunction with priority/interrupt controls to dispatch tasks in a desired sequence to the sets of registers so that each set of registers, the arithmetic and logic unit and the main storage can process a respective task currently assigned to the latter set of registers when its priority is highest,in combination with said register sets, storage, control circuits, program means and priority/interrupt controls,apparatus, controlled in accordance with the execution of one machine level task instruction for assisting the dispatching of tasks, comprisinga main storage area for holding a task address and status block (LSB) for each task for which execution is to be initiated or continued,means for fetching from main storage the LSB of a selected task and for storing the fetched LSB in the register set of a selected level,means for determining the in-process status of the selected task and the relative priority levels on which said one instruction of a current task is being executed and on which the selected task is intended for execution, andmeans responsive to said in-process status and said relative priority levels for initiating the execution of the selected task when the in-process status is "on" and the priority level of the selected task is higher than that of the current task.
0 Assignments
0 Petitions
Accused Products
Abstract
A data processing system is described which has multiple sets of registers each of which is capable of autonomously controlling a common storage and common arithmetic and logic control circuits to execute respective tasks of a program. Level status blocks (LSBs), each assigned to a respective task, are held in main storage; and each contains such address and status data as is required for task execution in a controlled environment. Apparatus, including a current level register, a selected level register, a pending level register and an in-process bit latch, is controlled during the execution of a load level status block (LLSB) instruction to transfer the LSB of a selected task from storage to the selected register set, determine the status of the in-process bit of the selected task LSB and the relative priority levels of the current and selected tasks, and pursuant to said two determinations handle the task dispatching, preemption, enqueuing, dequeuing functions without the need for further software processing. At the completion of the LLSB instruction execution, either the current task execution is continued, the selected task is initiated, a pending task is initiated or a system wait state is entered. A store level status block (STLSB) instruction is executed to copy the LSB of a selected task from the register set to storage. Hardware backup registers are provided to hold certain updated status of the current register set to improve performance. These backup registers are changed during the LLSB execution if task switching occurs and are restored to the current register set during STLSB execution.
89 Citations
11 Claims
-
1. In a data processing system of the type in which each set of a plurality of sets of registers, one set being provided for each interrupt priority level in the system, interacts with a common main storage and common arithmetic and logic control circuits to execute respective tasks of a program, and in which a task dispatching program means operates in conjunction with priority/interrupt controls to dispatch tasks in a desired sequence to the sets of registers so that each set of registers, the arithmetic and logic unit and the main storage can process a respective task currently assigned to the latter set of registers when its priority is highest,
in combination with said register sets, storage, control circuits, program means and priority/interrupt controls, apparatus, controlled in accordance with the execution of one machine level task instruction for assisting the dispatching of tasks, comprising a main storage area for holding a task address and status block (LSB) for each task for which execution is to be initiated or continued, means for fetching from main storage the LSB of a selected task and for storing the fetched LSB in the register set of a selected level, means for determining the in-process status of the selected task and the relative priority levels on which said one instruction of a current task is being executed and on which the selected task is intended for execution, and means responsive to said in-process status and said relative priority levels for initiating the execution of the selected task when the in-process status is "on" and the priority level of the selected task is higher than that of the current task.
-
3. In a data processing system of the type in which each set of a plurality of sets of registers, one set being provided for each interrupt priority level in the system, interacts with a common main storage and common arithmetic and logic control circuits to execute respective tasks of a program, and in which a task dispatching program means operates in conjunction with priority/interrupt controls to dispatch tasks in a desired sequence to the sets of registers so that each set of registers, the arithmetic and logic unit and the main storage can process a respective task currently assigned to the latter set of registers when its priority is highest,
in combination with said register sets, storage, control circuits, program means and priority/interrupt controls, apparatus, controlled in accordance with the execution of one machine level task instruction for assisting the dispatching of tasks, comprising a main storage area for holding a task address and status block (LSB) for each task for which execution is to be initiated or continued, means for fetching from main storage the LSB of a selected task and for storing the fetched LSB in the register set of a selected level, means for determining the in-process status of the selected task and the relative priority levels on which said one instruction of a current task is being executed and on which the selected task is intended for execution, and means responsive to said in-process status and said relative priority levels for enqueueing the selected task and continuing execution of the current task when the in-process status data is "on" and the priority level of the current task is higher than that of the selected task.
-
4. In a data processing system of the type in which each set of a plurality of sets of registers, one set being provided for each interrupt priority level in the system, interacts with a common main storage and common arithmetic and logic control circuits to execute respective tasks of a program, and in which a task dispatching program means operates in conjunction with priority/interrupt controls to dispatch tasks in a desired sequence to the sets of registers so that each set of registers, the arithmetic and logic unit and the main storage can process a respective task currently assigned to the latter set of registers when its priority is highest,
in combination with said register sets, storage, control circuits, program means and priority/interrupt controls, apparatus, controlled in accordance with the execution of one machine level task instruction for assisting the dispatching of tasks, comprising a main storage area for holding a task address and status block (LSB) for each task for which execution is to be initiated or continued, means for fetching from main storage the LSB of a selected task and for storing the fetched LSB in the register set of a selected level, means for determining the in-process status of the selected task and the relative priority levels on which said one instruction of a current task is being executed and on which the selected task is intended for execution, and means responsive to said in-process status and said relative priority levels for changing from execution of the current task to execution of the selected task on the same priority level when the in-process states data is "on" and the selected and current priority levels are the same.
-
5. In a data processing system of the type in which each set of a plurality of sets of registers, one set being provided for each interrupt priority level in the system, interacts with a common main storage and common arithmetic and logic control circuits to execute respective tasks of a program, and in which a task dispatching program means operates in conjunction with priority/interrupt controls to dispatch tasks in a desired sequence to the sets of registers so that each set of registers, the arithmetic and logic unit and the main storage can process a respective task currently assigned to the latter set of registers when its priority is highest,
in combination with said register sets, storage, control circuits, program means and priority/interrupt controls, apparatus, controlled in accordance with the execution of one machine level task instruction for assisting the dispatching of tasks, comprising a main storage area for holding a task address and status block (LSB) for each task for which execution is to be initiated or continued, means for fetching from main storage the LSB of a selected task and for storing the fetched LSB in the register set of a selected level, means for determining the in-process status of the selected task and the relative priority levels on which said one instruction of a current task is being executed and on which the selected task is intended for execution, and means responsive to said in-process status and said relative priority levels for continuing execution of the current task and maintaining the selected task suspended when the in-process status data is "off" and the priority level of the selected task is higher than that of the current task.
-
6. In a data processing system of the type in which each set of a plurality of sets of registers, one set being provided for each interrupt priority level in the system, interacts with a common main storage and common arithmetic and logic control circuits to execute respective tasks of a program, and in which a task dispatching program means operates in conjunction with priority/interrupt controls to dispatch tasks in a desired sequence to the sets of registers so that each set of registers, the arithmetic and logic unit and the main storage can process a respective task currently assigned to the latter set of registers when its priority is highest,
in combination with said register sets, storage, control circuits, program means and priority/interrupt controls, apparatus, controlled in accordance with the execution of one machine level task instruction for assisting the dispatching of tasks, comprising a main storage area for holding a task address and status block (LSB) for each task for which execution is to be initiated or continued, means for fetching from main storage the LSB of a selected task and for storing the fetched LSB in the register set of a selected level, means for determining the in-process status of the selected task and the relative priority levels on which said one instruction of a current task is being executed and on which the selected task is intended for execution, and means responsive to said in-process status and said relative priority levels for continuing execution of the current task and suspending the selected task when the in-process status data is "off" and the priority level of the current task is higher than that of the selected task.
-
7. In a data processing system of the type in which each set of a plurality of sets of registers, one set being provided for each interrupt priority level in the system, interacts with a common main storage and common arithmetic and logic control circuits to execute respective tasks of a program, and in which a task dispatching program means operates in conjunction with priority/interrupt controls to dispatch tasks in a desired sequence to the sets of registers so that each set of registers, the arithmetic and logic unit and the main storage can process a respective task currently assigned to the latter set of registers when its priority is highest,
in combination with said register sets, storage, control circuits, program means and priority/interrupt controls, apparatus, controlled in accordance with the execution of one machine level task instruction for assisting the dispatching of tasks, comprising a main storage area for holding a task address and status block (LSB) for each task for which execution is to be initiated or continued, means for fetching from main storage the LSB of a selected task and for storing the fetched LSB in the register set of a selected level, means for determining the in-process status of the selected task and the relative priority levels on which said one instruction of a current task is being executed and on which the selected task is intended for execution, and means responsive to said in-process status and said relative priority levels for suspending execution of the current task, examining the priority/interrupt controls for tasks pending on other levels and initiating execution of the highest priority pending task if one or more tasks are pending.
-
8. In a data processing system of the type in which each set of a plurality of sets of registers, one set being provided for each interrupt priority level in the system, interacts with a common main storage and common arithmetic and logic control circuits to execute respective tasks of a program, and in which a task dispatching program means operates in conjunction with priority/interrupt controls to dispatch tasks in a desired sequence to the sets of registers so that each set of registers, the arithmetic and logic unit and the main storage can process a respective task currently assigned to the latter set of registers when its priority is highest,
in combination with said register sets, storage, control circuits, program means and priority/interrupt controls, a method of executing one machine level task instruction to assist the dispatching of tasks, comprising maintaining in main storage areas a task address and status block (LSB) for each task for which execution is to be initiated or continued, fetching from main storage the LSB of a selected task and storing the fetched LSB in the register set of a selected level, determining the in-process status of the selected task and the relative priority levels on which said one instruction of a current task is being executed and on which the selected task is intended for execution, and executing one of the following mutually exclusive steps in response to said in-process status and said relative priority levels: -
a. initiating the execution of the selected task when the in-process status is "on" and the priority level of the selected task is higher than that of the current task, b. enqueueing the selected task and continuing execution of the current task when the in-process status data is "on" and the priority level of the current task is higher than that of the selected task, c. changing from execution of the current task to execution of the selected task on the same priority level when the in-process states data is "on" and the selected and current priority levels are the same, d. continuing execution of the current task and maintaining the selected task suspended when the in-process status data is "off" and the priority level of the selected task is higher than that of the current task, e. continuing execution of the current task and suspending the selected task when the in-process status data is "off" and the priority level of the current task is higher than that of the selected task, f. suspending execution of the current task, examining the priority/interrupt controls for tasks pending on other levels and initiating execution of the highest priority pending task if one or more tasks are pending.
-
Specification