Dual level scheduling of processes to multiple parallel regions of a multi-threaded program on a tightly coupled multiprocessor computer system
First Claim
1. In an operating system having a plurality of shared storage resources accessible by a plurality of processors for running a multithreaded program, a two level scheduling method of executing said multithreaded program, comprising the steps of:
- (a) assigning program threads of said multithreaded program to processes;
(b) storing in a first shared storage resource context for executing said processes corresponding to said program threads;
(c) queuing in a second shared storage resource a value representing the number of said program threads in said multithreaded program to be executed;
(d) determining that a processor is available to execute a process having context stored in said first shared storage resource; and
(e) scheduling said processes for execution by said processors, comprising the steps of;
scanning by said available processor a queue in said second shared storage resource to respond to a positive value in said second shared storage resource;
decrementing said second shared storage resource value using said available processor; and
accessing contents of said first shared storage resource corresponding to said scan for initiating execution, using said available processor, of a process associated with accessed context.
6 Assignments
0 Petitions
Accused Products
Abstract
On a tightly coupled multiprocessor computer system, the multiple parallel regions of a multithreaded applications program can execute simultaneously as multiple threads on a plurality of processors. Furthermore, a plurality of multithreaded programs may run simultaneously. The current invention uses an efficient system to schedule and reschedule processors to run these multiple threads. Scheduling is integrated at two levels: at the first level, processors are assigned processes. At the next level, processes are assigned threads. Increased efficiency is achieved by this integration and also by the formation of processes with destructible context. It makes use of shared storage to indicate the process request level and the control state for each parallel region.
-
Citations
4 Claims
-
1. In an operating system having a plurality of shared storage resources accessible by a plurality of processors for running a multithreaded program, a two level scheduling method of executing said multithreaded program, comprising the steps of:
-
(a) assigning program threads of said multithreaded program to processes; (b) storing in a first shared storage resource context for executing said processes corresponding to said program threads; (c) queuing in a second shared storage resource a value representing the number of said program threads in said multithreaded program to be executed; (d) determining that a processor is available to execute a process having context stored in said first shared storage resource; and (e) scheduling said processes for execution by said processors, comprising the steps of; scanning by said available processor a queue in said second shared storage resource to respond to a positive value in said second shared storage resource; decrementing said second shared storage resource value using said available processor; and accessing contents of said first shared storage resource corresponding to said scan for initiating execution, using said available processor, of a process associated with accessed context. - View Dependent Claims (2, 3, 4)
-
Specification