1. A method of scheduling a plurality of tasks for execution on one or more processors, comprising: maintaining a data structure having a plurality of period nodes, where each period node references a work queue from among a plurality of work queues and each work queue includes a set of tasks and is defined by an execution period at which to run the respective set of queued tasks; wherein execution priority of each task is based on assigned execution periods and the plurality of period nodes are arranged in a hierarchical order based on the assigned execution periods; obtaining a counter value of a counter that indicates a time period; traversing the data structure to determine an execution period for each work queue of the plurality of work queues; comparing the counter value to an execution period of the respective work queue; 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.