US2008271029A1PendingUtilityA1

Thread Scheduling with Weak Preemption Policy

53
Assignee: IBMPriority: May 2, 2002Filed: Jul 7, 2008Published: Oct 30, 2008
Est. expiryMay 2, 2022(expired)· nominal 20-yr term from priority
G06F 9/4881
53
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Thread scheduling with a weak preemption policy is provided. The scheduler receives requests from newly ready work. The scheduler adds a “preempt value” to the current work's priority so that it is somewhat increased for preemption purposes. The preempt value can be adjusted in order to make it more, or less, difficult for newly ready work to preempt the current work. A “less strict” preemption policy allows current work to complete rather than interrupting the current work and resume it at a later time, thus saving system overhead. Newly ready work that is queued with a better priority than the current work is queued in a favorable position to be executed after the current work is completed but before other work that has been queued with the same priority of the current work.

Claims

exact text as granted — not AI-modified
1 . An information handling system comprising:
 one or more processors;   a memory accessible by the processors;   an operating system that manages the processors, the operating system including a scheduler;   a preemption tool for preempting tasks performed by one of the processors, the preemption tool including instructions that perform steps comprising:
 configuring, by a user of the information handling system, a preempt value, and storing the preempt value in the memory; 
 receiving, from the user, a range of priorities selected from a plurality of possible priorities, wherein task queuing is only performed when a new task priority and a current task priority are each within the range of priorities; and 
 after the configuring:
 receiving a request from a new task, wherein the new task includes the new task priority; 
 comparing the new task priority to the current task priority, the current task priority corresponding to a current task currently being serviced by the processor; 
 preempting the current task in favor of the new task in response to the new task priority being better than the current task priority by an amount greater than or equal to the preempt value; 
 queuing the new task in response to the new task priority not being better than the current task priority by the preempt value; 
 determining that the new task priority is better than the current task priority but not by the amount that is greater than or equal to the preempt value; and 
 queuing the new task in a favorable queue position in response to the determination, wherein the favorable queue position is in front of any queued tasks with worse priorities than the new task. 
 
   
   
   
       2 . The information handling system of  claim 1  wherein the user is a system administrator. 
   
   
       3 . The information handling system of  claim 1  further comprising:
 queuing the new task in a queue selected from a plurality of queues, wherein the plurality of queues correspond to a plurality of priorities and wherein the selected queue corresponds to the new task priority.   
   
   
       4 . A computer program product stored in a computer operable media for preempting tasks performed by a processor, said computer program product including instructions that, when executed by an information handling system, cause the information handling system to perform actions comprising:
 configuring, by a user of the computer system, a preempt value, and storing the preempt value in a memory accessible by the processor;   receiving, from the user, a range of priorities selected from a plurality of possible priorities, wherein task queuing is only performed when a new task priority and a current task priority are each within the range of priorities; and   after the configuring:
 receiving a request from a new task, wherein the new task includes the new task priority; 
 comparing the new task priority to the current task priority, the current task priority corresponding to a current task currently being serviced by the processor; 
 preempting the current task in favor of the new task in response to the new task priority being better than the current task priority by the preempt value; 
 queuing the new task in response to the new task priority not being better than the current task priority by the preempt value; 
 determining that the new task priority is better than the current task priority but not by the amount that is greater than or equal to the preempt value; and 
 queuing the new task in a favorable queue position in response to the determination, 
   wherein the favorable queue position is in front of any queued tasks with worse priorities than the new task.   
   
   
       5 . The computer program product of  claim 4  wherein higher priority numbers are better than lower priority numbers. 
   
   
       6 . The computer program product of  claim 4  wherein lower priority numbers are better than higher priority numbers. 
   
   
       7 . The computer program product of  claim 4  wherein the user is a system administrator. 
   
   
       8 . The computer program product of  claim 4  wherein the instructions, when executed by the information handling system, cause the information handling system to perform further actions comprising:
 queuing the new task in a queue selected from a plurality of queues, wherein the plurality of queues correspond to a plurality of priorities and wherein the selected queue corresponds to the new task priority.   
   
   
       9 . The computer program product of  claim 8  wherein the instructions, when executed by the information handling system, cause the information handling system to perform further actions comprising:
 selecting a queued task from the highest priority queue that is not empty in response to the processor no longer servicing the current task.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.