www.wikidata.de-de.nina.az
Ein TSR Programm im deutschsprachigen Raum oft speicherresidentes Programm ist ein DOS Programm das nach Ausfuhrung weiterhin im Speicher verbleibt und bei Bedarf erneut aufgerufen werden kann Die Abkurzung TSR stammt aus dem DOS Umfeld und steht fur Terminate and Stay Resident Das Konzept der Speicherresidenz wurde als Vorlaufer zu spateren Multitasking Anwendungen entwickelt damit bestimmte Aufgaben Uhr Treiber Systemdienste permanent als Hintergrundprozess ablaufen konnen oder schlicht um Funktionalitat des Betriebssystems zu erweitern oder zu ersetzen Inhaltsverzeichnis 1 Entwicklungskonzepte fur Hintergrundprozesse 2 Vorlaufer bei Homecomputern 3 Die TSR Programme unter DOS 4 WeblinksEntwicklungskonzepte fur Hintergrundprozesse BearbeitenMoglich und effektiv wurde dies Ende der 1970er Jahre hauptsachlich durch die Entwicklung leistungsfahiger 16 Bit Prozessoren und der Interrupt Architektur mit deren Hilfe eine Vielzahl von Geraten eines Rechners im regelmassigen Takt relativ unabhangig vom Betriebssystem angesprochen werden konnen Da eine Kommunikation zwischen diesen Geraten und dem Prozessor nicht ohne geeignete Verwaltungsprogramme Geratetreiber erfolgen kann bot sich damit eine neue Moglichkeit auch unabhangig von Hardwarekomponenten Programme zu schreiben die im Speicher verbleiben und von den Interrupts immer wieder im Hintergrund aufgerufen werden Vorlaufer bei Homecomputern BearbeitenZwingend notwendig ist die Interrupt Steuerung nicht Bereits zuvor waren die meisten Betriebssysteme auf 8 bit Prozessoren wie dem Zilog Z80 mit modularen Prozessen z B zur Speicher und Bildverwaltung ausgestattet Da diese uber Sprungadressen in regelmassigem Rhythmus abgearbeitet werden bieten sich fur weitere Anwendungen grundsatzlich zwei Moglichkeiten an diesem Konzept teilzunehmen vereinfachte Beschreibung Bei Betriebssystemen mit anderbaren Sprungadressen im RAM Speicher damals noch keine Selbstverstandlichkeit 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 zwischen ein Anwendungsprogramm und den Systemprozess Dieselbe Moglichkeit kann auch bei einigen Homecomputern genutzt werden deren gesamtes Betriebssystem wie damals durchaus ublich im Festspeicher ROM untergebracht ist so wie heute noch die Firmware des Systems Sofern das Betriebssystem beim Systemstart Sprungvariablen in den RAM Speicher schreibt konnen diese Sprungadressen wie zuvor beschrieben geandert werden Wenn diese Sprungadressen direkt aus dem ROM aufgerufen werden muss die Anwendung beim Start das eigentliche Betriebssystem vollstandig ersetzen und die systemrelevanten Hintergrundprozesse im ROM selbst aufrufen um sich selbst und das System lebensfahig zu halten Ein anschauliches Beispiel dafur ist eine Stoppuhr im Schachprogramm des Sinclair ZX Spectrum Wenn der Spieler wahrend eines Zuges den Assemblerteil stoppt um den Spielstand unter einem Basicprogramm zwischenzuspeichern gibt der Interpreter regelmassig die Kontrolle an die Schachuhr zuruck die dadurch weiter lauft Die TSR Programme unter DOS BearbeitenEin 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 Ausfuhrungsteil 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 ursprunglichen Code besorgt im neuen Interruptvektor gespeichert und zum Schluss der Tabellen Eintrag des Interrupt auf den eigenen Vektor umgeschrieben Beim Aufruf des Interrupts moglicherweise ein Software Interrupt wird aus der Interruptvektor Tabelle die Adresse zum resident gebliebenen Teil des TSRs gelesen und dieser ausgefuhrt Je nach Art des TSRs und bei Software Interrupts je nach aufgerufener Funktion kann der residente Teil dann auch den vorigen Interruptvektor ausfuhren Ein sehr beliebtes Beispiel ist der Timer Interrupt Interrupt 1Ch Timer fur eine residente Uhr Dies geschieht fast genauso wie oben fur Homecomputer beschrieben aber mit Hilfe von Interrupts hardwaregesteuert und damit unabhangiger von Softwareschwachen Damit laufen TSR Programme wesentlich stabiler Der unter DOS wahrscheinlich am haufigsten verbogene Software Interrupt ist der DOS Funktions Interrupt Interrupt 21h DOS der die meisten Betriebssystemfunktionen des DOS fur andere Programme enthalt TSR Programme konnen beispielsweise bestimmte Funktionen uberwachen aufzeichnen verbieten oder auch im geladenen DOS eigentlich nicht vorhandene Funktionen hinzufugen Geratetreiber sind ein weiteres Anwendungsbeispiel fur TSR Programme Einfache Beispiele hierfur sind DOS Maustreiber Hardware Interrupt 14h serielle Schnittstelle sowie Software Interrupt 33h Mausfunktionen fur DOS Programme sowie Tastatur und EGA Treiber Treiber fur den Erweiterungsspeicher usw Beim Einrichten eines Computers sollte man aufgrund der besonderen Verhaltensweise von TSR Programmen die nur in den konventionellen Speicher geladen werden konnen grundsatzlich grossere TSR Programme vor kleineren laden da die Lucken die ihre transienten Teile hinterlassen moglicherweise von den kleineren TSR Programmen ausgefullt werden konnen umgekehrt kann es passieren dass die grosseren nicht mehr in den Speicher passen da die Lucken die die transienten Teile der kleineren hinterlassen nicht mehr fur die grosseren ausreichen Manche TSRs vermeiden das Entstehen von Speicherlucken auch durch geschicktes Verschieben der zu installierenden Interruptvektoren Ein weit verbreitetes Hilfsprogramm das nach dem TSR Prinzip arbeitete war SideKick mit dem es moglich wurde Ausdrucke im Querformat auf das Papier zu bringen auch wenn weder das jeweilige Anwendungsprogramm noch sein Druckertreiber diese Option anboten Weblinks BearbeitenInterrupts and DOS system programming englisch Memento auf archive org Abgerufen von https de wikipedia org w index php title TSR Programm amp oldid 238297114