Affinity scheduling of processes on symmetric multiprocessing systems
US5506987A · kind A · utility
Assignee
Inventors
Key dates
| Filing date | Mar 24, 1994 |
| Grant date | Apr 9, 1996 |
| Priority date | — |
| Expiry date | Mar 24, 2014 |
Classification
- Technology area (CPC G)Physics
- CPC primaryG06F9/5033
- WIPO fieldComputer technology
- WIPO sectorElectrical engineering
Abstract
A method of scheduling processes on a symmetric multiprocessing system that maintains process-to-CPU affinity without introducing excessive idle time is disclosed. When a new process is assigned, the process is identified as young and small, given a migtick value and assigned to a specific CPU. If the priority of a process placed on a run queue is above a threshold, the high priority count of the assigned CPU is incremented. At predetermined clock intervals, an interrupt occurs that causes the migtick value of running processes to be decremented. Then each CPU is tested to determine if its high priority count is greater than zero. CPUs having high priority counts greater than zero are tested to determine if any processes having a priority greater than the priority of the running process are assigned. If higher priority processes are assigned to a CPU having assigned processes lying above the threshold, a context switch takes place that results in the higher priority process being run. At regular intervals, a migration deamon is run to load balance the multiprocessor system. First, a large/small process threshold is determined. Then processes whose migtick values are below a migtick…
Source: USPTO / EPO open patent data. Objective bibliographic and citation counts.