Method and apparatus for scheduling tasks
First Claim
Patent Images
1. A computerized method for queuing tasks, comprising:
- providing a first primary scheduler queue;
selecting a non-zero threshold time for said first primary scheduler queue;
providing a first secondary scheduler queue;
selecting a threshold time for said first secondary scheduler queue, wherein said threshold time for said first secondary scheduler queue is greater than said threshold time for said first primary scheduler queue;
receiving a first task;
determining a scheduled time for said first task, wherein said scheduled time is a time interval;
in response to said scheduled time for said first task not exceeding said threshold time for said first primary scheduler queue, placing said first task in said first primary scheduler queue;
determining whether said scheduled time associated with said first task or a scheduled time associated with another task in said first primary scheduler queue has expired;
in response to said scheduled time associated with said first task or said another task expiring, delivering said first task or said another task to a resource;
receiving a second task;
determining a scheduled time for said second task, wherein said scheduled time is a time interval;
in response to said scheduled time for said second task exceeding said threshold time for said first primary scheduler queue, placing said second task in said first secondary scheduler queue;
storing a record of a time to a next scheduled task stored in said first secondary scheduler queue;
decrementing said scheduled time associated with each of said scheduled tasks stored in said first secondary scheduler queue;
in response to said time to a next scheduled task stored in said first secondary scheduler queue being one of less than or equal to said threshold time for said first primary scheduler queue, scanning said first secondary scheduler queue for at least one task having a scheduled time at least one of less than said threshold time for said first primary scheduler queue and equal to said threshold time for said first primary scheduler queue; and
moving said at least one task having a scheduled time at least one of less than said threshold time for said first primary scheduler queue and equal to said threshold time for said first primary scheduler queue from said first secondary scheduler queue to said first primary scheduler queue.
24 Assignments
0 Petitions
Accused Products
Abstract
A scheduler system for use in connection with a resource allocation system is provided. According to the present invention, a plurality of queues are provided for scheduling the delivery of tasks or events to a resource. Each of the provided queues may have a different threshold time, allowing the queues to be segmented according to the time values of included tasks. In accordance with an embodiment of the present invention, a primary queue comprising a delta queue is provided for tasks that are to be performed during a first period of time, while one or more secondary scheduler queues are provided for tasks that are scheduled to be performed after the first period of time.
-
Citations
16 Claims
-
1. A computerized method for queuing tasks, comprising:
-
providing a first primary scheduler queue; selecting a non-zero threshold time for said first primary scheduler queue; providing a first secondary scheduler queue; selecting a threshold time for said first secondary scheduler queue, wherein said threshold time for said first secondary scheduler queue is greater than said threshold time for said first primary scheduler queue; receiving a first task; determining a scheduled time for said first task, wherein said scheduled time is a time interval; in response to said scheduled time for said first task not exceeding said threshold time for said first primary scheduler queue, placing said first task in said first primary scheduler queue; determining whether said scheduled time associated with said first task or a scheduled time associated with another task in said first primary scheduler queue has expired; in response to said scheduled time associated with said first task or said another task expiring, delivering said first task or said another task to a resource; receiving a second task; determining a scheduled time for said second task, wherein said scheduled time is a time interval; in response to said scheduled time for said second task exceeding said threshold time for said first primary scheduler queue, placing said second task in said first secondary scheduler queue; storing a record of a time to a next scheduled task stored in said first secondary scheduler queue; decrementing said scheduled time associated with each of said scheduled tasks stored in said first secondary scheduler queue; in response to said time to a next scheduled task stored in said first secondary scheduler queue being one of less than or equal to said threshold time for said first primary scheduler queue, scanning said first secondary scheduler queue for at least one task having a scheduled time at least one of less than said threshold time for said first primary scheduler queue and equal to said threshold time for said first primary scheduler queue; and moving said at least one task having a scheduled time at least one of less than said threshold time for said first primary scheduler queue and equal to said threshold time for said first primary scheduler queue from said first secondary scheduler queue to said first primary scheduler queue. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. An event scheduler device, comprising:
-
a processor; memory, including; a first primary scheduler queue; a first secondary scheduler queue, wherein a first received task having a first scheduled time less than a first threshold is placed in said first primary scheduler queue, wherein said first scheduled time is a time interval, wherein said first threshold is greater than zero, wherein a second received task having a second scheduled time greater than said first threshold is placed in said first secondary queue, wherein said scheduled time of said second received task is maintained by a timer, wherein scheduled times of tasks placed in said first secondary queue are periodically decremented, wherein in response to said scheduled time value of said second received task as maintained by said timer dropping below said first threshold time said second received task is moved from said first secondary scheduler queue to said first primary scheduler queue; and a communication channel, wherein at least one of said first received task and said second received task is delivered to a resource from said first primary scheduler queue using said communication channel in response to at least one of said first scheduled time and said second scheduled time reaching a value of zero. - View Dependent Claims (9, 10, 11)
-
-
12. A computational component including instructions stored in memory that are executable by a processor for performing a method, the method comprising:
-
providing a primary queue and a secondary queue; selecting a non-zero threshold time for said primary queue; receiving a first task; determining a scheduled time associated with said first task, wherein said scheduled time associated with said first task is a time interval; in response to said scheduled time associated with said first task having a value that is less than a threshold time of said primary queue, placing said first task in said first primary queue; in response to said scheduled time associated with said first task having a value that is greater than a threshold time of said primary queue, placing said first task in said secondary queue; storing a time equal to a scheduled time of a task stored in said secondary queue having a next time to expire; decrementing said scheduled time associated with said first task and any other task placed in said secondary queue; in response to said stored time equaling a first value, scanning said secondary queue for said task having a next time to expire; and moving said task having a next time to expire to said primary queue. - View Dependent Claims (13, 14, 15)
-
-
16. A resource allocation system having a processor, comprising:
-
means for receiving events; first means for queuing a plurality of events having a time for performing an associated task that is less than a non-zero threshold amount for said first means for queuing; second means for queuing a plurality of events; means for determining a time associated with an event, wherein said time associated with an event is a time interval, wherein a received event is placed in one of said first means for queuing and said second means for queuing based on said determined time associated with said event; means for monitoring a time to expire of a next event in said first means for queuing a plurality of events to expire; and means for moving an expired event from said first means for queuing to resource means; means for decrementing said time associated with an event placed in said second means for queuing; means for monitoring said time associated with a next event in said second means for queuing a plurality of events; and means for moving an event having a time to expire of less than a first selected value from said second means for queuing to said first means for queuing.
-
Specification