140 likes | 157 Views
This system by Akira Tsukamoto at NEC Corporation designs a WRR Scheduler to enable seamless task switching and execution even with real-time and normal tasks. The WRR Scheduler adjusts task execution time based on priority using O(1) algorithm. It enhances the Linux scheduler up to Kernel 2.4 while optimizing task queue management for FIFO, RR, and WRR tasks.
E N D
Akira Tsukamoto System Platform Laboratory NEC Corporation
Design of WRR Scheduler ■In the previous Linux scheduler, while the real time task (FIFO and RR) exist, the normal task (OTHER) is not selected at all (task switching does not occur and the OTHER task has to wait ). ■In the newly introduced WRR scheduler, the OTHER task is executed even when the WRR task exists. ■Round robin algorithm possible to adjust execution time per task according to the priority ■ The scheduler hasO(n) algorithm up to Kernel 2.4 ■In this method, when the WRR task exists, ■Realizes switching of OTHER and WRR task queues by O(1). ■Switches from the WRR task queue by O(1) when RR and FIFO tasks are inserted. ■The number of added codes is 200 lines or so ■Based on the scheduler of the Linux original algorithm up to Kernel 2.4 The method is explained referring the patch described later.
OTHER is executed
Process activation The bigger the figure, the longer the execution time of the corresponding task. Priority setting
Function to be called when calculating the task of high priority in runqueue (goodness value) For the WRR task, modifies to the non-calculation process because the goodness value is not required. Function to be called when the task in the sleep status is inserted into runqueue Added a counter to decide if the FIFO, RR, or WRR task exists or not by O(1). Function to be called at the time of actual task switching. See the detail in the following slide. Function to enforce task attribute (FIFO, RR, WRR) setting and priority setting Inserts wrr into wrr_runqueue when changing the normal task (OTHER) to WRR task. Function to operate newly set www_runqueue
excerpts or so
Checked the workings of task switching in the implemented WRR scheduler. Enforced tracing two WRR tasks by System Director Embedded.