Robert Kaiser rob@sysgo.de writes:
I have a question regarding the default scheduling parameters of newly created tasks and lthreads under L4:
When I create a new task with the task_new syscall, according to the L4 manual, that task's lthread 0 starts running immediately.
But what are it's scheduling parameters (timeslice duration, priority) in this case ?
Similarly, when I create a new lthread with lthread_ex_regs, how are it's scheduling parameters determined ?
The parameters are inherited from the creating thread.
There usually is a way to change the parameters before the new thread starts running: Use the thread_schedule system call before serving the thread's first page fault.
Also, is it possible to set these parameters for an lthread that does not yet exist (The manual doesn't explicitly state this, but the fact that -conceptually- all lthreads of a task always exist would suggest that this is indeed possible) ?
Good question. I think this is not really defined in the manual. The current implementations don't support what you suggest; instead, the scheduling parameters are inherited from the creating thread once the new thread is ``really'' created.
Do you have an application where this behavior is a problem?
Michael