Terminate and Stay Resident

Terminate and Stay Resident

Die Abkürzung TSR stammt aus dem DOS-Umfeld und steht für „Terminate and Stay Resident“. Dieses Konzept wurde als Vorläufer zu späteren Multitaskinganwendungen entwickelt, damit bestimmte Aufgaben (Uhr, Treiber, Systemdienste) permanent im Hintergrund ablaufen können.

Inhaltsverzeichnis

Entwicklungskonzepte für Hintergrundprozesse

Möglich und effektiv wurde dies Ende der 70er Jahre hauptsächlich durch die Entwicklung leistungsfähiger 16-bit-Prozessoren und der Interrupt-Architektur, mit deren Hilfe eine Vielzahl von Hardware-Geräten eines Rechners im regelmäßigen Takt relativ unabhängig vom Betriebssystem angesprochen werden können. Da eine Kommunikation zwischen diesen Geräten und dem Prozessor nicht ohne geeignete „Verwaltungsprogramme“ (Gerätetreiber) erfolgen kann, bot sich damit eine neue Möglichkeit, auch unabhängig von Hardwarekomponenten Programme zu schreiben, die im Speicher verbleiben und von den Interrupts immer wieder im Hintergrund aufgerufen werden.

Vorläufer bei Homecomputern

Zwingend notwendig ist die Interrupt-Kontrolle nicht. Bereits zuvor waren die meisten Betriebssysteme unter 8-bittigen Prozessoren wie dem Zilog Z80 mit modularen Prozessen z.B. zur Speicher- und Bildverwaltung ausgestattet. Da diese über Sprungadressen in regelmäßigem Rhythmus abgearbeitet werden, bieten sich für weitere Anwendungen grundsätzlich zwei Möglichkeiten, an diesem Konzept teilzunehmen (vereinfachte Beschreibung):

  • Bei Betriebssystemen mit änderbaren Sprungadressen im RAM-Speicher (damals noch keine Selbstverständlichkeit) lenken residente Programme diese auf sich selbst um, erst danach erfolgt der Sprung zum Systemprozess (dessen Adresse aus der im RAM vor dem Umlenken gespeicherten Sprungadresse bekannt ist, welche sich das residente Programm merkt). Sie schalten sich also quasi zwischen die Systemprozesse.
  • Dieselbe Möglichkeit kann auch bei einigen Homecomputern genutzt werden, deren Betriebssystem, wie damals durchaus üblich, komplett im Festspeicher (ROM) untergebracht ist (so wie heute noch beim BIOS). Sofern das Betriebssystem beim Systemstart Sprungvariablen in den RAM-Speicher schreibt, können diese Sprungadressen, wie zuvor beschrieben, geändert werden.
  • Wenn diese Sprungadressen direkt aus dem ROM aufgerufen werden, muss die Anwendung beim Start das eigentliche Betriebssystem vollständig ersetzen und die systemrelevanten Hintergrundprozesse im ROM selbst aufrufen, um sich selbst und das System lebensfähig zu halten. Ein anschauliches Beispiel dafür ist eine Stoppuhr im Schachprogramm des Sinclair ZX-Spectrum. Wenn der Spieler während eines Zuges den Assemblerteil stoppt, um den Spielstand unter einem Basicprogramm zwischenzuspeichern, gibt der Interpreter regelmäßig die Kontrolle an die Schachuhr zurück, die dadurch weiter läuft.

Die TSR-Programme unter DOS

Ein TSR-Programm wird geladen und, vorerst wie jedes normale Programm, abgearbeitet. Normalerweise beendet sich ein DOS-Programm durch Aufruf der DOS-Betriebssystemfunktion (Teil des Software-Interrupts 21h) Interrupt 21h, Funktion 4Ch oder einfach nur Interrupt 20h. DOS gibt daraufhin den vom Programm benutzten Speicher und andere Ressourcen frei. Bei TSR-Programmen wird der „normale“ (transiente) Ausführungsteil zwar ebenfalls im Speicher beendet (manchmal sogar der Speicher freigegeben), hierzu wird aber eine andere DOS-Funktion aufgerufen; diese ist entweder Interrupt 27h oder Interrupt 21h, Funktion 31h. Der „besondere“ (residente) TSR-Teil, ein kleines Kontrollzentrum, bleibt dann auch weiterhin im Speicher aktiv, um bei Bedarf erneut aufgerufen zu werden.

Damit dieser TSR-Dienst aktiv bleiben kann, erfolgt die so genannte Interruptverbiegung. Dabei wird aus der Interruptvektor-Tabelle des Systems (bei DOS-Computern immer im ersten KB des Speichers) die Sprungadresse zum ursprünglichen Code besorgt, im neuen Interruptvektor gespeichert, und zum Schluss der Tabellen-Eintrag des Interrupt auf den eigenen Vektor umgeschrieben. Beim Aufruf des Interrupts (möglicherweise ein Softwareinterrupt) wird aus der Interruptvektor-Tabelle die Adresse zum resident gebliebenen Teil des TSRs gelesen und dieser ausgeführt. Je nach Art des TSRs (und, bei Softwareinterrupts, je nach aufgerufener Funktion) kann der residente Teil dann auch den vorigen Interruptvektor ausführen.

Ein sehr beliebtes Beispiel ist der Timer-Interrupt (Interrupt 1Ch Timer) für eine residente Uhr. Dies geschieht fast genauso wie oben für Homecomputer beschrieben, aber mit Hilfe von Interrupts hardwaregesteuert und damit unabhängiger von Softwareschwächen. Damit laufen TSR-Programme wesentlich stabiler. Der unter DOS wahrscheinlich am öftesten „verbogene“ Softwareinterrupt ist der DOS-Funktions-Interrupt (Interrupt 21h DOS), der die meisten Betriebssystemfunktionen des DOS für andere Programme enthält. TSR-Programme können beispielsweise bestimmte Funktionen überwachen, aufzeichnen, verbieten oder auch im geladenen DOS eigentlich nicht vorhandene Funktionen komplett hinzufügen.

Gerätetreiber sind ein weiteres Anwendungsbeispiel für TSR-Programme. Einfache Beispiele hierfür sind DOS-Maustreiber (Hardware-Interrupt 14h – serielle Schnittstelle, sowie Software-Interrupt 33h - Mausfunktionen für DOS-Programme) für DOS-Anwendungen, sowie Tastatur- und EGA-Treiber, Treiber für den Erweiterungsspeicher usw. Beim Einrichten eines Computers sollte man aufgrund der besonderen Verhaltensweise von TSR-Programmen, die nur in den konventionellen Speicher geladen werden könne, grundsätzlich größere TSR-Programme vor kleineren laden, da die Lücken, die ihre transienten Teile hinterlassen, möglicherweise von den kleineren TSR-Programmen ausgefüllt werden können – umgekehrt kann es passieren, dass die größeren nicht mehr in den Speicher passen, da die „Lücken“, die die transienten Teile der kleineren hinterlassen, nicht mehr für die größeren ausreichen. Manche TSRs vermeiden das Entstehen von Speicherlücken auch durch geschicktes Verschieben der zu installierenden Interruptvektoren.

Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем написать курсовую

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Terminate and Stay Resident — (TSR) is a computer system call in DOS computer operating systems that returns control to the system as if the program has quit, but keeps the program in memory. Many software vendors use the call to create the appearance of multitasking, by… …   Wikipedia

  • terminate and stay resident — see ↑TSR • • • Main Entry: ↑terminate …   Useful english dictionary

  • Terminate and Stay Resident — Terminate and Stay Resident,   TSR Programm …   Universal-Lexikon

  • terminate and stay resident program — rezidentinė programa statusas T sritis informatika apibrėžtis Programa, kuri lieka ↑operatyviojoje atmintyje ir po to, kai su ja baigiamas darbas. Gali būti paleista veikiant kitai programai, kada reikia atlikti kokį nors pagalbinį veiksmą,… …   Enciklopedinis kompiuterijos žodynas

  • Terminate and Stay Resident — program located in a computer s memory and which may be activated by pressing a combination of keys, TSR …   English contemporary dictionary

  • terminate-and-stay-resident program —    Abbreviated TSR. A small accessory or utility program that stays loaded in memory, even when it is not actually running. A TSR can be invoked quickly to perform a specific task. TSR s are often used with single tasking operating systems such… …   Dictionary of networking

  • resident program — rezidentinė programa statusas T sritis informatika apibrėžtis Programa, kuri lieka ↑operatyviojoje atmintyje ir po to, kai su ja baigiamas darbas. Gali būti paleista veikiant kitai programai, kada reikia atlikti kokį nors pagalbinį veiksmą,… …   Enciklopedinis kompiuterijos žodynas

  • List of computing and IT abbreviations — This is a list of computing and IT acronyms and abbreviations. Contents: 0–9 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 …   Wikipedia

  • HISTORICAL SURVEY: THE STATE AND ITS ANTECEDENTS (1880–2006) — Introduction It took the new Jewish nation about 70 years to emerge as the State of Israel. The immediate stimulus that initiated the modern return to Zion was the disappointment, in the last quarter of the 19th century, of the expectation that… …   Encyclopedia of Judaism

  • TSR — Terminate And Stay Resident (Computing » General) Terminate And Stay Resident (Governmental » Military) * Tactical Studies Rules (Governmental » Military) * Technical Support Representative (Business » Positions) * Technical Service… …   Abbreviations dictionary

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”