Startseite   |  Site map   |  A-Z artikel   |  Artikel einreichen   |   Kontakt   |  
   
  •  
    Biologie
    Themen der Chemie
    Deutsch online artikel
    Englisch / Englische
    Franzosisch
    Geographie
    Geschichte
    Informatik
    Kunst
    Mathematik / Studium
    Musik
    Philosophie
    Physik
    Recht
    Sport
    Wirtschaft & Technik



    Biographie

    Impressum

informatik artikel (Interpretation und charakterisierung)

Games

Dos ist nicht reentrant


1. Java
2. Viren



Da das TSR-Programm über die Tastatur jederzeit aktiviert werden kann, ist es möglich, daß es die Ausführung einer gerade aufgerufenen DOS-Funktion unterbricht. Dies muß noch nicht zwangsläufig zu Problemen führen, solange das TSR-Programm nach seiner Beendigung ordnungsgemäß in die unterbrochene DOS-Funktion zurückkehrt. Ein Problem entsteht jedoch dann, wenn das TSR-Programm seinerseits DOS-Funktionen aufruft, was praktisch nicht zu vermeiden ist. Hier tritt das Problem der Reentranz auf.

Dieser Begriff steht für die Fähigkeit eines Systems, seinen Programmcode von mehreren Programmen gleichzeitig aufrufen und ausführen zu lassen. Gerade diese Reentranz ist bei DOS nicht gegeben, da es als Singletask-System davon ausgeht, daß die einzelnen DOS-Funktionen nicht gleichzeitig (parallel), sondern eine nach der anderen (seriell) aufgerufen wird.

Um dem Reentranz-Problem aus dem Weg zu gehen, bleibt einem TSR-Programm nur die Möglichkeit, die Aktivierung erst dann zu erlauben, wenn gerade keine DOS-Funktion ausgeführt wird. Dabei kommt DOS den Entwicklern solcher Programme entgegen, indem es das sogenannte INDOS-Flag bereitstellt. Es handelt sich dabei um einen Zähler, der die Verschachtelungstiefe von DOS-Aufrufen zählt. Enthält er den Wert 0, wird gerade keine DOS-Funktion ausgeführt, während der Wert 1 die aktuelle Ausführung einer DOS-Funktion anzeigt. Wenn eine DOS-Funktion bei ihrer Ausführung eine andere DOS-Funktion aufruft, kann diese Flag auch größere Werte enthalten.

Der Inhalt dieses Flags kann direkt aus dem Speicher ausgelesen werden, da sich seine Adresse nach dem Booten des Systems nicht mehr ändert. Es ist sinnvoll diese Adresse während der Installation des TSR-Programms mit der DOS-Funktion 34h, die nach ihrem Aufruf die Adresse des INDOS-Flags im Registerpaar ES:BX zurückliefert, in einer Variablen zu speichern. Die Abfrage dieses Flags wird nun so in den Interrupt-Handler für den Interrupt 09h eingegliedert, daß er zwar weiterhin zunächst die Betätigung des Hotkeys überprüft, in diesem Fall jedoch die Aktivierung des TSR-Programms nur dann erlaubt, wenn das INDOS-Flag den Wert 0 enthält.

Ein weiteres Problem bringt die Aktivierung des TSR-Programms von der DOS-Oberfläche heraus. Da sich der Befehlsinterpreter des DOS (COMMAND.COM) selbst einiger DOS-Funktionen zur Ausgabe des Prompts und der Entgegennahme von Eingaben durch den Anwender bedient, enthält das INDOS-Flag hier fortwährend den Wert 1. In diesem speziellen Fall wäre die Unterbrechung zwar relativ sicher, doch müßte festgestellt werden, ob das INDOS-Flag den Wert 1 enthält, weil eine DOS-Funktion von einem transienten Programm oder vom DOS-Befehlsinterpreter aufgerufen wird.

Doch auch für diesen Fall gibt es eine Lösung. Sie beruht darauf, daß das DOS in periodischen Abständen den Interrupt 28h aufruft, der für die kurzzeitige Aktivierung von Hintergrundprozessen verantwortlich ist. Wird dieser Interrupt aufgerufen, kann man grundsätzlich davon ausgehen, das DOS unbeschäftigt und es relativ sicher ist, das TSR-Programm zu aktivieren. Dieser Interrupt trägt deshalb auch den Namen DOS-Idle (dt. idle = unbeschäftigt).

Dieses Verhalten ausnutzend, wird beim Start des TSR-Programms ein neuer Handler für den Interrupt 28h installiert. Er ruft zunächst den alten Handler für diesen Interrupt auf und prüft dann, ob der Anwender den Hotkey betätigt hat. Trifft dies zu, kann das TSR-Programm aktiviert werden, auch wenn das INDOS-Flag einen Wert ungleich 0 enthält.

Eine weitere Einschränkung muß hier jedoch insofern gemacht werden, als daß eine Aktivierung des TSR-Programms nur dann erlaubt werden sollte, wenn innerhalb des Systems keine zeitkritischen Aktionen durchgeführt werden.

 
 




Datenschutz

Top Themen / Analyse
Frequency/Voltage Control: Heiße Eisen
Parallele und serielle Datenübertragung
SCANTECHNICKEN -
Die Datenautobahn
The Internet - What is it?-
Strings
Gefahren des Polymorphismus
Dedizierte Kommunikation in der Post-Fernseh-Ära
Einleitung zu MFC
Der Projektplan -





Datenschutz

Zum selben thema
Netzwerk
Software
Entwicklung
Windows
Programm
Unix
Games
Sicherheit
Disk
Technologie
Bildung
Mp3
Cd
Suche
Grafik
Zahlung
Html
Internet
Hardware
Cpu
Firewall
Speicher
Mail
Banking
Video
Hacker
Design
Sprache
Dvd
Drucker
Elektronisches
Geschichte
Fehler
Website
Linux
Computer
A-Z informatik artikel:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z #

Copyright © 2008 - : ARTIKEL32 | Alle rechte vorbehalten.
Vervielfältigung im Ganzen oder teilweise das Material auf dieser Website gegen das Urheberrecht und wird bestraft, nach dem Gesetz.