Re: [PATCH] O16int for interactivity

Nick Piggin
2003-08-18T22:47:07Z

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.