Priorität von Prozessen
-
Hi Leute!
Ich brauch eure Hilfe! Ich möchte gerne unter Linux über die
serielle Schnittstelle eine Frequenz rausschicken.
Aber mit meiner jetzigen Lösung funktioniert das nicht richtig.
Jetzt hab ich mir gedacht das ich die Priorität des Prozesses
erhöhen muss!? Wie mach ich das?
Ich verwende nanosleep als timer.
Bitte helft mir wenn ihr bessere Lösungsvorschläge habt.Danke.
mfg
-
man 2 nice
glaub aber nicht das du das brauchst, wobei ich das nur vermuten kann weil ich hab ein problem genau gar keine beschreibung ist.
-
Ich habs jetzt mit einem thread probiert, und da gehts so
einigermaßen. Nur weiß ich nicht wie man da die Priorität
setzt. Ich habs mit pthread_setschedparam versucht, aber das
macht er mir nicht? Was kann da falsch sein?mfg
-
liefert der pthread_setschedparam aufruf 0 zurueck
wenn nicht, fehler wert anschauen, man pthread_setschedparam stehen moegliche fehler
-
um die priorität für einen thread zu ändern, musst du bzw. das programm root rechte haben
Denn du musst erst den scheduler für die threads ändern.siehe auch http://www.pronix.de/pronix-244.html
-
Führ das programm e als root aus.
Bekomm den fehlercode 22 (EINVAL - scheduling priority is outside valid range)
Hab aber gelesen, dass die priorität zwischen 0 und 99 gesetzt werden kann??mfg
-
Hallo fritze
Um welche Zeitintervalle handelt es sich hier ?
Meine Erfahrung ist nämlich dass wenn sie kürzer als 1ms sind dann wird Priorität-Erhöhung auch nicht helfen.Hab aber gelesen, dass die Priorität zwischen 0 und 99
Von -20 (höchste Priorität) bis 19(niedrigste Priorität)
-
wenn du hohe Echtzeit-Anforderungen hast, wirst du wohl nicht um Echtzeit-Erweiterungen der Kernels rumkommen.
-
Also der minimalste Zeitintervall den ich brauch sind 250 µs.
unter windows hab ich das ganze ja schon umgesetzt,
und da hab ich bei zeitintervallen von 250 µs noch keine probleme
gehabt. Und die meisten sagen, dass das unter linux auch möglich ist!?mfg