Methods and computer-executable components for real-time scheduling of CPU
resources are disclosed. A performance counter determines when to allocate CPU
resources to a thread. When it is time to allocate the CPU resources, the performance
counter issues a maskable or non-maskable interrupt to an advanced programmable
interrupt controller (APIC). The APIC then issues a maskable non-maskable interrupt
to the CPU. In response to receiving the non-maskable interrupt, the CPU allocates
resources to the thread. In addition, the disclosed methods and computer-executable
components also: (a) allow scheduling of CPU resources such that real-time threads
are guaranteed respective portions of time slots, (b) enable real-time scheduling
on a non-real-time operating system, and (c) provide scheduling of CPU resources
on a uni-processor machine such that at least first and second real-time threads
dependent on one another are synchronized.