Re: Adding a new scheduling algorithm to Fiasco.OC
Valentin Hauner <[email protected]>
| Newsgroups | gmane.comp.micro-kernel.l4.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi, I've added a new config directive for 'sched_edf' to the Modules.* files in 'kernel/fiasco/src', that is: PREPROCESS_PARTS-$(CONFIG_SCHED_EDF) += sched_edf This enables the user to compile the kernel with EDF scheduling when setting this directive, right? I want to implement the preemptive EDF algorithm, i.e. any running task must be preempted if a new task with a shorter deadline arrives. dominates() from sched_context-edf.cpp and next_to_run() from ready_queue_edf.cpp are designed to choose the one with the shortest deadline, but how can I tell Fiasco to act preemptive? Thanks in advance! Best regards, Valentin On 06/13/2014 10:01 PM, Adam Lackorzynski wrote: > Hi, > > On Thu Jun 12, 2014 at 16:29:43 +0200, Valentin Hauner wrote: > >> I'm planning to add a new scheduling algorithm to Fiasco.OC. I will >> implement EDF. >> First of all, is there some handout written by you main developers that >> copes with the issues of implementing EDF in Fiasco.OC? >> > No, there's no such memo. > > >> What I've achieved so far: >> I've created the files sched_context-edf.cpp and ready_queue_edf.cpp in >> ./kernel/fiasco/src/kern, using the corresponding source files for your >> fixed-priority scheduler as templates. >> I've named the config directive used in ./kernel/fiasco/src/Modules.* >> files analogous to yours, that is 'sched_edf' in my case. >> Now, I'm beginning to modify sched_context-edf.cpp and >> ready_queue_edf.cpp to fit the requirements of EDF, especially the en- >> and dequeuing as well as the 'dominates' method. >> >> Are there any other major source files that I do have to alter? >> > That looks good. You should look at the wfq files as those already > implement an algorithm that is quite close to EDF. > > > > Adam >