Windows Kernelmodetreiber echtzeitfähig?
-
Zur Info:
Hab's jetzt nachgemessen:Die Signalzeiten werden auf ca. 2µsec genau eingehalten.
=> gut so.Falls die Reaktionszeit interessiert:
Wenn sich an einem Pin der parallelen Schnittstelle ein Wert ändert,
läßt sich innerhalb von 3µsec ein anderer Pin ändern.
=> auch gut.Übrigens waren 3µsec auch die minimalen Signalzeiten, weniger war nicht möglich.
Dazu Interrupts mittels _asm{cli} deaktiviert, im Anschluss mit _asm{sti} wieder aktiviert.
Ab IRQL 28 auch brauchbare Ergebnisse in ähnlicher Größenordnung,
alles unter 28 ist grauenhaft
mfg
Martin
-
Windows (NT/W2k/XP) ist *nicht* Echtezeitfähig... somit kann es auch keine Treiber geben die Echtzeitfähig sind!!!
Die ganze Diskussion hier ist Sinnlos...
Echtzeit heisst *nicht* so schnell wie möglich, sondern es heisst "deterministisch"!!!!
Und das ist nun mal unter Windows (NT und höher) nicht gegeben!!!!
Wenn irgendjemand einen Treiber schreibt der (aus versehen) mal 10 Sekunden braucht (innerhalb CLI), dann haben die anderen Treiber halt Pech gehabt!
-
Jochen Kalmbach schrieb:
Windows (NT/W2k/XP) ist *nicht* Echtezeitfähig... somit kann es auch keine Treiber geben die Echtzeitfähig sind!!!
kann es wohl. windows ist nicht allmächtig.
Jochen Kalmbach schrieb:
!!!!
!!!!http://storage9.myopera.com/AlchemicalSecrets/albums/290842/omg1.png
-
Undertaker schrieb:
Jochen Kalmbach schrieb:
Windows (NT/W2k/XP) ist *nicht* Echtezeitfähig... somit kann es auch keine Treiber geben die Echtzeitfähig sind!!!
kann es wohl.
Ja, träum weiter, Kind. Dass hier ein WINDOWS Treiber gemeint war sollte wohl klar sein.
-
hustbaer schrieb:
Dass hier ein WINDOWS Treiber gemeint war sollte wohl klar sein.
du weisst nicht, das man mit code, der im ring0 ausgeführt wird, nahezu alles anstellen kann?
-
Undertaker schrieb:
du weisst nicht, das man mit code, der im ring0 ausgeführt wird, nahezu alles anstellen kann?
Und genau das ist das Problem!!! Ich glaube Du hast mein Post nicht richtig gelesen...
Wenn *Du* alles machen kannst, dann können *andere* auch alles machen und dann ist Dein determinismus wieder dahin!
-
Undertaker schrieb:
hustbaer schrieb:
Dass hier ein WINDOWS Treiber gemeint war sollte wohl klar sein.
du weisst nicht, das man mit code, der im ring0 ausgeführt wird, nahezu alles anstellen kann?
-
Du kannst selbst in Ring 0 den SMI nicht loswerden, und das war's dann schonmal mit echtzeitfähig.
-
Was Windows angeht: klar kannst du alle Interrupt abdrehen und lala und lalubb, bloss andere können das auch.
Dass ein OS echtzeitfähig ist heisst NICHT dass man es "anhalten" kann, damit man dann diverse blöde polling Schleifen laufen lassen kann während alles andere steht um eben "echtzeit" zu bekommen.
Dass ein OS echtzeitfähig ist heisse dass man eben NICHT das OS anhalten oder sonstwie stören muss und TROTZDEM garantiert bekommt dass z.B. Interrupts mit einer max. Latenz aufgerufen werden. Und genau das geht unter Windows NICHT.
Windows
ist
> NICHT <
echtzeitfähig
!
-
-
hustbaer schrieb:
- Du kannst selbst in Ring 0 den SMI nicht loswerden, und das war's dann schonmal mit echtzeitfähig.
wieso nicht?
hustbaer schrieb:
- Was Windows angeht: klar kannst du alle Interrupt abdrehen und lala und lalubb, bloss andere können das auch.
was hat das mit 'anderen' zu tun?

hustbaer schrieb:
Dass ein OS echtzeitfähig ist heisst NICHT dass man es "anhalten" kann, damit man dann diverse blöde polling Schleifen laufen lassen kann während alles andere steht um eben "echtzeit" zu bekommen.
richtig.
hustbaer schrieb:
Dass ein OS echtzeitfähig ist heisse dass man eben NICHT das OS anhalten oder sonstwie stören muss und TROTZDEM garantiert bekommt dass z.B. Interrupts mit einer max. Latenz aufgerufen werden.
wenn das OS nicht mitspielen will/kann (wie windoofs), dann muss es darauf hinauslaufen, dass ihm die kontrolle entzogen wird.
hustbaer schrieb:
Und genau das geht unter Windows NICHT.
geht alles. es gibt ein paar realtime extensions für win. guckst du internet suchmaschinen: 'windows RTX' oder sowas...
-
Oh Mann...
SMI disablen... wenn es geht dann sag mir bitte wie.
(Davon abgesehen dass dann wahrscheinlich die Hälfte der Boards am Markt nichtmehr funktioniert, weil der SMM verwendet wird um Fehler im Chipset auszubügeln)Was "Realtime Extensions" angeht: wenn du sowas verwendest hast du kein Windows mehr, sondern die Realtime Extension "auf der" Windows läuft.
Deswegen zu behaupten Windows wäre Realtime-fähig ist IMO doof. Weil es einfach nicht stimmt.wenn das OS nicht mitspielen will/kann (wie windoofs), dann muss es darauf hinauslaufen, dass ihm die kontrolle entzogen wird.
Die Aussage der du widersprochen hast ist dass Windows nicht echtzeitfähig ist. Ich behaupte dass Windows nicht echtzeitfähig ist. Ich behaupte nicht dass man nicht ein System basteln kann welches selbst echtzeitfähig ist, und dem dann beibringen Windows nebenher laufen zu lassen. Genau das ist es was eine Realtime Extension macht, und nochmal: das heisst nicht dass Windows deswegen echtzeitfähig ist. Es bedeutet nur dass die Extension echtzeitfähig ist.
"Windows ist echtzeitfähig" würde bedeuten dass ich für Windows ohne "Extensions" einen Treiber schreiben kann, und dann "realtime" bekomme - vorausgesetzt natürlich ich halte mich an diverse Regeln. Und genau das geht nicht.
-
Undertaker schrieb:
wenn das OS nicht mitspielen will/kann (wie windoofs), dann muss es darauf hinauslaufen, dass ihm die kontrolle entzogen wird.
Ganz genau!!! Und das machen die diversen Ansätze "Windows" Echtzeitfähigkeit beizubringen... die Lassen nämlich "Windows" in einem eigenen Echtzeit-Task laufen und nebenher können dann noch andere Echtzeittaks laufen (siehe RTX).
Undertaker schrieb:
geht alles. es gibt ein paar realtime extensions für win. guckst du internet suchmaschinen: 'windows RTX' oder sowas...
Ja, wie gesagt... hats Du Dir angeschaut *wie* die das machen!? Die können es nicht *in* oder *mit* Windows machen, sondern lassen Windows in *ihrem* (Echtzeit) OS laufen!!!
Also nicht *Windows* wird hier echtzeitfähig gemacht! sondern RTX bietet Echtezti-Threads, die aber mit Windows *nichts*, aber auch *gar nichts* zu tun haben!