Patent ID: 7810094

Claim:
A method of scheduling a set of processes in a multiprocessing system, the method comprising executing a plurality of symmetric schedulers on respective processors of the multiprocessing system, wherein each scheduler performs the steps of: (i) periodically accessing a lock shared by the schedulers to obtain exclusive access to a scheduling data structure shared by the schedulers, the scheduling data structure including (a) process information identifying the processes to be scheduled, and (b) scheduling information reflecting the executability and relative priorities of the processes; (ii) only upon obtaining such exclusive access to the scheduling data structure, performing a scheduling routine including: (a) utilizing the scheduling information and a predetermined round-robin scheduling algorithm to identify a next executable one of the processes, if any; and (b) upon identifying such a next executable one of the processes, (1) activating the identified process to begin executing on the processor on which the scheduler is executing, and (2) updating the scheduling information to reflect the activation of the identified process, wherein updating the scheduling information includes changing the value of a process pointer associated with the processor on which the scheduler is executing to point to the activated process; and (iii) upon completing the scheduling routine, accessing the lock to relinquish exclusive access to the scheduling data structure.