Autor Thema: Interrupt-Controller umprogrammieren nötig ??  (Gelesen 3643 mal)

nooooooooos

  • Beiträge: 734
    • Profil anzeigen
Gespeichert
« am: 13. March 2006, 19:48 »
Im PM Tutorial von der FH Zwickau steht:Aus Tabelle 4.1 ist ersichtlich, daß die Hardware-Interrupts 0..7 die Interrupts 8..15 auslösen. Diese Interrupts sind jedoch bereits von Intel als Protected Mode Exceptions reserviert worden. Würde man ohne eine Änderung an dieser Einstellung, Interrupts erlauben, so würden beispielsweise 18,2 mal in der Sekunde Double-Fault Exceptions ausgelöst werden (Hardware-Interrupt 0 löst standardmäßig Interrupt 8 aus).

Darum hatte ich bis heute einen Code im Kernel der den Controller umprogrammiert. Als, ich ihn heute dann auskommentiert habe, hab ich bemerkt, dass trotztem nicht 18,2 mal in der Sekunde ein Double-Fault Exception ausgelöst wird.

Ist jetzt dieser Code nötig oder nicht ????


Gruss
Noooooooooos

Legend

  • Beiträge: 635
    • Profil anzeigen
    • http://os.joachimnock.de
Gespeichert
« Antwort #1 am: 14. March 2006, 09:10 »
Na, wenn auf dem Double Fault ein anderer ISR liegt hast du das evtl. so gar nicht bemerkt?
*post*

nooooooooos

  • Beiträge: 734
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 14. March 2006, 12:22 »
Hardware Interrupt 1 ist der Timer.
Das Tutorial schlägt vor, die Hardware Interrupts auf die Interrupts 20h - 2Fh umzubiegen. Somit wird 18.2 mal in der Sekunde int 0x20 aufgerufen.

Wenn nun aber dieser Code (der die Hardware Interrupts umbiegt) auskommentiert wird, wird der Timer trotzdem noch aufgerufen. (Da ist nämlich das Multitasking)

Gruss
Noooooooooos

nore

  • Beiträge: 76
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 14. March 2006, 13:06 »
das ist ja richtig.
aber für einen doublefault hast du ja möglicherweise in der idt ein interrupt gate, das code aufruft, der dich nicht erkennen lässt, dass ein doublefault ausgelöst wurde.
also könnte es sein, dass der double fault 18,2 mal pro sekunde aufgerufen wird, aber du nichts davon mitbekommst.

nooooooooos

  • Beiträge: 734
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 14. March 2006, 18:08 »
ne, meine Interrupt-Routine für alle Interrupts ausser dem Timer beendet das Multitasking und gibt die Nummer des Fehlers auf dem Bildschirm aus.

Ich würde es doch bemerken, wenn das Multitasking plötzlich nicht mehr funktionieren würde


Also meint ihr, der Code sei nötig???? (Keine Gegenstimmen?)

Gruss
Noooooooooos

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #5 am: 23. March 2006, 23:13 »
ist das so schwer zu verstehen :?:

Der Code ist nötig :!:
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

 

Einloggen