Re: [PATCH] O16int for interactivity

Timothy Miller
2003-08-18T15:30:44Z

Con Kolivas wrote:

>>
>>A hardware timer interrupt happens at timeslice granularity. If the
>>interrupt occurs, but the timeslice is not expired, then NORMALLY, the
>>ISR would just return right back to the running task, but sometimes, it
>>might decided to end the timeslice early and run some other task.
>>
>>Right?
>
>
> No, the timeslice granularity is a hard cut off where a task gets rescheduled
> and put at the back of the queue again. If there is no other task of equal or
> better priority it will just start again.

Hmmm... I'm still having trouble making sense of this.

So, it seems that you're saying that all tasks, regardless of timeslice
length, are interrupted every 10ms (at 100hz). If another task exists
at a higher priority, then it gets run at that point. However, if there
is more than one task at a given priority level, then they will not
round-robin until the current task has used up all of its timeslice
(some integer multiple of 10ms).

Am I finally correct, or do I still have it wrong? :)