Zum Inhalt springen

Scheduler: Unterschied zwischen den Versionen

1.002 Bytes hinzugefügt ,  7. September 2016
(BFQ fehlt noch)
Markierungen: Mobile Bearbeitung Mobile Web-Bearbeitung
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Ein '''Scheduler''' ist eine Steuerlogik, die die zeitliche Ausführung von gleichzeitigen Prozessen, bzw. den Zugriff auf bestimmte Systemressourcen, regelt. Die Logik steuert, welcher Prozess die zur Verfügung stehende Leistung (bspw. die Rechenleistung der CPU) wann und für wie lange verwenden darf. Ein Scheduler kann zum Beispiel den Zugriff auf eine Festplatte ('''I/O Scheduler''') oder auf die CPU regeln, bei letzterem unterscheidet man zusätzlich zwischen zwei Arten: ''unterbrechende'' und ''nicht unterbrechende''<ref>http://de.wikipedia.org/wiki/Prozess-Scheduler</ref><ref>http://www.androidpit.de/de/android/forum/thread/452942/Der-Ultimative-Samsung-Galaxy-S-Flash-Guide-Erklaerungen-Tipps-und-Tricks-Stand-29-10</ref>.
Ein '''Scheduler''' ist eine Steuerlogik, die die zeitliche Ausführung von gleichzeitigen Prozessen, bzw. den Zugriff auf bestimmte Systemressourcen, regelt. Die Logik steuert, welcher Prozess die zur Verfügung stehende Leistung (bspw. die Rechenleistung der CPU) wann und für wie lange verwenden darf. Ein Scheduler kann zum Beispiel den Zugriff auf eine Festplatte ('''I/O Scheduler''') oder auf die CPU regeln, bei letzterem unterscheidet man zusätzlich zwischen zwei Arten: ''unterbrechende'' und ''nicht unterbrechende''.<ref>http://de.wikipedia.org/wiki/Prozess-Scheduler</ref><ref>http://www.androidpit.de/de/android/forum/thread/452942/Der-Ultimative-Samsung-Galaxy-S-Flash-Guide-Erklaerungen-Tipps-und-Tricks-Stand-29-10</ref>


Beim unterbrechenden Scheduler wird einem Prozess nicht nur die CPU-Leistung zugewiesen, sondern auch mitgeteilt, wie lange diese beansprucht werden kann. Nach Ablauf dieser Zeit entzieht der Scheduler diesem Prozess den Zugriff auf die CPU und vergibt ihn neu an den nächsten Prozess. Im Gegensatz dazu weist der nicht unterbrechende Scheduler der CPU einen Prozess zu und belässt diese Zuweisung, bis der Prozess die CPU selbstständig wieder freigibt.
Beim unterbrechenden Scheduler wird einem Prozess nicht nur die CPU-Leistung zugewiesen, sondern auch mitgeteilt, wie lange diese beansprucht werden kann. Nach Ablauf dieser Zeit entzieht der Scheduler diesem Prozess den Zugriff auf die CPU und vergibt ihn neu an den nächsten Prozess. Im Gegensatz dazu weist der nicht unterbrechende Scheduler der CPU einen Prozess zu und belässt diese Zuweisung, bis der Prozess die CPU selbstständig wieder freigibt.
Zeile 13: Zeile 13:


==== Noop ====
==== Noop ====
Der Noop Scheduler ist prinzipiell ein einfacher, aber für nicht-mechanische Festplatten (wie Flashspeicher) sehr effektiver. Er reiht die wartenden Schreib- und Lesevorgänge in eine einfache Warteschlange nach dem ''First in - First Out'' Prinzip, generell werden Schreib- und Lesevorgänge in der Reihenfolge ausgeführt, in welcher sie in die Warteschlange hinein gekommen sind.<ref>{{Cite web|url = http://forum.xda-developers.com/showthread.php?t=1242323|title = <nowiki>[REF] Quasar kernel governors and I/O schedu&hellip; | LG Optimus Black | XDA Forums</nowiki>|accessdate = 2015-03-03}}</ref>
Der '''Noop''' Scheduler ('''[[Wikipedia:de:Nulloperation|no]]''' [[Wikipedia:de:Nulloperation|'''op'''eration]], deutsch etwa: ''keine Funktion'')<ref>{{Internetquelle|autor = Robert Love|titel = Linux-Kernel-Handbuch: Leitfaden zu Design und Implementierung von Kernel 2.6|url = https://books.google.de/books?id=PAOvoVr-l74C&pg=PA321&dq=Der+Noop-I/O-Scheduler&hl=de&sa=X&ved=0ahUKEwj6qZ6T6dnJAhVCuhQKHUkZC5wQ6AEIIzAA#v=onepage&q=Der%2520Noop-I%252FO-Scheduler&f=false|hrsg = Pearson Deutschland GmbH|datum = 2005-01-01|zugriff = 2015-12-13|sprache = de}}</ref> ist prinzipiell recht einfach, für nicht-mechanische Festplatten (wie Flashspeicher) allerdings sehr effektiv. Er reiht die wartenden Schreib- und Lesevorgänge in eine einfache Warteschlange nach dem ''[[Wikipedia:de:First In – First Out|FIFO]]''-Prinzip (''First in - First Out'') ein. Generell werden Schreib- und Lesevorgänge somit in der Reihenfolge ausgeführt, in welcher sie in die Warteschlange hinein gekommen sind.<ref>{{Cite web|url = http://forum.xda-developers.com/showthread.php?t=1242323|title = <nowiki>[REF] Quasar kernel governors and I/O schedu&hellip; | LG Optimus Black | XDA Forums</nowiki>|accessdate = 2015-03-03}}</ref>


==== Anticipatory ====
==== Anticipatory ====
Zeile 19: Zeile 19:


==== CFQ ====
==== CFQ ====
Der '''C'''ompletely '''F'''air '''Q'''ueuing (kurz '''CFQ''') ist ein ursprünglich für den Linuxkernel entwickelter Scheduler, welcher die Einteilung von Prozessen in bestimmten Klassen ermöglicht<ref>{{Cite web|url = https://www.thomas-krenn.com/de/wiki/Linux_I/O_Scheduler#CFQ|title = Linux I/O Scheduler – Thomas-Krenn-Wiki|accessdate = 2015-03-03}}</ref>:
Der '''C'''ompletely '''F'''air '''Q'''ueuing (kurz '''CFQ''') ist ein ursprünglich für den Linuxkernel entwickelter Scheduler, welcher die Einteilung von Prozessen in bestimmten Klassen ermöglicht:<ref>{{Cite web|url = https://www.thomas-krenn.com/de/wiki/Linux_I/O_Scheduler#CFQ|title = Linux I/O Scheduler – Thomas-Krenn-Wiki|accessdate = 2015-03-03}}</ref>
* '''RT''' ('''R'''eal-'''T'''ime): Prozesse in dieser Klasse erhalten immer bevorzugt und zuerst Zugriff auf das Gerät, weshalb diese Klasse i.d.R. nur durch den [[Root]]-Benutzer gesetzt werden kann, um zu verhindern, dass durch das vermehrte Setzen dieser Klasse das Gerät ständig ausgelastet ist und andere Prozesse keinen Zugriff bekommen.
* '''RT''' ('''R'''eal-'''T'''ime): Prozesse in dieser Klasse erhalten immer bevorzugt und zuerst Zugriff auf das Gerät, weshalb diese Klasse i.d.R. nur durch den [[Root]]-Benutzer gesetzt werden kann, um zu verhindern, dass durch das vermehrte Setzen dieser Klasse das Gerät ständig ausgelastet ist und andere Prozesse keinen Zugriff bekommen.
* '''BE''' ('''B'''est-'''E'''ffort): Erhalten immer dann Zugriff, wenn die Warteschlange RT abgearbeitet ist.
* '''BE''' ('''B'''est-'''E'''ffort): Erhalten immer dann Zugriff, wenn die Warteschlange RT abgearbeitet ist.
Zeile 35: Zeile 35:
Wie der Name schon sagt, ist dieser Scheduler extrem einfach gehalten. Er sortiert die Schreib- und Lesevorgänge nicht, sondern führt sie nacheinander aus
Wie der Name schon sagt, ist dieser Scheduler extrem einfach gehalten. Er sortiert die Schreib- und Lesevorgänge nicht, sondern führt sie nacheinander aus


====<nowiki/>====
====Budget Fair Queueing<nowiki/>====
Der Budget Fair Queueing (kurz '''BFQ''') Scheduler basiert grundsätzlich auf dem [[#CFQ|CFQ]], doch anstelle eines bestimmten Zeitkorridors, die ein Prozess den Zugriff auf ein Speichergerät hat, verteilt dieser ein Budget an Speichersektoren, die dieser Prozess verwenden darf. Ist dieser aufgebraucht, so wird ihm der Zugriff entzogen.


== Siehe auch ==
* [[Governor]]
== Einzelnachweise ==<!-- Hier sollte ebenso auch eine Liste der verfügbaren Scheduler mit einer kurzen Beschreibung rein. -->
== Einzelnachweise ==<!-- Hier sollte ebenso auch eine Liste der verfügbaren Scheduler mit einer kurzen Beschreibung rein. -->
<references />
<references />


[[Kategorie:Allgemein]]
[[Kategorie:Allgemein]]
11.008

Bearbeitungen

Cookies helfen uns bei der Bereitstellung von Android Wiki. Durch die Nutzung von Android Wiki erklärst du dich damit einverstanden, dass wir Cookies speichern.