Messages in this thread | | | Date | Tue, 19 Aug 2003 08:46:42 +1000 | From | Nick Piggin <> | Subject | Re: [PATCH] O16int for interactivity |
| |
Timothy Miller wrote:
> > > Nick Piggin wrote: > >>> If another task exists at a higher priority, then it gets run at >>> that point. >> >> >> >> >> Well loosely, yes. Actually, it happens if the task exists and is >> "running", >> and has timeslice left. > > >> That only happens in scheduler_tick when the current >> task has finished its timeslice and the priority arrays are about to be >> switched. > > > What only happens then?
The task being preempted.
> > I'm confused again. Are you talking about swapping the active and > expired arrays?
Yes.
> > Of course, all bets are off if the current task actually uses up it > whole timeslice. Then it's not being preempted in quite the same way.
OK ;)
> > So, then, if there are not tasks left in the active array, naturally, > the highest priority task from what was once the expired array will be > run, and that may be of higher priority. > > Is that what you're saying?
Yep.
> > > > The required conditions for preemption can also occur when a task > >> is being woken up, (after sleeping or newly forked). > > > This is the case that I was thinking of. No swapping of queues. It's > just that a higher priority task was sleeping (or not existing) which > could cause the current task to be preempted before its timeslice ends.
Yep.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |