[gelöst] Zeitauflösung von Sleep und co. erhöhen?
-
Hi
Trotzdem solltest du dir überlegen den Prozess zu priorisieren. Wen deine Cpu mal voll ausgelasstet ist, dan wirst du ohne die Priorisierung keine wirkliche echtzeit mehr haben.
Ansonnsten hatt wohl geeky gut beschriben wie man auf Anwendungsebene echtzeit fahren kann, ohne gleich mit Treiber zu hantieren.
Lowbyte
-
@Dobi:
Deine "QueryPerformanceCounter" Zeit wird gegenüber der "echten" Zeit hübsch driften.
-
@lowbyte_:
Wie wär's mit einfach mal die Fresse halten statt hier Unsinn über Echtzeitfähigkeit abzulassen?
-
@lowbyte_: Echtzeit kann man unter nem normalen Windows sowieso vergessen. Für sowas gibts andere Betriebssysteme. Gelegentliche Verzögerungen würden sowieso durch die Art, wie das Protokoll definiert ist, abgefangen. Auch mit dem ungenauen Sleep passieren keine dramatischen Fehler, es müssen nur manchmal (wenn es zu früh returned) manche Telegramme neu verschickt werden. Wenn sleep(5) länger dauert passiert gar nix, es wird einfach nur Zeit verschwendet, und das finde ich nicht schön.
Auf jeden Fall möchte ich mich hier herzlich bei dir bedanken. Du hast hier zwar nicht direkt zur Lösung des eigentlichen Problems beigetragen, jedoch wurde der Thread durch deine Beteiligung (zumindest für mich) wesentlich unterhaltsamer.@hustbaer: Ok, das wär natürlich nicht so toll. Ich werde die Abweichung mal messen (ist vermutlich aber auch von der CPU abhängig) und dann mal schaun, ob sich da irgendwas mit regelmäßigem syncen machen lässt, oder ob ich die Idee vom PerformanceCounter für meinen Zweck doch begraben muss.
-
hustbaer schrieb:
@lowbyte_:
Wie wär's mit einfach mal die Fresse halten statt hier Unsinn über Echtzeitfähigkeit abzulassen?Echt jetzt mal
Wie sagte meine Lehrerin immer: Ois foisch! Des is ois foisch!
-
Hi
@hustbär
Dan möchte ich wissen wiso... Und nicht einfach hier di Fresse gross aufreisen... Möchte akribisch genau wisen wiso, du Held !
Was verstehst du unter echtzeit? ms oder ns ?Lowbyte
-
Bahahahahaha http://de.wikipedia.org/wiki/Echtzeit
-
@lowbyte_: Ein Betriebssystem wird nicht dadurch zum echtzeitfähig, dass die Zeitauflösung auf Planck-Zeit-Genauigkeit kommt.
Ein Echtzeitbetriebssystem könnte sogar nur auf die Sekunde genau die Zeit ausgeben. Das entscheidende ist, dass es das zuverlässig tut. Das Verhalten muss vorhersagbar sein. Es gibt beispielsweise spezielle Linux-Kernel für soetwas.
Das, was eine SPS macht, passiert beispielsweise auch in "Echtzeit".
Unter normalen Desktop-Betriebssystemen kanns einem immer passieren, dass der Rechner gerade mit irgendwas anderen wie z.B. dem leeren des Festplattencaches oder so beschäftigt ist.Edith sagt: Mist, GodsHomeboy war schneller.
-
So ein Unfug! Wenn ich z.B. auf meinen Start Button klicke erscheint das Menu in Echtzeit. Es ist für mich keine Verzögerung feststellbar. Das ist ausreichend um von Echtzeit zu sprechen.
-
Hi
Ich dachte halt wen du ihn so weit priorisierst das er höhere Priorität hat als alle anderen ink. Sysproc.und Treiber, dann könnte man Echzeit auch auf Windows garantieren. Geht dan aber wohl nur über Treiberprogrammierung. Das waren meine Ansichten.
Lowbyte
-
Hi
Dan kannst du das normal sagen, und nicht gleich mit Beleidigungen um dich werfen. ok?
Ich denke vom Kleinkind bist du weit empfernt.!
Dieser Artikel von wiki ist mir natürlich klar.
Hast mich wohl falsch verstanden.@paule8
Deine Meinung ist falsch..Unter echtzeit versteht man was anderes!
Lowbyte
-
Wikipedia sagt:
Der Begriff Echtzeit legt lediglich fest, dass ein System auf ein Ereignis innerhalb eines vorgegebenen Zeitrahmens reagieren muss. Der Begriff sagt nichts über die Geschwindigkeit oder Verarbeitungsleistung eines Systems aus.
Das ist in meinem Beispiel der Fall.
-
Paule8 schrieb:
So ein Unfug! Wenn ich z.B. auf meinen Start Button klicke erscheint das Menu in Echtzeit. Es ist für mich keine Verzögerung feststellbar. Das ist ausreichend um von Echtzeit zu sprechen.
Na dann klick mal auf die Schaltfläche, wenn der Rechner ausgelastet ist, dann ist es vorbei mit deiner "Echtzeit.". Oder hast du noch nie unter Windows darauf gewartet, dass ein Dialog aufgeht?
-
Was hat das mit Windows zu tun? Das ist bei jedem System so. Wenn du z.B. eine SPS auslastest wird sie ihre Zykluszeit überschreiten.
-
Paule8 schrieb:
Was hat das mit Windows zu tun? Das ist bei jedem System so. Wenn du z.B. eine SPS auslastest wird sie ihre Zykluszeit überschreiten.
Nein es gibst Betriebsysteme, die dir garantieren von X s (x wesentlich kleiner als 1), auf Ereignis zu reagieren. Solche OS sind im Sicherheitsbereich zu finden. Ein Beispiel Radaranlagen mit QNX (http://www.qnx.com/).
-
So habe ich das auch gelernt. Echtzeitsysteme reagieren immer garantiert in einer bestimmten Zeit, da wartet dann der Rest bis Du fertig bist und nicht wie bei Windows umgekehrt. Windows ist also kein Echtzeitbetriebssystem da z.B ein Update einer Software oder des Systems oder sonst was doch deine Anwendung die Zeit klauen kann. Somit ist die Echtzeit nie garantiert egal mit welchen Zeitintervallen du theoretisch reagieren kannst.
Bitte verkauft niemals an einen Kunden eine Windowsanwendung als Echtzeitanwendung, das ist Betrug und kann sehr teuer werden.
-
Sicher gibt es das für spezielle Anwendungen, aber für Echtzeit ist das keine Anforderung.
-
Man muß zwischen weiches Echtzeitverhalten und hartem Echtzeitverhalten unterscheiden. Der Wikipedia Artikel erklärt es eigentlich recht gut.
-
Paule8 schrieb:
Man muß zwischen weiches Echtzeitverhalten und hartem Echtzeitverhalten unterscheiden. Der Wikipedia Artikel erklärt es eigentlich recht gut.
Und Betriebssysteme werden nur dann Echtzeit genannt, wenn Sie harte Echtzeitverhalten haben. Danke, dass wir darüber gesprochen haben.
-
Damit denke ich kann das Thema ob Windows echtzeitfähig ist nun endlich beendet werden. Es ist definitiv nicht echtzeitfähig, wurde aber auch nie dafür entwickelt und das lässt sich auch nicht umschiffen, es sei denn man ändert den Kernel...viel spass