Hi.

the questions about scheduling in the archive were actually asked by a student of mine for his Bachelor's thesis.

So, to make some points more clear:
1) You always need to implement a kind of fixed-priority scheduling (NED, MOE, etc. depend on this)
2) A possible combination is fp_edf (see archive post)
2.1) EDF as a standalone global scheduler (GEDF) is not feasible
3) Fiasco.OC is preemptive (don't try to make it non-preemptive)
4) It is possible to allocate one running queue to one core (kind of partitioned scheduling)
4.1) You can implement different scheduling strategies on different cores (very cool multicore support)
4.2) Maybe you can try to implement background servers (FP global and EDF/RM/... local)
5) Threads can be rebound to tasks at run-time (also a cool feature)
5.1) You can move threads from one task to another (sure the tasks need to be similar)
6) I also guess that you can push and pop your threads in and out of your running queue at runtime
6.1) Also, you can move a thread (e.g. deadline-based) from one running queue to another (both rqs need to be scheduled by the same strategy)

For more details see the formerly mentioned post.

For your next steps it could be important to outline the relations between Tasks, Threads and SchedContext ;)

Best regards.
Daniel Krefft

Am 29.05.15 um 11:27 schrieb Vasily A. Sartakov:
Greetings.

Please have a look into archives:

http://archive.tobiassturm.de/l4hackers/Adding-a-new-scheduling-algorithm-to-Fiasco-OC.html


I'm a student at the university of Antwerp and I'm currently working on
my master's thesis. My project is about comparing the performance of
a few global multicore scheduling algorithms (G-RM, G-EDF, ...) on
an embedded system. A part of my thesis is to make an implementation
on a real embedded system equipped with a quadcore processor (i.MX6).
To do that I need an RTOS. Fiasco with the l4re at a first sight seems
an interesting candidate.
What do you mean by «RTOS» (please, do not tell real time operating system). How you distinct real time and not real time os? Btw, Fiasco (here) and Fiasco.OC (in the title of mail) are different projects.

To test the performance of the above algorithms I will schedule a bunch
of randomly generated tasksets comprising some periodic tasks having
implicit deadlines* with each of the algorithms and try to detect if any
deadlines are missed.

* Such a task is executed repeatedly after a fixed amount of time and its
deadline is equal to its period, which is the point of time when the next
invocation of the task takes place.

This brings me to my first question:
Would this be achievable with the fiasco kernel?

I've been trying to interpret the project of the fiasco kernel during the
last days, but this seems easier said than done. As a first step I've been
trying to figure out how the scheduler works and how exactly the
scheduling policies are implemented. (I have read somewhere the
current scheduling policy is fixed priority round robin)

Is there perhaps a more documented version of the code or an
overview of the different classes, their functions and the way they
interact available? It's really hard to figure out a bunch of code
without any leads on how exactly the project has been implemented.

Besides that I don't really have a clue about how to start developing
on the fiasco kernel. Some tips about how to start working on the kernel
are always welcome.

Has anyone got experience with developing on the fiasco kernel?
It would be nice to get some directions on this matter because I'm
quite stuck on this.
This video (and some other videos) can help you:

https://www.youtube.com/watch?v=SyOcmVamsmI


--
Vasily A. Sartakov
sartakov@ksyslabs.org






_______________________________________________
l4-hackers mailing list
l4-hackers@os.inf.tu-dresden.de
http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers

-- 
*****************************************************************
* Daniel Krefft M.Sc.
*
* T: +49-89-289-18791
*
*
* Technische Universitaet Muenchen
* Fakultaet fuer Informatik - F13  (Prof. Baumgarten)
* Boltzmannstr. 3
* D-85748 Garching bei Muenchen
* Germany
*****************************************************************