Brain Fuck Scheduler

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Brain Fuck Scheduler
Maintainer Con Kolivas
Erscheinungsjahr September 2009
Aktuelle Version 0.449 für Linux 3.15.9
(3. Juli 2014)
Betriebssystem Linux
Programmier­sprache C
Lizenz GPL
kernel.kolivas.org

Der Brain Fuck Scheduler (BFS) ist ein Desktop-orientierter Prozess-Scheduler für den Linux-Kernel. Er wurde im August 2009 als Alternative zum Completely Fair Scheduler (kurz CFS) und dem O(1)-Scheduler entwickelt.[1] Das Ziel des BFS ist eine überragende Desktop-Interaktivität (desktop interactivity) und System-Reaktionsfähigkeit (responsiveness).[2]

BFS wurde von dem langjährigen Kernel-Entwickler Con Kolivas entwickelt[3] und verbessert berichtetermaßen das Reaktionsverhalten bei Linux-basierten Mobilgeräten mit light-NUMA-Architektur (Non-Uniform Memory Architecture) und Desktop-Rechnern mit weniger als 16 Kernen.

Kurz nach seiner Einführung sorgte der neue Scheduler in der Linux-Gemeinde für Schlagzeilen unter anderem mit Berichten auf der Frontseite von Slashdot[4], im Linux Magazine[5] und Linux Pro Magazine.[1]

Der BFS hat keine direkte Beziehung zur Programmiersprache Brainfuck.

Funktionsweise[Bearbeiten]

Der Brain Fuck Scheduler orientiert sich beim Verteilen von Rechenzeiten am CFS. Allerdings beeinflussen beim CFS auch die am Prozess gemessenen Ruhepausen der Vergangenheit die Entscheidung, wie lange eine Zeitscheibe für den Prozess in der Zukunft dauern wird. Gerade bei leistungsschwacher Hardware, wie beispielsweise Mobiltelefonen, kann dies für die Benutzereingaben hinderlich sein. Wenn zu viele Ruhezeiten des Eingabeprozesses in der Vergangenheit aufgetreten sind, wird auch in Zukunft weniger Zeit dafür vorgesehen, bis sich die Statistik wieder ändert – eben dann, wenn wieder eine Benutzerinteraktion stattfindet. Der BFS entfernt diese komplexe Berechnung der Zeitscheiben anhand von Sleep-Aufrufen und versucht eine komplett faire Verteilung anzustreben.

Dieser „verkehrten“ Herangehensweise verdankt der Algorithmus auch seinen Namen. Er macht genau das, was in der Informatik nicht gelehrt wird, um einen effizienten Scheduler zu programmieren.[3]

Verwendung[Bearbeiten]

Ein erster Test der Version 0.208 durch Ingo Molnar ergab keine Performancevorteile. Der Kernel-Entwickler stimmte aber dem grundsätzlichen Ziel von Con Kolivas nach mehr Unterstützung von Desktop-Systemen zu.[6] Obwohl es verschiedene Berichte über verbesserte Leistung und Reaktionsverhalten[2] gab, ist es unwahrscheinlich, dass BFS in den Hauptzweig des Linuxkernels übernommen wird.

Der BFS wurde mit Version 4.1.6 in den CyanogenMod, eine Distribution des Mobil-Betriebssystems Android, integriert und hat zu berichteten Geschwindigkeitsverbesserungen geführt.[7][8] Steve Kondik kündigte Ende Oktober 2009 an, den BFS wieder aus dem Hauptentwicklungszweig zu entfernen.[9][10] Der BFS wurde am 23. September 2009 auch in einen experimentellen Zweig des Android-Entwicklungsrepositoriums aufgenommen.[11] Er wurde jedoch nicht in die Froyo-Veröffentlichung (Android 2.2.x) aufgenommen, nachdem Blindtests mit dem Droid und dem NexusOne keine Verbesserung im Benutzererlebnis zeigten.

Der BFS ist der vorgegebene Scheduler der GNU/Linux-Distributionen Zenwalk Linux 6.4 und PCLinuxOS 2010.[12] [13]

Im Dezember 2012 wurde bekannt, dass der Linux-Entwickler Matthias Kohler an einem neuen Scheduler auf BFS-Basis und Linux 3.6.2 arbeitet. Die Besonderheit ist die Unterstützung von verschiedenen run-queues-Konfigurationen. BFS benutzt nur eine run-queue für alle CPUs. Zusätzlich zu dieser Funktion kann über den noch unbenannten Scheduler zum Beispiel eine run-queue pro CPU oder eine runqueue alle zwei CPUs konfiguriert werden.[14]

Siehe auch[Bearbeiten]

Weblinks[Bearbeiten]

Quellen[Bearbeiten]

  1. a b Marcel Hilzinger: Con Kolivas Introduces New BFS Scheduler. In: Linux Pro Magazine Online. 2. September 2009, abgerufen am 18. Dezember 2012.
  2. a b graysky: [http://repo-ck.com/bench/cpu_schedulers_compared.pdf CPU SCHEDULERS COMPARED.] 20. Oktober 2012, abgerufen am 18. Dezember 2012 (PDF; 631 kB).
  3. a b Con Kolivas: FAQS about BFS. v0.330. In: http://ck.kolivas.org. 5. September 2010, abgerufen am 18. Dezember 2012.
  4. timothy: Con Kolivas Returns, With a Desktop-Oriented Linux Scheduler. In: http://linux.slashdot.org. 6. September 2009, abgerufen am 18. Dezember 2012.
  5. Britta Wuelfing: Ingo Molnar Tests New BF Scheduler. In: Linux Magazine Online. 8. September 2009, abgerufen am 18. Dezember 2012.
  6. Ingo Molnar: BFS vs. mainline scheduler benchmarks and measurements. In: Linux-Kernel-Mailingliste. 6. September 2009, abgerufen am 18. Dezember 2012.
  7. cyanogen: CyanogenMod-4.1.6 with BFS is here! In: Twitter. 8. September 2009, abgerufen am 18. Dezember 2012.
  8. cyanogen: [ROM CyanogenMod - This is Bat Country! (EXPERIMENTAL) [9/18 - v4.1.11.1].] changelog and user comments. In: xda-developers.com. 18. September 2009, abgerufen am 18. Dezember 2012.
  9. cyanogen: Going to drop BFS for the stable release. In: Twitter. 21. Oktober 2009, abgerufen am 19. Dezember 2012.
  10. cyanogen: CyanogenMod 5 Changelog. In: http://wiki.cyanogenmod.org. 2010, abgerufen am 18. Dezember 2012.
  11. BFS wird dem Android-Repositorium hinzugefügt (Version vom 30. Mai 2010 im Internet Archive)
  12. hyperion: Zenwalk 6.4 is ready ! In: zenwalk.org. 27. Mai 2010, abgerufen am 18. Dezember 2012.
  13. admin: PCLinuxOS 2010 Edition is now available for download. In: PCLinuxOS.com. 20. April 2010, abgerufen am 18. Dezember 2012.
  14. Matthias Kohler: Multiple run-queues for BFS. In: LKML.org. 15. Dezember 2012, abgerufen am 18. Dezember 2012.