Am Donnerstag, 8. Februar 2007 18:06 schrieb Klaus Buehler:
Hallo Herbert,
hast Du vielleicht nicht nur 'ne neue Version von avidemux sondern auch 'nen neuen Kernel?
Ne, ich benutze SuSE 10.1, und da gab´s schon lange keinen neuen Kernel mehr (der letzte kam am 13.12.2006)
Kann natürlich auch sein, dass avidemux optimiert wurde und es nun in engeren Schleifen rumrennt und grössere Blöcke von Platte liest oder auf Platte schreibt.
...
Wenn Du aber alle Jobs mit der selben Prio (default 0) startest, woher soll dann Linux wissen, dass Du interaktive Jobs mit Vorrang behandelt haben willst, weil sie wenig rechnen und meisst auf Interaktion mit Dir warten?
...und wie kann ich Linux beibiegen welche Prozesse mit welcher Prio zu behandeln sind ?
Da gibt's nix generelles. Normalerweise ist der default ja ok. Traditionelle Batch Prozesse werden mittels Skrip gestartet und im Skript lege ich dann mit nice für rechenintensive Prozesse eine niedrige Prio fest. Das könnte avidemux auch tun, wenn es das Demuxen in einen eigenen Prozess auslagert ...
avidemux benötigt nach den Grundeinstellungen keine interaktive Eingabe mehr, rechnet dann aber heftig -- wie ein Batch-Job. Es nutzt seine maximale Zeitscheibe bis der Sceduler es hart unterbricht: preemptive Sceduling. Je nach Sceduler gibts dabei unterschiedliche Zielsetzungen und bei Linux gibts daher gleich mehrere Sceduler zur Auswahl.
Nice startet nun die avidemux mit der angegebenen Prio (-n) die niedriger als die default Prio gewählt werden muss.
Soweit klar, und welches sind die anderen Sceduler
Es gibt den Anticipatory- (default), den Deadline und den No-op I/O-Scheduler. Um einen bestimmten Sceduler auszuwählen, must Du einen neuen Kernel bauen. Der Scheduler ist eine Config-Option. Frag aber jetzt bitte nicht noch worin sich diese im einzelnen unterscheiden. Das hab ich auch nicht auf Tasche.
...
Was ich nur nicht verstehe ist folgendes. Wenn ich mir die laufenden Prozesse anschaue, stelle ich fest das einige mit negativer Priorität daher kommen. Wo wurde das festgelegt, die wurden doch nicht via nice gestartet. Also woher weiss das System das diese Prozesse niedrig einzustufen sind ? Und was ist nun wenn zwei Prozesse der selben Priorität laufen, sollte da nicht das System die Prozessor Last gleichmäßig verteilen, also ohne nice , sondern von sich aus...
Also, erstens höchste Prio ist -20, niedrigste 19 (man nice), default 0, zweitens, Prioritäten erhöhen kann nur root oder das System. Der Parameter, den man an nice übergibt, ist ein Delta vom augenblicklichen Wert (momentan 5 -> nice -n 10 xxx gibt Prio 15). Negative Offsetangaben vom einem normalen User werden igoriert. Also sind Prozesse mit negativer Prio normalerweise Systemprozesse. Dann gibts mit renice die Möglichkeit, bestimmten Gruppen oder Usern eine vom Default abweichende Prio zuzuweisen. Ausserdem sind nice und renice doch nur kleine Programme die, von der Kommandozeile aufgerufen, die Parameter auswerten und damit den Systemaufruf 'nice' füttern. Díeser Systemaufruf steht jedem Programmierer zur Verfügung. Damit kann jeder Prozess nach dem Start seine Prio selbst festlegen (auch negativ, so er von root gestartet wurde oder "suid root" läuft). Was ist denn gleichmässig? Das System ist nicht prophetisch. Bei gleicher Prio wird meisst "round-robin" verteilt: Jeder Prozess kriegt der Reihe nach eine Zeitscheibe. Nur brauchen die meissten Prozesse gar keine Rechenzeit, weil sie auf Eingaben vom User warten und geben nach ein paar Mikrosekunden wieder ab. Einer dagegen schreibt wie wild auf die Platte und kann dabei nicht an jeder Stelle unterbrochen werden ... Wetten das Dein nächster Mausklick genau dann erfolgt, wenn dieser eine Prozess am schreiben ist ... Das ist kein Fehler oder Problem von Linux. Ich arbeite auf Sun-WS unter Solaris, auf HP-WS under HPUX und auf i386 Platformen unter Linux. Wir kompilieren regelmässig recht 'dicke' Pakete (wie Linux-Kernel und grösser). Dafür nutzen wir einen "Parallel-Build" der 20 Compiler-Sessions gleichzeitig startet. Rate mal, wie schnell das System noch reagiert, wenn wir versehentlich den Build ohne nice -n 10 starten ;-) Gruss Klaus P.S. Ich war gestern auch nicht mehr online ... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-multimedia-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-multimedia-de+help@opensuse.org