Apparatus for synchronizing and allocating processes among several processors of a data processing system
First Claim
1. A data processing system comprising plural individual data processors, a main memory for storing processes to be executed by the data processors, a process control block being stored in the main memory for each process, the process control block including:
- for each process (a) a priority level, (b) a status indicator, (c) a start address in the main memory, and (d) the value of a process instruction count indicative of an execution point in the process where the process was previously interrupted, the main memory including for each processor (a) a status indicator and (b) address field, the main memory including plural areas for storing the processes in waiting queues, the storing areas being arranged in priority levels. the storing areas in like priority levels being linked together. each storing area having data assembled in a format to indicate (a) an address of a following process link in the waiting queue, (b) the priority of the process, (c) the number of the process corresponding to the process link, and (d) a mask for each processor, means responsive to (1) the status indicators for the processors, (2) the address field, (3) masks for the processor and (4) the priority levels of processes in the main memory for calculating an allocation of the processes to the processors, means responsive to the calculated allocation for selectively interrupting a process being executed by a first processor, the first processor being the processor selected by the means for calculating, means responsive to the first processor being interrupted for transferring all signals for the process being executed by the first processor from the first processor to the main memory so that the main memory stores (1) interrupted process, (2) the interrupted process status indicator, and (3) the instruction count of the interrupted process in the first processor, and means for transferring signals for the interrupting process from the main memory to the first processor so that the first processor begins executing the interrupting process at the instruction of the interrupting process indicated by the value of the instruction count of the interrupting process when the interrupting process was previously interrupted.
1 Assignment
0 Petitions
Accused Products
Abstract
Applicant processes to be performed on several processors in a data processing system are synchronized and allocated. The data processing system includes plural processors, each of which derives a control signal indicating that an event has occurred which requires a change in the status of the system, as well as registers for storing signals indicative of a process being executed by the processor. A memory common to the processors is selectively coupled to the processors via a bus. A circuit connected to the memory, the bus and selectively coupled to the processors selectively couples signals between a selected processor and the memory via the bus. The applicant processes are allocated and synchronized by a first circuit responsive to the control signal that allocates one of the processors to an applicant process and by second circuit that couples signals for the process being executed by the allocated processor at the time the control signal is coupled to the allocated process from the registers of the allocated processor to the memory via the data bus which thereafter couples signals for the applicant process from the memory to the registers of the allocated processors via the bus.
-
Citations
11 Claims
-
1. A data processing system comprising plural individual data processors, a main memory for storing processes to be executed by the data processors, a process control block being stored in the main memory for each process, the process control block including:
- for each process (a) a priority level, (b) a status indicator, (c) a start address in the main memory, and (d) the value of a process instruction count indicative of an execution point in the process where the process was previously interrupted, the main memory including for each processor (a) a status indicator and (b) address field, the main memory including plural areas for storing the processes in waiting queues, the storing areas being arranged in priority levels. the storing areas in like priority levels being linked together. each storing area having data assembled in a format to indicate (a) an address of a following process link in the waiting queue, (b) the priority of the process, (c) the number of the process corresponding to the process link, and (d) a mask for each processor, means responsive to (1) the status indicators for the processors, (2) the address field, (3) masks for the processor and (4) the priority levels of processes in the main memory for calculating an allocation of the processes to the processors, means responsive to the calculated allocation for selectively interrupting a process being executed by a first processor, the first processor being the processor selected by the means for calculating, means responsive to the first processor being interrupted for transferring all signals for the process being executed by the first processor from the first processor to the main memory so that the main memory stores (1) interrupted process, (2) the interrupted process status indicator, and (3) the instruction count of the interrupted process in the first processor, and means for transferring signals for the interrupting process from the main memory to the first processor so that the first processor begins executing the interrupting process at the instruction of the interrupting process indicated by the value of the instruction count of the interrupting process when the interrupting process was previously interrupted.
-
2. A data processing system for executing several processes comprising several individual processors susceptible of having different states, a memory, means including transmission channel for selectively connecting each processor to the memory, the memory storing an execution allocation of the processes to the processors, the allocation of the processes to the processor being susceptible to changes in state, means coupled to the memory for controlling the allocation of the plural processes susceptible for execution by said processors, means included in each processor and coupled via the channels to the means for controlling the allocation and to the other processors for selecting particular processors of the system to perform said allocation of the plural processes susceptible for execution by said processors, said selecting means of each processor including:
- first signal deriving means, said first signal deriving means being coupled via the channels to the means for controlling the allocation and responding to a change in allocation state of the processes of the system awaiting execution and for storing an indication of the change of allocation state, said first signal deriving means also being coupled to the processors via the channels and being responsive to a change in operating state of the processors to authorize the processor which changed operating state to execute the allocation of the plural processes susceptible for execution by several processors to the processors of the system, a second signal deriving means coupled via the channels to be responsive to the system processors for storing an indication that said allocation is already being performed by any processor, the first signal deriving means being connected to be responsive to the indication stored by the second signal deriving means for preventing execution of the allocation of the plural processes susceptible for execution by said processors to the processors of the system.
- View Dependent Claims (3, 4, 5, 6, 7, 8, 9, 10, 11)
Specification