Jump to content

Gang scheduling

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 129.110.241.39 (talk) at 07:59, 15 July 2005. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

Scheduling threads of a single process to run at the same time.

For medium grained applications this form of scheduling dramatically improves performance since a thread waiting on another thread need not wait for it to execute.

Possible approaches:

Uniform Division:

If there are M processes and N processors, give each process all N processors for 1/M amount of time.

Unfortunately, if for example there are two processes, one with 4 threads and one with 1 thread, then 3 CPUs are idle when the 1-thread process runs.

Division by Weights

In the above situation, let the 4-thread process have 4/5 of the time, and the 1-thread process 1/5 of the time.