Was bedeutet "absolute Thread-Priorität" im Zusammenhang mit 'KS_getThreadPrio/KS_setThreadPrio'?
Windows unterstützt intern 32 Prioritätsstufen, von denen die 16 höchsten (16..31) normalerweise nicht erreichbar sind. Auch kann man als Anwendungsprogramierer die Priorität nur 1 oder 2 Stufen höher oder niedriger setzen. Das Betriebssystem passt die Stufe dynamisch an. Mit den genannten Funktionen lässt sich jede beliebige absolute Prioritätsstufe (bevorzugt 16..31) setzen. Eine dynamische Anpassung entfällt in diesem Bereich. Wenn Sie am wenigsten (nur von Kernel-Mechanismen) unterbrochen werden wollen, nehmen Sie die 31. Auf keinen Fall sollten Sie die Prozess-Priorität verändern, da dies unvorhersehbare Situationen, wie z.B. Dead-Locks, verursachen kann.
Zuletzt aktualisiert am 2009-08-04 von .
Allgemein
- In meiner Software ist ein Fehler. Was kann ich tun?
- Bei der Demo-Version erscheint beim Start ein Intro-Fenster. Ist das auch bei der Voll-Version der Fall?
- Hat sich das API von der Version 6 zur Version 7 der Kithara »Tool Suite« geändert?
- Hat sich das API von der Version 7 zur Version 8 der Kithara »RealTime Suite« geändert?
- Unterstützt die Kithara »RealTime Suite« APIC-Systeme?
- Ist die Kithara »RealTime Suite« Multiprozessor- und Dual-Core-tauglich (MP)?
- Gibt es in der Version 8 den »I/O Accelerator« nicht mehr?
- Gibt es in der Version 8 das »KeyBoard Toolkit« nicht mehr?
- In der Version 8 wird nicht mehr zwischen »Timer Toolkit« und »Timer Toolkit Plus« unterschieden. Warum?
- In der Version 8 wird nicht mehr zwischen »Serial Toolkit« und »Serial Toolkit Plus« unterschieden. Warum?
- In der Version 8 gibt es das »Serial Filter Toolkit« nicht mehr?
- Es gibt das »Socket Toolkit« in der Version 8 scheinbar nicht mehr?
- Ich hatte bisher die »Driver Collection«. Ist es möglich, auf die »New Driver Collection« mit dem USB Module zu wechseln?
Base Module
- Wozu dient die Funktion 'KS_openDriver'?
- Müssen vor Aufruf von 'KS_closeDriver' alle verwendeten Ressourcen abgemeldet werden?
- Wozu dienen die Funktionen 'KS_startKernel/KS_stopKernel'? Muss ich den Kernel selbst starten und stoppen?
- Was passiert bei 'KS_resetKernel'?
- Worin unterscheiden sich die speziellen Shared-Memory-Bereiche von denen von Windows?
- Kann ich die Shared-Memory-Bereiche auch zum Datenaustausch zwischen verschiedenen Anwendungen nutzen?
- Wozu dient die Funktion 'KS_getSharedMem'?
- Wie erkenne ich, ob mein Shared Memory zum ersten Mal angefordert wurde?
- Was ist beim Zugriff auf die Shared-Memory-Bereiche zu beachten? Werden Zugriffe automatisch synchronisiert?
- Was ist der Unterschied zwischen den speziellen Threads und denen von Windows?
- Was bedeutet "absolute Thread-Priorität" im Zusammenhang mit 'KS_getThreadPrio/KS_setThreadPrio'?
- Was sind die besonderen Eigenschaften der Event-Objekte?
- Die Funktion 'KS_waitForEvent' hat einen timeout-Parameter. Kann ich damit auch genaue Verzögerungen programmieren?
- Wie wird eine Callback-Funktion auf der Anwendungsebene zur Ausführung gebracht?
- Welche (Jitter-) Zeiten sind mit einem Callback auf der Anwendungsebene erreichbar?
- Worin besteht bei einem Callback für die Kernel-Ebene der Unterschied zwischen kernel-synchron und -asynchron?
Clock Module
- Welche Zeitbasis wird für die Zeitmessungen benutzt?
- Welche Auflösungen stehen zur Verfügung?
- Worauf bezieht sich die gemessene Zeit?
- Welche Genauigkeit ist bei der Zeitmessung erreichbar?
- Welche speziellen Eigenschaften haben die neuen Clock-Funktionen?
- Was bedeutet 2-Phasen-Zeitmessung?
- Wie funktioniert die neue Funktion KS_microDelay?
Interrupt Module
- Worin unterscheiden sich die beiden Funktionen zur Interrupt-Anmeldung?
- Werden PCs mit APIC sowie Multiprozessor-PCs (bzw. 'Hyperthreading') unterstützt?
- Ich melde den Interrupt einer PCI-Karte mit 'KS_createInterrupt' an, der Handler wird jedoch nicht gerufen. Was kann das sein?
- Ich will auf der Kernel-Ebene den Interrupt quittieren, die weitere Verarbeitung jedoch auf der Anwendungsebene vornehmen. Benötige ich dafür ein Event, daseinen Thread aktiviert?
- Wird mit 'KS_simulateInterrupt' ein Interrupt-Request an der Hardware simuliert?
IoPort Module
- Wie werden wegen des PCI-Plug&Play die dynamisch zugewiesenen Ressourcen ermittelt?
- Welche Ressourcen lassen sich mit 'KS_getResourceInfo' ermitteln?
- Worin unterscheiden sich 'KS_getResourceInfo' und '..Ex'?
- Welche Möglichkeiten zum Zugriff auf I/O-Ports gibt es?
- Welchen zeitlichen Vorteil hat der direkte Zugriff?
- Was passiert beim Zugriff von der Anwendungsebene? Wird der Zugriff emuliert?
- Wie beeinflussen die direkten Zugriffe auf die I/O-Ports die Stabilität der Anwendung und des Systems?
- Wie wirkt sich die Freischaltung der I/O-Ports auf andere Programme aus?
- Worin unterscheiden sich die Funktionen 'KS_read/writeIoPort' von den einfacheren 'KS_inpX/outpX'?
- Wie funktioniert die 'Quiet Section'?
- Welche Möglichkeiten bietet die 'Quiet Section'?
- Welche Alternativen bestehen zur 'Quiet Section'?
Kernel Module
- Weshalb muss im Interrupt-Kontext auszuführender Code in den System-Adressraum verlagert werden?
- Wie funktioniert die "Relokation einer Funktion"?
- Wie funktioniert die "Relokation einer DLL"?
- Wozu dient die Funktion 'KS_prepareKernelExec'?
- Welche Voraussetzungen muss eine DLL erfüllen, um in den Systemadressraum geladen werden zu können?
- Wie kann lässt sich eine auf die Kernel-Ebene zu ladende DLL debuggen?
- Welchen Zweck hat die Funktion 'KS_registerKernelAddress'?
- Was bedeutet "interrupt-synchrone Ausführung" im Zusammenhang mit 'KS_execSyncFunction'?
KeyBoard Module
- Ist es möglich, die Tastaturkommandos für andere Anwendungen zu manipulieren?
- Warum werden die sogenannten Scan-Codes geliefert, statt 'richtige' Zeichen?
- Ich will eine eigene Tastenkombination CTRL-ALT-ESC behandeln, die jedoch nicht als Tastencode angeboten wird. Was tun?
Memory Module
- Worin besteht der Unterschied zwischen 'KS_mapPhysMem' und 'KS_allocPhysMem'?
- Wie groß ist der maximal zu mappende Bereich externen Speichers?
- Wie groß ist der maximal zu allokierende Bereich internen Speichers?
Serial Module
- Worin unterscheiden sich der normale und der Kernel-Modus der seriellen Kommunikation?
- Welche Eigenschaften hat der normale Modus (Serial Module)?
- Welche Eigenschaften hat die Kernel-Implementierung (Serial Plus Module)?
- Muss ich mich für das Serial Module oder das Serial Plus Module entscheiden? Benötige ich eventuell beide?
- Welche COM-Schnittstellen werden vom Serial Plus Module unterstützt?
- Ich habe einen USB-zu-RS485-Adapter. Was benötige ich dafür?
- Womit treffe ich die Unterscheidung der beiden Modi?
- Welche Bedingungen müssen erfüllt sein, um eine Schnittstelle erfolgreich öffnen zu können?
- Kann ich mit dem Serial Plus Module auch Hardware benutzen, die höhere Baudraten unterstützen?
Realtime Module
- Wie hoch ist die Auflösung der Timer, wenn das 'delay' in 100-ns-Einheiten angegeben wird?
- Muss ich mich für das Timer Module oder das Realtime Module entscheiden? Benötige ich eventuell beide?
- Welche Voraussetzungen müssen zur Nutzung der Echtzeit-Mechanismen vorliegen?
- Was passiert unter Windows 98 - gibt es dort auch Echtzeit?
- Werden PCs mit APIC unterstützt?
- Werden Multiprozessor-PCs (bzw. 'Hyperthreading') unterstützt?
- Wie hoch ist die CPU-Belastung durch die Echtzeit-Timer?
- Wie hoch ist die maximal mögliche Frequenz der Echtzeit-Timer?
- Welche Ursachen für ein erhöhtes Jitter kann es geben?
- Was ist innerhalb der Timer-Callback-Funktion erlaubt?
- Wie lässt sich mit dem Timer Module ein Watchdog programmieren? Welche Arten von Watchdogs gibt es?
- Wie wird am einfachsten ein Watchdog für regelmäßige Ereignisse realisiert?
- Wie wird am einfachsten ein Watchdog für sporadische Ereignisse realisiert?
- Welche Bedeutung hat das Flag KSF_DRIFT_CORRECTION?