OPERATING SYSTEM: DESIGN AND IMPLEMENT FINAL PROPOSAL SCHEDULER 周長毅, 周榆豐
Outline Motivation Purpose Theory O(1) Scheduler CFS, Complete Fair Scheduler BFS, Brain Fuck Scheduler Testing - Linux Result
Motivation Wish to enhance smartphone’s performance by modifying operating system’s kernel. But we encountered some problem when patching kernel. So testing platform move to Linux on PC from Android on HTC Evo 3D. Still use regular benchmark to test performance.
Purpose More familiar with Operating System’s Scheduler we use in common. Compare the special feature, pros and cons in actual use.
Theory O(1) Scheduler CFS, Complete Fair Scheduler BFS, Brain Fuck Scheduler
O(1) Scheduler ActiveExpired Task1 Task2Task3 Task4Task5Task6 Go to Blank Page
CFS Go to Blank Page
BFS Key Point : jiffies + (prio_ratio * rr_interval) Go to Blank Page
Testing – Machine Testing Machine : CPU = Intel Xeon E v2 (3.3GHz, 4C8T) RAM = 8GB DDR x4 MB = Gigabyte GA-PH67-UD3-B3 HDD = Hitachi HDS723020BLA642 (2TB 7200rpm) Virtual Machine software = Vmware Player Testing Software = Phoronix Test Suite v5.2.0 8 threads and 12GB RAM are allocated for guest system
Testing – How to play with BFS? You need to prepare Kernel Source Code from kernel.org BFS patch that support your kernel’s version from BFS’s author. Other component you need to compile Linux kernel. Time, of course.
Testing – How to play with BFS? Use “Patch” command to patch BFS into kernel. You will see option about BFS in “make menuconfig” if no error is encountered.
Testing – How to play with BFS? If you encountered errors you may see like this. That’s why we can’t test on HTC Evo 3D. But some foreign programmer DID this on other Android devices. And the most exaggerated is you can’t patch the kernel version on kernel.org.
Testing – Testing software Becouse we are not familiar with Linux and don’t know how to benchmark in Linux, so we use “Phoronix Test Suite” to benchmark. “Phoronix Test Suite” has tons of options we can choose, but we don’t know So we use ”Run Complex System Test” in main menu to benchmark
Testing – Testing option In ”Run Complex System Test”, it will benchmark 4 item, they are: PostMark: Simulate a small server and test about it. RAMspeed SMP: Benchmark the memory bandwidch. C-Ray: Bench the performance of CPU’s flouting point calculation. Apache Benchmark: Simulate some environments and test the response performance about Apache.
Result Completely Fair SchedulerBrain Fuck Scheduler
Result But CFS’s performance is 32% highter than BFS in “Apache Benchmark” BFS’s performance is 11% highter than CFS in “PostMark”.
END That’s all.
O(1)O(1) CFS BFSCFSBFS