Hi,
I'm Erik Schierboom and I study at the Radboud University Nijmegen. Right now, I'm writing my master thesis, under supervision of Hendrik Tews, on the formal verification of a part of Fiasco's IPC implementation. I studied the thesis by René Reusner but I don't fully grasp the lazy-scheduling details. I have the following questions.
For one, the description says that the sender is not removed from the ready-list when the switch is made to the receiver (even though it is now in waiting status). However, as the sender is the active thread it is not part of the ready-list by definition (at least that is how I interpreted the system), so how could it be removed anyway?
Secondly, the switching from sender to receiver is simply an execution context switch. If the receiver finishes before the sender's time is up, does the receiver switch the execution context back to that of the sender?
With regards,
Erik
On Wed, 17 Jan 2007 12:51:35 +0100 eschierb@sci.kun.nl (EKN) wrote:
EKN> For one, the description says that the sender is not removed from EKN> the ready-list when the switch is made to the receiver (even EKN> though it is now in waiting status). However, as the sender is EKN> the active thread it is not part of the ready-list by definition EKN> (at least that is how I interpreted the system), so how could EKN> it be removed anyway?
I would suggest reading Section 3.3.1 of http://os.inf.tu-dresden.de/papers_ps/steinberg-diplom.pdf which describes and motivates the lazy-queueing invariant.
EKN> Secondly, the switching from sender to receiver is simply an EKN> execution context switch. If the receiver finishes before EKN> the sender's time is up, does the receiver switch the EKN> execution context back to that of the sender?
The kernel performs the execution context switch during IPC. If that's what you meant, then the answer to your question is "yes".
Cheers,
- Udo
l4-hackers@os.inf.tu-dresden.de