RE: What's the difference between Quantum and Timeslice ?
Bob <[email protected]> Fri, 19 Sep 2008 09:43:29 +0800
| Newsgroups | gmane.comp.micro-kernel.l4.l4ka.general |
|---|---|
| Message-ID | <[email protected]> |
Thanks Raphael. I have got there differences now. An addition question. In handle_timer_interrupt(schedule.cc), why useing (get_prio_queue(current)->current_timeslice -= get_timer_tick_length()) <= 0 to determine whether end of a thread's timeslice? Why not just use "(tcb->current_timeslice -= get_timer_tick_length) <= 0". So as in end_of_timeslice(): tcb->current_timeslice = prio_queue->current_timeslice + tcb->timeslice_length; prio_queue->current_timeslice = prio_queue->get(get_priority (tcb))->current_timeslice; Why there must a prio_queue->current_timeslice but not just use tcb->timeslice ? Thank you for you time! --- Best regards Bo Liu > Date: Thu, 18 Sep 2008 11:04:12 +0200 > From: [email protected] > To: [email protected]; [email protected] > Subject: Re: What's the difference between Quantum and Timeslice ? > > Hi Bob, > >> What's the difference between Quantum and Timeslice ? >> Timeslice is used for thread scheduler. Then Quantum used for what ? > > A new timeslice is allocated every time a thread is scheduled and (only) > serves to implement round-robin-scheduling: after at most "timeslice" > time, the thread is preempted and another thread can be scheduled. The > preempted thread may be scheduled again. > > The (total) quantum was intended to limit the total time the thread may > spend executing on any CPU. It is decreased every time a timer interrupt > occurs (just like timeslices are, see schedule.cc, > handle_timer_interrupt()), but never reset automatically (only via a > schedule syscall). Once a thread runs out of time (no quantum left), it > will not be scheduled again (a preemption IPC should be sent to its > scheduler, but that's disabled due to major problems, see scheduler.cc, > total_quantum_expired()). > > In short, the timeslice determines for how long a thread can > continuously occupy a CPU before being preempted, the quantum limits the > total time the thread may spend on the CPUs accumulated over all > occasions the thread was scheduled. > > Regards, > Raphael _________________________________________________________________ Discover the new Windows Vista http://search.msn.com/results.aspx?q=windows+vista&mkt=en-US&form=QBRE