Lowlevel
Lowlevel => Lowlevel-Coding => Thema gestartet von: bitmaster am 07. January 2006, 00:20
-
Hi,
ich mache mir zur Zeit gedanken über die Portzugriffe. Angenommen ich habe zwei Programme die auf ein und die selben Ports zugreifen. Wenn ich diese in Multitasking laufen lasse, könnte es doch passieren das diese sich stören. Der eine sendet einen Befehl an einen Port und der andere will Ergebnisse dieses Ports auslesen, hatt aber vorher andere Werte an diesen Port gesendet. Also meine ich das man doch bei Portzugriffe einen Taskswitch durch cli (IRQ0 kann nicht mehr aufgerufen werden) verhindern muss, oder?
Danke!!!
-
Wenn die Treiber Programme/Prozesse sind, bräuchtest du wohl Spinlocks oder Semaphoren.
-
Angenommen ich habe zwei Programme die auf ein und die selben Ports zugreifen
Das sollte normalerweise imho nicht sein :!:
Für was brauchst du 2 Programme, die auf die gleichen Ports zugreiden :?:
-
Bei Hardware hat man grundsätzlich NIEMALS mehrere zugriffe!
Man benutzt entweder eine zwischengeschaltetes Modul was die Anfragen an die Hardware weitergibt (Treiber), oder man richtet eine minimale Hardwareverwatlung in Form von Reservierung und Freigabe der Ports ein, so dass die Hardware nicht gleichzeitig mehrfach genutzt wird.