Gibt es eine Möglichkeit bei laufendem System herauszufinden, welcher Scheduler im Einsatz ist? Also kann man das irgendwie auslesen?
Von den Distributionen bekommt man in der Regel ja fertige Binarys und spontan fällt mir nur ein, in die Kernelkonfiguration mit der das Binary erstellt wurde zu schauen, aber vielleicht gibt es dafür auch eine bessere Möglichkeit.
Es gibt nur einen Scheduler. Anders als bei I/O-Schedulern, die dynamisch ersetzt werden können, hat Linus immer nur einen Scheduler im System toleriert. Andere Scheduler existieren allenfalls als externe Patches.
SCHED_DEADLINE ist daher kein neuer Scheduler, sondern eine Erweiterung. Jeder Prozess kann in genau einer Scheduler-Klasse sein, und die Klassen werden vom Scheduler unterschiedlich gehandhabt. Prozesse können zwischen den Klassen wechseln, was aber teilweise nur von root ausgeführt werden kann.
Es gibt nur einen Scheduler. Anders als bei I/O-Schedulern, die dynamisch ersetzt werden können, hat Linus immer nur einen Scheduler im System toleriert. Andere Scheduler existieren allenfalls als externe Patches.
Das nur einer laufen kann ist mir klar, siehe mein erstes Posting. Sonst hätte ich ja wohl kaum das mit dem Kernelconfig auslesen erwähnt.
Meine Frage ist allerdings, ob ich zur Laufzeit auslesen kann, welcher Scheduler reinkompiliert oder eben welche Erweiterung mitkompiliert wurde. Diese Frage wurde hier noch nicht beantwortet.
Manche Leute bevorzugen auch "schedtool" zum Zuweisen von scheduler und Prozessprioritäten. Möglicherweise nicht in jeder Distribution erhältlich. ArchLinux hat's im Repo.
Gibt es eine Möglichkeit bei laufendem System herauszufinden, welcher Scheduler im Einsatz ist?
Also kann man das irgendwie auslesen?
Von den Distributionen bekommt man in der Regel ja fertige Binarys
und spontan fällt mir nur ein, in die Kernelkonfiguration mit der das Binary erstellt wurde zu schauen, aber vielleicht gibt es dafür auch eine bessere Möglichkeit.
Du hast in aktuellen Kerneln immer den CFQ-Scheduler und die meisten Prozesse laufen als "SCHED_OTHER" (dynamische Priorität mit nice).
Und was ist mit SCHED_FIFO (Realtime First-in-first-out) und SCHED_RR (Realtime Round-Robin) wie der Artikel suggeriert?
Es gibt nur einen Scheduler. Anders als bei I/O-Schedulern, die dynamisch ersetzt werden können, hat Linus immer nur einen Scheduler im System toleriert. Andere Scheduler existieren allenfalls als externe Patches.
SCHED_DEADLINE ist daher kein neuer Scheduler, sondern eine Erweiterung. Jeder Prozess kann in genau einer Scheduler-Klasse sein, und die Klassen werden vom Scheduler unterschiedlich gehandhabt. Prozesse können zwischen den Klassen wechseln, was aber teilweise nur von root ausgeführt werden kann.
Das nur einer laufen kann ist mir klar, siehe mein erstes Posting.
Sonst hätte ich ja wohl kaum das mit dem Kernelconfig auslesen erwähnt.
Meine Frage ist allerdings, ob ich zur Laufzeit auslesen kann, welcher Scheduler reinkompiliert oder eben welche Erweiterung mitkompiliert wurde. Diese Frage wurde hier noch nicht beantwortet.
Verfügbare Scheduler anzeigen:
Anzeigen des aktuellen Schedulers eines Prozesses:
Ändern des Schedulers des Prozesses:
Vielen Dank.
Manche Leute bevorzugen auch "schedtool" zum Zuweisen von scheduler und Prozessprioritäten. Möglicherweise nicht in jeder Distribution erhältlich. ArchLinux hat's im Repo.