L4 Fiasco's scheduling in Multi-Core

Björn Döbel doebel at os.inf.tu-dresden.de
Wed Mar 19 10:59:38 CET 2014

Hash: SHA1


> Suppose we have 2 cores (core 0 and core 1) and we have 2 tasks
> (task A and task B). And I assign all threads of task A to run in
> core 0 and all threads of task B to run in core 1. How L4 Fiasco's
> scheduler manages this? Will the tasks run together or they have to
> switch from one to another?
>> From what I understand, the tasks don't run together regardless
>> which core
> they are located, is it correct?

Fiasco's scheduler is only concerned with the threads you are running.
In your example, the threads of task A will be scheduled independently
from the threads of task B because they run on different cores. Each
core maintains a separate run queue. The scheduler schedules these
threads round-robin by their priority. If all your threads have the
same prio, CPU time will be distributed fairly among these threads.

Note that tasks in the L4 context are address spaces, i.e. what other
OSes would call processes. Do not confuse them with the term task as
it is used in real-time systems.

Kind regards,
Version: GnuPG v1
Comment: Using GnuPG with Icedove - http://www.enigmail.net/


More information about the l4-hackers mailing list