Indelicate kernel question :)

Hello folks,

This is more likely a question for QNX4 kernel developers - a customer
confused me a bit with it, trying last resort - does anyone know that?
:slight_smile:

Let’s imagine that one of several same-priority processes which have a
round-robin scheduling asinged to them is pre-empted by a higher
priority process in the middle of its timeslice. When it gets the CPU
back, will it get the rest of the interrupted timeslice, or a new
whole one?

A bit weird question, but I got really curious about that myself. :slight_smile:)

Thanks a bunch.

  • Nick

Nikolai Gorbunov <n.gorbunov@swd.ru> wrote:

Hello folks,

This is more likely a question for QNX4 kernel developers - a customer
confused me a bit with it, trying last resort - does anyone know that?
:slight_smile:

Let’s imagine that one of several same-priority processes which have a
round-robin scheduling asinged to them is pre-empted by a higher
priority process in the middle of its timeslice. When it gets the CPU
back, will it get the rest of the interrupted timeslice, or a new
whole one?

My understanding is that it gets the rest of the pre-empted timeslice.
If it didn’t, it could end up running forever, and that would be bad.

A bit weird question, but I got really curious about that myself. > :slight_smile:> )

Not all that weird.

-David

QNX Training Services
dagibbs@qnx.com

So if it is interrupted after 9/10ths of its time slice, when it is
rescheduled how do you give it 1/10th of a time slice?

Any why?

David Gibbs <dagibbs@qnx.com> wrote in message
news:93kobp$jbt$1@nntp.qnx.com

Nikolai Gorbunov <> n.gorbunov@swd.ru> > wrote:
Hello folks,

This is more likely a question for QNX4 kernel developers - a customer
confused me a bit with it, trying last resort - does anyone know that?
:slight_smile:

Let’s imagine that one of several same-priority processes which have a
round-robin scheduling asinged to them is pre-empted by a higher
priority process in the middle of its timeslice. When it gets the CPU
back, will it get the rest of the interrupted timeslice, or a new
whole one?

My understanding is that it gets the rest of the pre-empted timeslice.
If it didn’t, it could end up running forever, and that would be bad.

A bit weird question, but I got really curious about that myself. > :slight_smile:> )

Not all that weird.

-David

QNX Training Services
dagibbs@qnx.com

Bill at Sierra Design <BC@sierradesign.com> wrote:

So if it is interrupted after 9/10ths of its time slice, when it is
rescheduled how do you give it 1/10th of a time slice?

Well, the resolution may not make it down to the 9/10 vs 1/10 – depending
on the relationship between the timeslice and the ticksize. (The OS can
only see time in units of a tick.)

But, my understanding is that the OS does try to do this.

-David

QNX Training Services
dagibbs@qnx.com

I assume that means that if there was a fraction of a tick, then when the
higher priority process releases the processor then teh lower priority
process gets the remainder of the current tick.


David Gibbs <dagibbs@qnx.com> wrote in message
news:93lenp$2bh$1@nntp.qnx.com

Bill at Sierra Design <> BC@sierradesign.com> > wrote:
So if it is interrupted after 9/10ths of its time slice, when it is
rescheduled how do you give it 1/10th of a time slice?

Well, the resolution may not make it down to the 9/10 vs 1/10 – depending
on the relationship between the timeslice and the ticksize. (The OS can
only see time in units of a tick.)

But, my understanding is that the OS does try to do this.

-David

QNX Training Services
dagibbs@qnx.com