The implementation of CPU reservation server

Sean sean0920 at
Mon Jun 1 19:54:49 CEST 2009


Thanks for your reply!

On Mon, Jun 1, 2009 at 8:46 PM, Udo A. Steinberg <udo at> wrote:

> On Mon, 1 Jun 2009 20:03:49 +0800 Sean (S) wrote:
> S> I already go through your diploma thesis. This thesis describes the
> design
> S> issues and implementation detail of the Periodic Mode support for
> Fiasco.
> S> If I don't want to control thread execution with periods, deadlines and
> S> etc. , how can I implement the functionality I mentioned?
> S>
> S> My goal is that
> S>
> S> In the system, there are several user threads. During a time interval,
> S> some particular user threads will not be scheduled even though these
> S> threads are in ready state.
> In Fiasco all threads in the ready state are eligible for execution. In
> fact, the ready state means that the thread is only waiting to be
> dispatched
> by the scheduler. So if you don't want a thread to be scheduled, it must
> not
> be in the ready state.

> S> How can I implement it? Does any exist function/API support it?
> Before we can give you a definite answer, we need to know why you don't
> want a particular thread to be scheduled. Here are some questions:
> 1) What is the event that makes an otherwise ready thread ineligible to
> execute (according to your use case)?

> 2) What is the event that makes it eligible for scheduling again?

I want to build another scheduling framework in Fiasco.
I will design a control server (scheduler) here, and it will plan a time
schedule for all user threads to determine in which time, which user threads
can be scheduled.

For example, there are 7 user threads in the system. I group them into three
Group A : user thread 1, 2, 3
Group B : user thread 4, 5
Group C : user thread 6, 7

If Group A is eligible in the time interval {0~3 }, Group B is {3~4}, and
Group C is {5~8}.

At time 0, the user thread 4, 5, 6, 7 might be in the ready state but the
system scheduler can't schedule them to execute. In other word, the user
thread 1, 2, 3 are eligible and the user thread 4, 5, 6, 7 are ineligible
during time 0 to time 3. So at time 3, the user thread 1, 2, 3, 6, 7 will
change to be ineligible and user thread 4, 5 will be eligible.

I also need to consider how to implement a precise time interval and other
issues about the control server design. But in first, I want to find some
way to implement the behavior of marking the user threads ineligible.

> Without answers to these questions we cannot tell you what API you might be
> able to use or how you would have to implement such a mechanism yourself.
> Cheers,

Sorry for my poor English and lengthy question.
Very thanks for your kindness!

>        - Udo
> _______________________________________________
> l4-hackers mailing list
> l4-hackers at
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the l4-hackers mailing list