1. A method of scheduling a plurality of tasks for execution on one or more processors, comprising: obtaining a counter value of a counter; for each work queue of a plurality of work queues, comparing the counter value to an execution period of the respective work queue, each work queue including a set of tasks and being defined by an execution period at which to run the respective set of queued tasks; selecting, based on the comparing, a subset of the plurality of work queues; and scheduling a set of tasks queued in a selected work queue for execution on one or more processors before a set of tasks queued in a non-selected work queue.