Affinity scheduling of processes on symmetric multiprocessing systems
AssigneeDigital Equipment Corporation
InventorsKenneth D. Abramson, H. Bruce Butts, Jr., David A. Orbits
Life of this patent
Estimating the term…
Loading patent…
AssigneeDigital Equipment Corporation
InventorsKenneth D. Abramson, H. Bruce Butts, Jr., David A. Orbits
Estimating the term…
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 threshold (e.g., 0) are identified as old. Old processes then are identified as large or small processes based on their memory usage. Next, a determination is made of whether the small and large process load balances of the system can be improved. If either or both can be improved, the smallest small and/or the smallest large processes are migrated from their assigned CPU to the CPU with, as the case may be, the least large or the least small processes.
A method of affinity scheduling and context switching processes to be run on the CPUs of a multiprocessing system, said method comprising the steps of:
A method of affinity scheduling and context switching process to be run on the CPUs of a multiprocessing system, said method comprising the steps of:
A method of affinity scheduling and context switching processes to be run on the CPUs of a multiprocessing system, said method comprising the steps of:
A method of affinity scheduling processes to be run on the CPUs of a multiprocessing system, said method comprising the steps of:
Dependencies are inferred from the claim text.