Zum Inhalt springen

TSR-Programm

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 31. Mai 2003 um 13:06 Uhr durch Eloquence (Diskussion | Beiträge) (restauriert - siehe Talk). Sie kann sich erheblich von der aktuellen Version unterscheiden.

TSR steht für "terminate and stay restistant". Ein normales Programm wird geladen, abgearbeitet und durch einen Software-Interrupt wieder aus dem Speicher entfernt. Einige Programme bleiben jedoch auch nach ihrer Abarbeitung teilweise im Speicher stehen, um bei Bedarf erneut aufgerufen zu werden. Ein residenter Teil bleibt also im Speicher, während die anderen Teile zunächst gelöscht, bei Bedarf neu nachgeladen und nach Abarbeitung wiederum gelöscht werden. Im nichtresidenten Teil findet sich als erstes eine Sprunganweisung (JMP, Assembler-Befehl für "jump" = springen), die auf einen Initialisierungsteil ganz am Ende des im Speicher befindlichen Codes zeigt. Nach der Initialisierung springt das Programm - ebenfalls mit einer JMP-Anweisung - an den Anfang des residenten Teils zurück. Dann erst wird das eigentliche Programm abgearbeitet. Die nichtresidenten (transienten) Programmteile, nämlich der Beginn und die Initialisierung, werden aus dem Speicher gelöscht, bis das Programm wieder benötigt wird, der Rest verbleibt im Speicher.

Gerätetreiber sind ein Anwendungsbeispiel für TSR-Programme. Beim Einrichten eines Computers sollte man aufgrund der besonderen Verhaltensweise von TSR-Programmen im Speicher grundsätzlich größere TSR-Programme vor kleineren laden, da die Lücken, die ihre transienten Teile hinterlassen, von den kleineren TSR-Programmen ausgefüllt werden können - umgekehrt kann es passieren, dass man einige kleinere TSR-Programme lädt und die größeren danach nicht mehr in den Speicher passen, weil die "Löcher", die die transienten Teile der kleineren hinterlassen, eben nicht ausreichen, um noch weitere Programme aufzunehmen.

Für jedes I/O-Gerät wird ein Treiber benötigt. Immer benötigt werden die folgenden Treiber für Systemgeräte:

CON Console = Tastatur + Bildschirm
AUX erste serielle Schnittstelle=COM1
PRN erste parallele Schnittstelle=LPT1
CLOCK$ Systemuhr (Timer)
A: - C: Disketten-/Plattentreiber
COM1 erste serielle Schnittstelle
LPT1 erste parallele Schnittstelle
LPT2 zweite parallele Schnittstelle
LPT3 dritte parallele Schnittstelle
COM2 zweite serielle Schnittstelle
COM3 dritte serielle Schnittstelle
COM4 vierte serielle Schnittstelle