scheduler: set pointer to point to first member in list
while RUNNING flag not set {
do { set RUNNING flag
if request count > 0 {
call function
decrement request count
}
clear RUNNING flag
} while request count > 0
point to next member in list
}
return from interrupt