----------------------------------------------------------------- | SOFTWARE- | Systemserviceprogramme | MOS | | DOKUMENTATION | | | |-----------------| Anleitung fuer den |------------| | 11/87 | Systemprogrammierer | OMOS 2.0 | ----------------------------------------------------------------- Programmtechnische Anleitung fuer den Systemprogrammierer Beschreibung Teil 4: Systemserviceprogramme OMOS 1630 MGS K 1600 VEB Robotron-Vertrieb Berlin Dok.-Nr. C 8063-0447-1M2031 Die vorliegende Ausgabe der Software-Dokumentation - Anleitung fuer Systemprogrammierer, Teil 4: "Systemservice- programme" - entspricht dem Stand von 11/87. Nachdruck, jegliche Vervielfaeltigung oder Auszuege daraus sind unzulaessig. Die Ausarbeitung erfolgte durch ein Kollektiv des VEB Robotron- Vertrieb Berlin. Im Interesse einer staendigen Weiterentwicklung werden alle Leser gebeten, Hinweise zur Verbesserung dem Herausgeber mitzuteilen. Herausgeber: VEB Robotron-Vertrieb Berlin Mohrenstr. 62 Berlin 1086 (C) Kombinat Robotron 1987 Kurzreferat Die vorliegende Schrift, Anleitung fuer Systemprogrammierer, Teil 4: "Systemserviceprogramme", beschreibt die programmtechnischen Hilfsmittel des Systemprogrammierers, die dieser bei der Systemwartung verwendet bzw. deren Funktionen er auswerten muss. Inhaltsverzeichnis ------------------ Seite 1. Wartungsprogramm fuer Nutzerverzeichnisdateien ACNT 1630 (OMEX) 5 1.1. Aufgaben 5 1.2. Arbeitsweise 6 1.2.1. Herstellen einer Verzeichnisdatei 6 1.2.2. Hinzufuegen von Eintragungen 6 1.2.3. Pruefung von Eintragungen 7 1.2.4. Aenderung von Eintragungen 8 1.2.5. Ausgabe aller Eintragungen 9 1.2.6. Sortieren der Verzeichnisdatei 10 1.2.7. Loeschen von Eintragungen 10 1.2.8. Modifikation durch nichtprivilegierte Nutzer 11 1.3. Fehlermeldungen 11 2. Beendigungsprogramm SHUTUP 1630 (OMEX) 13 2.1. Aufgaben 13 2.2. Arbeitsweise 13 3. Programm zur Anzeige der Systembelastung RMD 1630 (OMEX) 16 3.1. Aufgabe 16 3.2. Arbeitsweise 16 3.3. Aufruf 16 3.4. HELP-Information 17 3.5. Speicherinformation 17 3.5.1. Inhalt der Speicheranzeigeseite 17 3.5.2. Aendern der Speicheranzeigeseite 19 3.5.2.1. Kommando FREE 19 3.5.2.2. Kommando RATE 19 3.6. Anzeige der aktiven Tasks 19 3.6.1. Inhalt der Anzeigeseite der aktiven Tasks 19 3.6.2. Aendern der Anzeigeseite der aktiven Tasks 20 3.6.2.1. Kommando OWNER 20 3.6.2.2. Kommando PRIORITY 20 3.6.2.3. Kommando TASK 20 3.7. Taskheaderanzeige 20 3.7.1. Inhalt der Taskheaderanzeigeseite 20 3.7.2. Aendern der Taskheaderanzeigeseite 21 3.8. Fehlermeldungen 21 4. Programm zur Ueberwachung des dynamischen Speichers PMT 1630 (OMEX) 22 4.1. Aufgabe 22 4.2. Arbeitsweise 22 4.2.1. Aktionen bei verschiedenen Poolbedingungen 23 4.2.1.1. "High-Pool"-Bedingung und ausreichende Fragmentgroesse 23 4.2.1.2. "Low-Pool"-Bedingung 23 4.2.1.3. Extreme Poolfragmentierung 24 4.3. Setzen der Poolparameter 24 5. Speicherverdichtungsprogramm SHF 1630 (OMEX) 26 5.1. Aufgabe 26 5.2. Arbeitsweise 26 3 6. Print-Spooler PRT 1630 (OMEX) 28 6.1. Aufgaben 28 6.2. Arbeitsweise 28 6.3. Besonderheiten 28 6.4. Fehlermeldungen 28 7. Programm zur Ausgabe von Mitteilungen bei Taskbeendigung TKTN 1630 (OMEX) 30 7.1. Meldungen bei Taskbeendigung 30 7.2. Fehlermeldungen 32 8. Gleitkommaemulator FPEM 1630 (OMEX) 33 8.1. Aufgaben 33 8.2. Aufbau des Emulatorprogramms 33 8.3. Arbeitsweise 34 8.4. Einbindung und Nutzung des Emulators im BS OMOS 1630 34 Abkuerzungsverzeichnis 36 Sachwortverzeichnis 40 Bildverzeichnis --------------- Seite 1: Speicheranzeigeseite (RMD) 17 4 1. Wartungsprogramm fuer Nutzerverzeichnisdateien ACNT 1630 (OMEX) ------------------------------------------------------------- 1.1. Aufgaben ------------- Fuer die Herstellung und Wartung eines Nutzerverzeichnisses lie- fert das System OMEX 1630 ein Programm. Wenn ein Nutzer versucht, sich an einem Bediengeraet anzumelden, vergleicht das System die Parameter des Kommandos HELLO mit dem Inhalt des Nutzerverzeich- nisses, um zu bestimmen, ob der Nutzer Zugriff zum System erhalten kann. Das Nutzerverzeichnis beschreibt alle UICs, die fuer den Gebrauch innerhalb des Mehrnutzersystems bestimmt sind. Mehrere Nutzer koennen denselben UIC haben, jeder Nutzer hat aber sein eigenes Kennwort. Das Programm ACNT erlaubt einem privile- gierten Nutzer: - Erzeugen des Nutzerverzeichnisses, - Hinzufuegen neuer Eintragungen zu der Datei, - Ueberpruefung einzelner Eintragungen, - Aenderung einzelner Eintragungen, - Ausgabe aller Eintragungen der Datei, - Loeschen einer Eintragung aus der Datei und - Sortieren des Nutzerverzeichnisses. Wenn das Programm aktiviert ist, gibt es alle Options aus und fordert vom Nutzer, dass er eine Option auswaehlt. Der Nutzer gibt den ersten Buchstaben der gewuenschten Option ein (z.B. S fuer Sortieren). Das Programm antwortet, indem es weitere Einga- ben anfordert, oder durch die Ausgabe von Informationen ent- sprechend der gewaehlten Option. Jede Eintragung enthaelt die folgenden Informationen: - einen UIC, der als Eintragungsnummer dient, - ein Kennwort, - das Systemgeraet des Nutzers, - den Vornamen, - den Zunamen, - Standard-CLI des Nutzers, - ob das Terminal nach dem Anmelden Slave- oder Noslave- status hat (abhaengig oder unabhaengig), - das Datum und die Zeit der letzten Anmeldung des Nutzers Ein nichtprivilegierter Nutzer kann mit Hilfe des Programms ACNT nur sein Kennwort aendern. Erlaubte Zeichen fuer Nutzernamen sind A - Z, 0 - 9, "$" (Dollar), "'" (Apostroph), "," (Komma) und "!" (Ausrufezeichen). Kleinbuchstaben werden in Grossbuchstaben umgewandelt. Jedes KOI-7-Zeichen, dessen Wert groesser als '40 ist, kann fuer das Kennwort verwendet werden. 5 1.2. Arbeitsweise ----------------- 1.2.1. Herstellen einer Verzeichnisdatei ---------------------------------------- Ein Mehrnutzersystem kann gleichzeitig nicht mehr als ein Nutzer- verzeichnis haben. Die Anfangsdatei sollte unmittelbar nach der Systemgenerierung erzeugt werden, um eine normale Nutzung des Systems zu gewaehrleisten. Das Wartungsprogramm fuer Nutzerver- zeichnisse sollte unter einem privilegierten UIC laufen (UIC [1,2] wird im allgemeinen verwendet), um zu verhindern, dass nichtprivilegierte Nutzer auf das Nutzerverzeichnis zugreifen koennen. Das Programm erzeugt eine Datei [0,0] OMEXM.SYS und setzt den Dateischutz auf [RWED,RWED,,] (Bedeutung dieser Schutz- maske siehe Anleitung fuer Bediener, Teil 2: "Exekutive OMEX 1630"). Dieser Schutz erlaubt nur privilegierten Nutzern und privilegierten Tasks den Dateizugriff. Ein privilegierter Nutzer kann die Verzeichnisdatei OMEXM.SYS mittels PIP kopieren. Die neue Datei erhaelt den OMEX-1630-Dateischutz, der den Lesezugriff fuer den Rest einschliesst. Der Systembediener sollte deshalb einen eigenen Dateischutz fuer alle Kopien des Nutzerverzeichnis- ses herstellen, um einen unerwuenschten Zugriff zur ACNT-Datei zu verhindern. Das folgende Beispiel zeigt, wie ein Nutzerverzeichnis herge- stellt wird: > RUN $ACNT ---------- * ACCOUNT FILE MAINTENANCE PROGRAM * Options are: A-ADD, C-CREATE FILE, D-DELETE, E-EXAMINE, L-LIST, M-MODIFY, S-SORT, CTRL/Z-EXIT Enter option: C Enter maximum number of accounts: n. Der Nutzer gibt eine Dezimalzahl (n.) ein, die die maximale An- zahl der Eintragungen festlegt, die in der Datei gefuehrt werden sollen. Das System erzeugt dann eine Verzeichnisdatei, die gross genug ist, die Zahl der Eintragungen aufzunehmen. Wenn die Verzeichnisdatei sich als ungenuegend erweist, kann sie durch Kopieren mit dem Dienstprogramm PIP und der Angabe einer entsprechend groesseren Blockanzahl mit Hilfe des Schalters /BL erweitert werden. Die oben angegebenen Schutzmassnahmen sollen in diesem Fall verwendet werden. 1.2.2. Hinzufuegen von Eintragungen ----------------------------------- Nachdem der Nutzer die maximale Anzahl der Eintragungen einge- geben hat, gibt das Programm aus: Enter account or for options (N,N): 6 Hiermit erlaubt das Programm ACNT dem Nutzer das Hinzufuegen von Eintragungen zu der Datei unmittelbar nach ihrer Erzeugung. Der Nutzer gibt entweder die oktale Nutzergruppen-Nr. und Mitglieds-Nr. des UIC ein, die durch ein Komma getrennt sind (g,m), oder er gibt das ESCAPE Zeichen ein, um eine Liste der gueltigen Options anzufordern. Jede neue Eintragung wird so eingegeben, dass die Datei in sortierter Reihenfolge entspre- chend dem UIC erhalten bleibt. In dem folgen- den Beispiel wird ACNT gestartet und dann gezeigt, wie Ein-tragungen zu der Datei hinzugefuegt werden. > RUN $ACNT ---------- * ACCOUNT FILE MAINTENANCE PROGRAM * Options are: A-ADD, C-CREATE FILE, D-DELETE, E-EXAMINE, L-LIST, M-MODIFY, S-SORT, CTRL/Z-EXIT Enter option: A Enter account or for options (N,N): 200,201 Passwort (<= 6 chars.): BAUM Default system device (DDU): SY First name (<=12 chars.): DIETER Last name (<=14 chars.): JUERGEN Enter user CLI (default=MCR): Slave terminal? [Y/N]: N UFD SY00: [200,201] > Enter account or for options (N,N): 200,202 ACNT fordert jede einzelne verlangte Information an, nachdem der Nutzer die UIC-Gruppen- und Mitglieds-Nr. eingegeben hat. Die Anforderung enthaelt die fuer das Kennwort, den Vornamen und den Zunamen erlaubte Anzahl von Zeichen. Die Eingabe des Standard-Systemgeraets erfordert einen Geraetenamen und eine Geraetenummer (wenn nichts angegeben, wird 0 vorausgesetzt). Nach Empfang des Terminalstatus gibt ACNT das MCR-Kommando UFD aus, um ein entsprechendes Nutzerdateiverzeichnis auf der Platte zu erzeugen. ACNT wiederholt dann die Meldung: Enter account or for options (N,N): Der Nutzer kann entweder fortfahren, neue Eintragungen hinzuzu- fuegen, oder das Programm beenden. 1.2.3. Pruefung von Eintragungen -------------------------------- Mit dieser Option des ACNT-Programms werden Details ueber ein- zelne Eintragungen ausgegeben. Nach Ausabe der Options und der Anforderung "Enter option" antwortet ACNT, wenn der Nutzer E eingibt, mit der Ausschrift Enter account or for options (N,N): Der Nutzer gibt dann die UIC-Nummer des Verzeichnisses ein, das geprueft werden soll. 7 Zum Beispiel: Options are: A-ADD, C-CREATE FILE, D-DELETE, E-EXAMINE, L-LIST, M-MODIFY, S-SORT, CTRL/Z - EXIT Enter options: E Enter account or for options (N,N): 200,201 [200,201] BAUM DIETER JUERGEN LB00: 12/10/86 13:05:26 00002 MCR N Enter account or for options (N,N): ACNT gibt entsprechend dem angegebenen Verzeichnis zwei Zeilen von Informationen ueber jede Eintragung aus. Die erste Zeile ent- haelt von links nach rechts den UIC des Verzeichnisses, das Kennwort, den Vornamen, den Zunamen, und das Standard-System- geraet. Die zweite Zeile enthaelt das Datum und die Uhrzeit der letzten Anmeldung fuer das Verzeichnis sowie die Zahl der Logins seit Einrichtung des Verzeichnisses, den Nutzer-CLI und den Status des Terminals nach dem Anmelden. Nach der Ausgabe aller Eintragungen fuer den angegebenen UIC fordert das Programm ein anderes Verzeichnis an oder gibt alle Options aus, wenn eingegeben wird. Wenn ACNT eine andere Verzeichnisnummer em- pfaengt, gibt es Einzelheiten der Eintragung ueber diesen UIC aus. ACNT verbleibt im Pruefmodus, bis der Nutzer eingibt, um die Liste der Options anzufordern. 1.2.4. Aenderung von Eintragungen --------------------------------- Die Option zur Aenderung erlaubt einem privilegierten Nutzer, das Kennwort, das Standard-Systemgeraet, den Vor- und Zunamen, den Nutzer-CLI und den Terminalstatus einer Eintragung zu aendern. Ein nichtprivilegierter Nutzer kann nur das Kennwort seiner eigenen Eintragung aendern. Beispiel fuer einen privilegierten Nutzer: Options are: A-ADD, C-CREATE FILE, D - DELETE, E - EXAMINE, L - LIST, M - MODIFY, S - SORT, CTRL/Z - EXIT Enter option: M Enter account or for options (N,N): 200,201 [200,201] BAUM DIETER JUERGEN LB00: 12/10/86 13:05:26 00002 MCR N This entry ? [Y/N]: Y Type to leave entry unchanged Password (<=6 chars.): BIRKE default system device (DDU): DK1 UFD DK1: [200,201] > First name (< = 12 chars.): Last name (< = 14 chars.): Enter user CLI (default=MCR): Slave terminal? [Y/N]: Enter account or for options ( N,N ): Nachdem der Nutzer den UIC angegeben hat, in dem eine Eintragung modifiziert werden soll, zeigt das Programm eine Eintragung mit dem angegebenen UIC an und fragt, ob diese Eintragung gemeint ist. 8 Der Nutzer kann dann entweder Y (ja) oder N (nein) eingeben, um anzugeben, ob die richtige Eintragung gefunden wurde oder nicht. Wenn ACNT eine negative Antwort erhaelt, durchsucht es die Datei nach einer anderen Eintragung unter dem gleichen UIC. Zum Beispiel: Enter option: M Enter account or for options (N,N): 200,201 [200,201] BIRKE DIETER JUERGEN DKO1: 15/10/86 11:00:10 00004 MCR N This entry ? [Y/N]: N [200,201] BAUM KLAUS MUELLER SY00: 12/10/86 13:05:26 00002 MCR Y This entry ? [Y/N]: Y Das Programm fragt nach jedem Teil einer Eintragung, ob er geaendert werden soll. Mit kann eine Aenderung verneint werden. In dem obigen Beispiel veraendert der Nutzer das Kennwort der Eintragung in BIRKE und das Standard-Systemgeraet in DK01. Das Programm gibt dann das MCR-Kommando UFD, um ein der Eintragung entsprechendes Nutzerdateiverzeichnis auf der neuen Systemplatte zu erstellen ,und gibt dann die uebrigen Teile der Eintragung aus. Eine Pruefung der Eintragung fuer [200,201] wuerde nun ergeben: [200,201] BIRKE DIETER JUERGEN DK01: 15/10/86 11:00:10 00004 MCR N Der Nutzer kann entweder den Modifikationsmodus durch Eingabe eines anderen Verzeichnisses fortsetzen, oder er kann die Liste der Options erhalten, wenn er eingibt. 1.2.5. Ausgabe aller Eintragungen --------------------------------- Mit dieser Option kann das ACNT-Programm veranlasst werden, ent- weder auf dem Zeilendrucker oder auf dem Bediengeraet des Nutzers alle Eintragungen auszugeben, die im Nutzerverzeichnis enthalten sind. Zum Beispiel: Options are: A-ADD, C-CREATE FILE, D-DELETE, E-EXAMINE, L-LIST, M-MODIFY, S-SORT, CTRL/Z-EXIT Enter option: L Print passwords? [Y/N]: Y All accounts? [Y/N]: N Enter group number (N): 200 Enter T - Terminal or L - Spooled Lineprinter: T [200,056] DOK GESINE REINWARTH SY00: 08/31/86 11:00:18 00046 MCR N [200,201] BIRKE DIETER JUERGEN DK01: 15/10/86 11:00:10 00004 MCR N [200,201] BAUM KLAUS MUELLER SY00: 12/10/86 13:05:26 00002 MCR Y In diesem Beispiel gibt ACNT die Eintragungen der angegebenen Gruppe in der Datei auf dem Bediengeraet des Nutzers aus. Das Programm gibt dann wieder alle Options aus und verlangt vom Nutzer die Auswahl einer Option. 9 1.2.6. Sortieren der Verzeichnisdatei ------------------------------------- Diese Option bewirkt das Sortieren einer Verzeichnisdatei in aufsteigender Reihenfolge des UIC. Zum Beispiel: Options are: A-ADD, C-CREATE FILE, D-DELETE, E-EXAMINE, L-LIST, M-MODIFY, S-SORT, CTRL/Z-EXIT Enter option: S Wenn die Sortierung beendet ist, wird diese Auflistung der Options wieder ausgegeben und von ACNT eine andere Option ange- fordert. Die Sortierung kann einige Minuten dauern (in Abhaen- gigkeit von der Groesse der Verzeichnisdatei). 1.2.7. Loeschen von Eintragungen -------------------------------- Die Loeschoption erlaubt einem Nutzer, einzelne Eintragungen von der Datei zu eliminieren. Zum Beispiel: Options are: A-ADD, C-CREATE FILE, D-DELETE, E-EXAMINE, L-LIST, M-MODIFY, S-SORT, CTRL/Z-EXIT Enter option: D Enter account or for options (N,N): 200,201 [200,201] BIRKE DIETER JUERGEN DK01: 00/00/00 00:00:00 00000 MCR N This entry? [Y/N]: N [200,201] BAUM KLAUS MUELLER SY00: 00/00/00 00:00:00 00000 MCR Y This entry? [Y/N]: Y Delete UFD and files? [Y/N] : Y PIP DK2:[200,201]*.*;*/DE > PIP DK2:[0,0]200201.DIR;*/DE > Enter account or for options (N,N): Nachdem der Nutzer den UIC angegeben hat, der geloescht werden soll, gibt ACNT eine passende Eintragung aus und fordert ein Y(ja) oder N (nein) als Antwort zur Bestaetigung. Eine negative Antwort veranlasst ACNT, nach anderen Eintragungen mit dem gleichen UIC zu suchen. Bei einer positiven Antwort fragt das Programm, ob der Nutzer auch das Nutzerdateiverzeichnis und die darin gefuehrten Dateien loeschen will. Bei einer positiven Ant- wort wird ein Kommando des Programms PIP gegeben, um diese Dateien zu loeschen. Verneint der Nutzer diese Frage, werden die Verzeichnisdateien und der UFD nicht geloescht. Der Nutzer kann dann den Loeschmodus beibehalten oder durch die Eingabe von die Ausgabe aller Options anfordern. 10 1.2.8. Modifikation durch nichtprivilegierte Nutzer --------------------------------------------------- Ein nichtprivilegierter Nutzer kann das Programm ACNT starten, um sein eigenes Kennwort zu veraendern. Alle anderen Options des Programms ACNT sind privilegiert. Beispiel > RUN ACNT -------- ACCOUNT FILE MAINTENANCE PROGRAM > Password (<= 6 CHARS.): TEST Type to leave entry unchanged Password (< = 6 chars.): PETER Operation ccmplete Wenn ein nichtprivilegierter Nutzer das Programm ACNT startet, wird unmittelbar nach der Identifizierung des Programms das Kenn- wort des Nutzers angefordert. Das Programm sucht dann im Nutzer- verzeichnis die entsprechende Eintragung heraus. Nun kann das neue Kennwort eingegeben werden. Mit kann diese Eingabe abgewiesen werden. Die Ausgabe von "Operation Complete" zeigt an, dass ACNT beendet wurde. Gibt jeder Nutzer ein Kennwort ein, das nicht als Eintragung im Nutzerverzeichnis vorhanden ist, wird die ACNT-Routine sofort mit der Ausschrift: "Operation Complete" verlassen. Um diese nichtprivilegierte Option zu erlauben, muss die ACNT-Task schon im System installiert sein. Ein nichtprivile- gierter Nutzer kann das Programm ACNT nicht durch die Option "Installieren-starten-streichen" des MCR-Kommandos RUN starten, da ACNT eine privilegierte Task ist. 1.3. Fehlermeldungen -------------------- Das Programm ACNT gibt die folgenden Fehlermeldungen aus: ACNT -- Account already exists Der Nutzer versucht, eine Eintragung mit einem UIC und Kennwort hinzuzufuegen, das im Nutzerverzeichnis schon enthalten ist. ACNT -- Account does not exist Der Nutzer versucht, eine Eintragung, die nicht exi- stiert, zu loeschen, zu pruefen oder zu modifizieren. ACNT -- Account file already exists Der Nutzer versucht, ein neues Nutzerverzeichnis mit der Option C zu erstellen, obwohl dieses existiert. ACNT -- Account file error - x. Das Programm stellt waehrend der Verarbeitung der Ver- zeichnisdatei einen E/A-Fehler fest. ACNT -- Account file full Das Nutzerverzeichnis ist voll. Der Nutzer kann keine weiteren Eintragungen hinzufuegen. Bei der Beschreibung der Herstellung eines Nutzerverzeichnisses ist angegeben, wie diese erweitert werden kann. 11 ACNT -- Cannot find Account Der Nutzer versucht, eine nicht existierende Eintragung zu loeschen, zu pruefen oder zu modifizieren. ACNT -- Invalid default device name Das angegebene Standard-Systemgeraet ist entweder nicht im System oder kein Geraet des Dateiformats FM16-D. ACNT -- Invalid option Als Anwort auf die Meldung ENTER OPTION: gibt der Nutzer kein A, C, D, E, L, M, S oder CTRL/Z ein. ACNT -- Listing file error Bei der Angabe der Option L legt ACNT eine temporaere Datei SY:[lfd.uic]ACCNT.TMP an. Wenn diese Fehlermitteilung auftritt, kann ACNT diese temporaere Datei nicht eroffnen, weil z.B. auf dem betreffenden Geraet kein solcher UFD eingerichtet ist, der Datentraeger voll ist o.a. ACNT -- Syntax or command input error Der Nutzer gibt ein ungueltiges Zeichen ein. Das korrekte Zeichen ist einzugeben. ACNT -- Warning ** Device does not exist on current system. OK? [Y/N]: Ein Geraet mit der angegebenen Geraetebezeichnung existiert im System nicht. Wird der Geraetename bestaetigt (Y), wird er als logischer Geraetename betrachtet. Bei Nichtbestaetigung (N) wird die Abfrage wiederholt. ACNT -- Workfile - dyn mem.exhausted Es ist nicht genuegender dynamischer Speicherbereich vorhanden. Die Task ist entweder in einer groesseren Partition oder mit einem groesseren Zuwachs zu installie- ren. ACNT -- Workfile - virtual storage exceeded Die Arbeitsdatei ueberschreitet den virtuellen Speicher- bereich. 12 2. Beendigungsprogramm SHUTUP 1630 (OMEX) ----------------------------------------- 2.1. Aufgaben ------------- Mit dem Beendigungsprogramm SHUTUP wird die Arbeit eines OMOS- 1630-Betriebsstems auf geordnete Weise beendet. Es gibt Warnmit- teilungen an alle verbundenen und angemeldeten Bediengeraete in dem System aus, bricht alle nichtprivilegierten Tasks ab und gliedert alle Geraete aus. Dieses Programm kann von jedem privi- legierten Bediengeraet oder von TT0: gestartet werden. Damit ein System das Beendigungsprogramm erfolgreich anwenden kann, muessen die folgenden Tasks installiert sein: 1. AT., das Verarbeitungsprogramm fuer Indirektkommando-Dateien 2. ACS, nur wenn dynamischer Auslagerungsbereich benoetigt wurde 3. BYE, wenn ein Mehrnutzersystem vorliegt 4. DMO, wenn es eingegliederte Datentraeger gibt 5. ELI, wenn das System der Fehlerregistrierung aktiv ist. 2.2. Arbeitsweise ----------------- Wenn das Programm aktiviert wird, fordert es nach seiner Identi- fizierung an: - nach wieviel Minuten das System seine Arbeit beenden soll, - das Intervall in Minuten zwischen den Warnmitteilungen bis zum endgueltigen Abbruch und - nach wieviel Minuten keine Anmeldungen mehr moeglich sind. Zum Beispiel: > RUN $SHUTUP ------------- SHUT DOWN PROGRAM Enter minutes to wait before shutdown: 15 Enter minutes between messages: 3 Enter minutes to wait before disabling logins: 5 OK to shutdown? [Y/N]: Y Nach Empfang dieser Eingaben wird die folgende Mitteilung an alle verbundenen oder angemeldeten (nur in Mehrnutzersystemen) Bedien- geraete gegeben: Please finish up, 15 minutes before shutdown Drei Minuten spaeter emfangen alle Bediengeraete eine andere Mit- teilung: Please finish up, 12 minutes before shutdown Das Beendigungsprogramm setzt die Ausgabe dieser Warnmitteilun- gen in den angegebenen Intervallen fort durch Verminderung der zuerst eingegebenen Zahl, bis die Wartezeit verflossen ist. Terminals, die auf NOBROADCAST gesetzt sind, erhalten diese Meldungen erst 5 Minuten vor Systembeendigung. Wenn das System Mehrnutzerunterstuetzung enthaelt, wird, nachdem die angegebene Zeitspanne, nach der eine Anmeldung nicht mehr erlaubt ist, verstrichen ist, vom Beendigungsprogramm die folgende Mitteilung auf dem Bediengeraet, von dem das Beendigungsprogramm gestartet wurde, ausgegeben: 13 All further logins are disabled Wenn die Zeitspanne verstrichen ist, bevor das System beendet wird, meldet das Beendigungsprogramm alle angemeldeten Bedienge- raete ab (nur in Mehrnutzersystemen), stoppt die Task zur Fehler- aufzeichnung, wenn sie aktiv ist, und ruft die Indirektkommando- Datei [1,2] SHUTUP.CMD auf, die systemspezifische MCR-Kommandos enthaelt, die bei einem Systemabschluss ausgefuehrt werden. Schliesslich wird Auslagerungsbereich freigegeben, eingegliederte Datentraeger werden ausgegliedert und das System haelt. An diesem Punkt kann der Bediener entweder ein anderes System laden oder das laufende System fortsetzen. Wenn das laufende System fortgesetzt werden soll, ist es notwendig, die Datentrae- ger einzugliedern und Auslagerungsbereich zuzuweisen. Beispiel -------- RUN $SHUTUP ------------ SHUT DOWN PROGRAM Enter minutes to wait before shutdown: 15 Enter minutes between messages: 3 Enter minutes to wait before disabling logins: 5 OK to shutdown? [Y/N] Y Please finish up, 15 minutes before shutdown Please finish up, 12 minutes before shutdown All further logins are disabled Please finish up, 9 minutes before shutdown Please finish up, 6 minutes before shutdown Please finish up, 3 minutes before shutdown Please finish up, 2 minutes before shutdown Please finish up, 1 minutes before shutdown (Datum) (Zeit) System is now shutting down ELI ELI - - REQUESTED "ERRLOG" TO STOP LOGGING ERL - - LOGGING ENDED AFTER 0 ERRORS >@[1,2] SHUTUP >ABO APPT1 >@ > ACS DK0: /BLKS = 0. ACS - - Checkpoint file now inactive DMO DK0:/DEV > DMO -- System disk beeing dismounted DMO -- System dismounted from DK0: Final dismount initiated 14:26:11 *** DK0: --- Dismount complete DMO DK1:/DEV DMO -- TT2: dismounted from DK1: Final dismount initiated 14:26:17 *** DK1: --- Dismount complete > DMO DK2:/DEV DMO -- TT2: dismounted from DK2: Final dismount initiated 14:26:27 *** DK2: -- Dismount complete > SHUTUP operation complete 14 Um die Systemarbeit abzuschliessen, wird in dem obigen Beispiel folgendes durchgefuehrt: - Start der Task ELI, um die Task ERL zu beenden, - Abarbeitung der Indirektkommando-Datei [1,2] SHUTUP.CMD, die die Task APPT1 abbricht, - Freigabe der Auslagerungsdatei auf DK0: (z.B. ACS DK0:/BLKS = 0) - Ausgliedern der Platten DK0:, DK1: und DK2: (z.B. DMO DK0:) Das Beendigungsprogramm gibt auch das Kommando BYE fuer alle an- gemeldeten Bediengeraete mit Ausnahme des Bediengeraetes, von dem das Programm SHUTUP gestartet wurde, und gibt dann eine Beendi- gungsmitteilung wie die folgende: > Have a good evening 13 - JUL - 79 20:56 TT1: Logged off Bemerkungen: - Wenn die Zeit bis zum Systemabschluss kleiner als 4 Minuten an- gegeben wird, werden die restlichen zwei Fragen nicht gestellt. Die Minuten zwischen den Mitteilungen werden auf 1 gesetzt und die Zeitspanne, nach der eine Anmeldung nicht mehr erlaubt ist, auf Null. - Die Minuten zwischen den Mitteilungen muessen ungleich Null sein und nicht groesser als die Minuten bis zum Systemabschluss. Die Minuten, bis eine Anmeldung nicht mehr er- laubt ist, duerfen nicht groesser sein als die Minuten bis zu Systemabschluss minus 3. Wenn irgendein Wert nicht korrekt ein- gegeben wurde, weist das Programm die Antwort ab und fordert sie erneut an. - Wenn 3 Minuten uebrigbleiben, bevor das System beendet wird, aendert das Programm SHUTUP das Intervall zwischen den Mittei- lungen automatisch auf 1. - Unter Umstaenden ist das Programm SHUTUP nicht mehr in der La- ge, das System vollstaendig zu beenden. Dateisysteme, die auf einer Platte ausgelagert sind, die in der Geraeteliste eher er- scheint als die Platte, die sie bedienen, bewirken, dass das Programm SHUTUP zum Halten kommt. Der einzige Weg, die Stockung zu beheben, ist, die Platte manuell auszugliedern. SHUTUP kann dann fortgesetzt werden. 15 3. Programm zur Anzeige der Systembelastung RMD 1630 (OMEX) ----------------------------------------------------------- 3.1. Aufgabe ------------ Die privilegierte Task RMD (Resource Monitoring Display) gibt dem Nutzer Informationen ueber die Ressourcen des Betriebssystems, wie den verfuegbaren Pool, die aktiven Tasks, ihre Position im Speicher, den Speicherplatz, den sie einnehmen. Diese Informati- onen werden auf dem Terminal dynamisch angezeigt, das heisst, sie werden in vom Nutzer festgelegten Zeitintervallen aktualisiert. 3.2. Arbeitsweise ----------------- Alle durch RMD verfuegbaren Informationen sind in vier Seiten zu je 24 Zeilen aufgeteilt: - Speicheranzeigeseite (Memory, M) - Anzeigeseite der aktiven Tasks (Active Task List, A) - Taskheaderanzeigeseite (Task Header, T) - HELP-Information (H) Mit Eingabe eines der in Klammern stehenden Buchstaben bringt man die entsprechende Informationsseite zur Anzeige, wenn RMD vorher gestartet wurde. Zu jeder Informationsseite - ausser der Help- Seite - gibt es eine Auswahlseite. Sie bietet die Moeglichkeit, den Inhalt der zugehoerigen Informationsseite zu veraendern. Man greift von der Informationsseite auf die Auswahlseite zu, indem man die ESCAPE-Taste drueckt. 3.3. Aufruf ----------- Wird RMD mit dem MCR-Kommando RUN gestartet, erscheint grundsaetzlich die Speicheranzeige, von der man durch Druecken der entsprechenden Taste auf andere Informationsseiten bzw. auf die Auswahlseite umschalten kann. Ist RMD bereits installiert, kann es folgendermassen gestartet werden: >RMD seite, setzkommando seite - eine Abkuerzung fuer die Informationsseiten (M, A, T oder H) setzkommando - ein gueltiges Kommando der zur gewaehlten In- formationsseite gehoerigen Auswahlseite. Diese Kommandos werden in den Abschnitten ueber die Informationsseiten ausfuehrlich erlaeutert. Auf diese Weise wird sofort die gewuenschte Informationsseite mit den in den Setzkommandos angegebenen Parametern bzw. mit Standardparametern, wenn Setzkommandos weggelassen werden, angezeigt. 16 3.4. HELP-Information --------------------- Die HELP-Information dokumentiert, wie man die Informationsseiten auswaehlt, wie man von einer Informationsseite auf die zugehoerige Auswahlseite umschaltet und wie man RMD verlassen kann, um in MCR einzutreten. Zur HELP-Information gelangt man durch Betaetigen der Taste H (fuer Help). 3.5. Speicherinformation ------------------------ 3.5.1. Inhalt der Speicheranzeigeseite -------------------------------------- Die Speicheranzeigeseite erhaelt man nach Start von RMD mit dem RUN-Kommando oder - wenn RMD bereits aktiv ist - durch Druecken der Taste M (fuer Memory). Auf dieser Seite ist graphisch der gesamte Hauptspeicher einschliesslich der ungefaehren Groesse und Position der Partitions und der aktiven Tasks dargestellt. Angezeigt werden zusaetzlich Poolstatistiken, der Name der gerade ausgefuehrten Task und weitere Informationen, die sich auf den Status des Betriebssystems beziehen. Im folgenden Bild ist eine Speicheranzeigeseite zu sehen: >RMD M 1.) OMEX 1630 124K 23-SEP-87 14:06:56 TASK= *IDLE* 2.) FREE= SY0:515. DK1:DMO }3.) DK0:125. DK2:146.} PARS POOL=7388.:7912.:14. } 4.) LDRPAR:T } 7388.:7912.:14. } TTPAR :T } 6.) SYSPAR:T }7.) IN: } L T M F DP . FCPPAR:D } 4 } D T C 1 KM . GEN :D } 7K } R : R 1 :T . OUT: }5.) . . A . R 0 } . . C . M 0K } . . P . D <>----)->--->)->----> 0*****7*****15*****23*****31*****38*****46*****54***** } E------P-------TT------T-D----D----------------------- } 8.) ------------------------------------------------------ } 62****69****77*****85*****93****100****108****116***** } ERRSEQ }9.) 0. } Bild 1: Speicheranzeigeseite Erlaeuterungen -------------- 1.) Groesse des Hauptspeichers in K Worten 2.) Name der Task, die gerade ausgefuehrt wird, oder IDLE, wenn eine "Warteschleife" ausgefuehrt wird 17 3.) Zahl der freien Bloecke auf den ersten vier FM16-D-Geraete in der Konfiguration. Ist ein Geraet nicht eingegliedert oder offline, so erscheint statt der Anzahl der freien Bloecke "DMO" bzw. "OFL". 4.) Poolinformationen ueber die Anzahl der Worte des groessten freien Blockes im Pool, Anzahl freier Worte im gesamten Pool und Anzahl freier Poolfragmente. Die zweite Zeile zeigt den seit Aufruf von RMD aufgetretenen unguenstigsten Zustand des Pools. 5.) Zahl der Tasks im Speicher und Speicherplatz, den sie belegen, sowie Zahl der aktiven ausgelagerten Tasks und deren Bedarf an Speicherplatz. 6.) Namen der Tasks, Driver und COMMON-Bereiche und deren Position im Speicher. Die Symbole unter den Namen haben folgende Bedeutung: < > aktive Task [ ] Task nicht aktiv, aber belegt Speicher ! ! Commonbereich + + unbenannter Commonbereich; der angezeigte Name ist die erste angebundene Task ( ) geladener Driver nach Geraetemnemonic benannt ---- Task nicht im Speicher fixiert ==== Task im Speicher fixiert Die Bindestriche und Gleichheitszeichen repraesentieren die Menge Speicher, die jede Task, Driver oder Commonbereich belegen. Wo nur Trennzeichen angezeigt sind, ist das oeffnende Trennzeichen an der Position des schliessenden Trennzeichens der vorhergehenden Task. 7.) Partitions im System mit Name und Typ T - Taskpartition S - Subpartition D - Systemgesteuerte Partition C - Common Partition 8.) Groesse und Position der Partitions Der Beginn jeder Partition ist mit dem Typsymbol, wie in der vorherigen Aufstellung aufgefuehrt, gekennzeichnet. Zusaetz- lich ist mit E die Exekutive und mit P der Pool markiert. Die Sterne sind proportionale Darstellungen des Speicher- platzes. Jede Ziffer in dieser Darstellung repraesentiert die gleiche Speichermenge wie ein Stern. Die Zahlen sind Angaben in K Worten. 9.) Von den Programmen der Fehlerregistrierung festgestellter Systemfehlerzaehler Wenn die Fehlerregistrierung nicht im System vorhanden ist, erscheint grundsaetzlich 0. 18 3.5.2. Aendern der Speicheranzeigeseite --------------------------------------- Um die Speicheranzeigeseite zu aendern, muss durch Druecken der ESCAPE-Taste auf die Auswahlseite umgeschaltet werden. Die Auswahlseite dokumentiert und fordert die Kommandos, mit denen die Speicheranzeige geaendert werden kann. Folgende Kommandos sind verfuegbar: FREEx= ddn: wobei x eine Zahl von 0 bis 3 und ddn: eine Geraetebezeichnung mit Einheitennummer sind RATE=s wobei s die Zeit in Sekunden ist, in der die Anzeige aktualisiert wird Die mit diesen Kommandos gewaehlten Parameter bleiben aktuell, bis andere eingestellt werden, auch wenn zwischenzeitlich auf andere Informationsseiten umgeschaltet wird. 3.5.2.1. Kommando FREE ---------------------- Die Speicheranzeigeseite zeigt standardmaessig die freien Bloecke auf der Systemplatte und den naechsten drei FM16-D-Geraeten in der Konfiguration. Mit dem Kommando FREE kann der Nutzer festlegen, dass anstelle eines dieser vier Geraete die freien Bloecke des im Kommando angegebenen Geraetes angezeigt werden. 3.5.2.2. Kommando RATE ---------------------- Das Kommando RATE verwendet man, um festzulegen, in welchem Zeitintervall die Anzeige aktualisiert wird. Standard ist eine Sekunde. 3.6. Anzeige der aktiven Tasks ------------------------------ 3.6.1. Inhalt der Anzeigeseite der aktiven Tasks ------------------------------------------------ Durch Druecken der Taste A (fuer Active Tasks) erhaelt man Zugriff zur Anzeigeseite der aktiven Tasks, wenn RMD bereits aktiviert ist. Von MCR aus gibt man: >RMD A ein. Die Anzeigeseite der aktiven Tasks bietet folgende Informationen: - Namen der Task - Laenge der Task in Bytes (oktal) - Terminals, von denen die Tasks gestartet wurden - Prioritaeten der Tasks - E/A-Zaehler der Tasks - Statusflags der Tasks Die Mnemonic der Statusflags ist die gleiche wie in der Anleitung fuer den Bediener, Teil 2, unter dem MCR - Kommando ATL beschrieben. 19 3.6.2. Aendern der Anzeigeseite der aktiven Tasks ------------------------------------------------- Um die Anzeigeseite der aktiven Tasks zu aendern, muss man durch Betaetigen der ESCAPE-Taste auf die Auswahlseite umschalten. Die Auswahlseite dokumentiert und fordert die Kommandos, mit denen die Anzeigeseite geaendert werden kann. Folgende Kommandos sind verfuegbar: OWNER=ttnn: wobei ttnn: ein Terminal bezeichnet PRIORITY=p wobei p die Laufprioritaet einer Task ist RATE=s wobei s die Zeit in Sekunden ist, in der die Anzeige aktualisiert wird (siehe 3.5.2.2.) TASK=taskname wobei taskname der Name der Task ist, deren Taskheader man anzeigen lassen will Die mit diesen Kommandos gewaehlten Parameter bleiben aktuell bis andere eingestellt werden, auch wenn zwischenzeitlich auf andere Informationsseiten umgeschaltet wird. 3.6.2.1. Komando OWNER ---------------------- Die Anzeigeseite der aktiven Tasks zeigt standardmaessig alle aktiven Tasks aller Terminals (OWNER=ALL). Das OWNER-Kommando erlaubt, nur die aktiven Tasks, die von einem angegebenen Terminal gestartet wurden, anzeigen zu lassen. 3.6.2.2. Kommando PRIORITY -------------------------- Man verwendet das Kommando PRIORITY, um die hoechste Prioritaet von Tasks, die man sehen will, festzulegen. Standard ist die hoechstmoegliche Prioritaet 250, so dass alle Tasks angezeigt werden. 3.6.2.3. Kommando TASK ---------------------- Das Kommando TASK erlaubt, auf die Taskheaderanzeigeseite umzu- schalten. Angezeigt wird der Taskheader der im Kommando angege- benen Task. Einen Standardwert gibt es nicht. Die Taskheaderan- zeige ist unter Pkt. 3.7. beschrieben. 3.7. Taskheaderanzeigeseite --------------------------- 3.7.1. Inhalt der Taskheaderanzeigeseite ---------------------------------------- Die Anzeige der Taskheader erreicht man von anderen Informations- seiten aus durch Druecken der Taste T (fuer Taskheader). Ist noch keine Task spezifiziert gewesen, so zeigt RMD zuerst die Auswahl- seite, so dass man die Task angeben kann, deren Kopf man sehen moechte. 20 Folgende Informationen sind in der Taskheaderanzeigeseite dar- gestellt: - Name der Task - Name der Partition, in der die Task laeuft - Statusflags der Task - Nummer des Terminals, von dem die Task gestartet wurde - Zaehler der ausstehenden E/A-Operationen - Standardprioritaet, Laufprioritaet und Auslagerungsprioritaet der Task - Laenge der Task in Worten (dezimal) - Inhalt der sechs allgemeinen Register, PC und PSW - Inhalt des Direktivestatuswortes ($DSW) - lokale Ereignisflags - logische Einheitennummernzuweisungen (max. 26 LUNs) Treten in der Liste der LUN-Zuweisungen Dateispezifikationen auf, so sind es jene, die bei Erstellung der Dateien vergeben wurden. Nachtraegliche Aenderungen dieser Dateispezifikationen kann RMD nicht erfassen. 3.7.2. Aendern der Taskheaderanzeigeseite ----------------------------------------- Um die Taskheaderanzeigeseite zu aendern, muss man durch Betaeti- gen der ESCAPE-Taste auf die Auswahlseite umschalten. Die Auswahlseite dokumentiert und fordert Kommandos, mit denen die Taskheaderanzeige geaendert werden kann. Folgende Kommandos sind verfuegbar: RATE=s - wobei s die Zeit in Sekunden ist, in der die Anzeige aktualisiert wird (siehe 3.5.2.2.) TASK=taskname - wobei taskname der Name der Task ist, deren Kopf man sehen will (siehe 3.6.2.3.) 3.8. Fehlermeldungen -------------------- RMD -- illegal command - xxx Man hat ein ungueltiges Kommando xxx entweder in der MCR- Kommandozeile oder in Beantwortung des Prompters der Auswahl- seite eingegeben. Eingabe des korrekten Kommandos RMD -- Page xxx does not exist Im MCR-Kommando wurde eine Anzeigeseite angefordert, die nicht existiert (falscher Buchstabe) Eingabe der korrekten Bezeichnung fuer die Informationsseiten (M, A, T oder H) 21 4. Programm zur Ueberwachung des dynamischen Speichers PMT 1630 (OMEX) ---------------------------------------------------------------- 4.1. Aufgabe ------------ Das Programm zur Ueberwachung des dynamischen Speichers PMT (Pool Monitor) ueberwacht Verwendung und momentane Belastung des dyna- mischen Speicherbereiches der Exekutive (Pool). Unter bestimmten Bedingungen, die der Nutzer selbst festlegen kann, schraenkt PMT die Verwendung des Pools ein und informiert den Nutzer ueber kritische Zustaende des Pools. Diese kritischen Zustaende koennen daraus resultieren, dass die Menge der vom System intern erzeugten und verwendeten Systemtabellen zu gross und damit der zur Verfuegung stehende Speicherplatz erschoepft wird. Um sich aus diesem kritischen Zustand selbst zu befreien, benoetigt die Exekutive wiederum eine bestimmte Menge an Speicherplatz im Pool. Um dies zu gewaehrleisten, werden die sogenannten Pool-Bedingungen festgelegt, auf die PMT reagiert. Diese Bedingungen sind: "Low-Pool"- und "High-Pool"-Bedingung und extreme Poolfragmen- tierung. "Low Pool" bedeutet, dass die Menge freien Pools unter einen festgelegten Wert gefallen ist oder dass das groesste freie Poolfragment kleiner als die geforderte Mindestgroesse geworden ist. PMT stellt eine "High-Pool"-Bedingung fest, wenn ausreichend freier Poolbereich vorhanden ist, um die einwandfreie Arbeit des Systems zu gewaehrleisten. Extreme Poolfragmentierung heisst, dass das groesste freie Pool- fragment kleiner als 84. Bytes geworden ist und dass damit die Arbeit des Systems gefaehrdet ist, da die von der Exekutive benoetigte Kommandopuffergroesse 84. Bytes betraegt. Die speziellen Werte, bei denen "Low-Pool"- oder "High-Pool"- Bedingungen auftreten, und die Mindestgroesse des groessten freien Poolfragmentes koennen vom Nutzer mit dem MCR- bzw. VMR- Kommando SET /PLCTL selbst festgelegt werden. 4.2. Arbeitsweise ----------------- Die Mitteilungen ueber die Poolereignisse "High Pool" und "Low Pool" erhaelt PMT von der Exekutive. Die Reaktionen auf diese Ereignisse werden von PMT ausgeloest. Dazu arbeitet PMT grund- saetzlich im Zyklus. In regelmaessigen Zeitabstaenden sowie bei Mitteilung ueber Poolereignisse durch die Exekutive bestimmt PMT die Groesse des groessten freien Poolfragments und vergleicht sie mit der minimal geforderten Fragmentgroesse. Basierend auf der Exekutivemitteilung ueber die momentane Poolbedingung und darauf, was PMT bei der Poolfragmentueberpruefung feststellt, bestimmt PMT den Status des Pools und reagiert entsprechend. 22 4.2.1. Aktionen bei verschiedenen Poolbedingungen ------------------------------------------------- 4.2.1.1. "High-Pool"-Bedingung und ausreichende Fragmentgroesse --------------------------------------------------------------- Der verfuegbare Poolraum ist groesser als der Grenzwert fuer diese Bedingung, der mit dem MCR- (bzw.VMR-) Kommando SET /PLCTL gesetzt werden kann, und die Groesse des groessten freien Pool- fragmentes liegt ueber der mit dem gleichen Kommando festgelegten minimalen Groesse. PMT entscheidet unter diesen Bedingungen, dass der "High-Pool"-Status eingetreten ist. Daraufhin setzt PMT sein eigenes Aufrufintervall auf eine Minute, erlaubt Auslagerung fuer sich selbst und entfernt alle Routinen zur Steuerung der Poolver- wendung. PMT stoppt sich dann selbst und startet wieder nach Ablauf des Aufrufintervalls. 4.2.1.2. "Low-Pool"-Bedingung ----------------------------- Wenn der freie Poolbereich kleiner ist als der Grenzwert fuer die "Low-Pool"-Bedingung, der mit dem MCR- (bzw. VMR-) Kommando SET /PLCTL gesetzt werden kann, entscheidet PMT, dass der "Low Pool Status" eingetreten ist. "Low Pool Status" wird von PMT eben- falls festgelegt, wenn das groesste freie Poolfragment kleiner als das geforderte Minimum (Standard 200. Bytes) geworden ist. Dieser Status aendert sich erst, wenn wieder die "High-Pool"- Grenze ueberschritten wird und dabei das groesste freie Pool- fragment ueber der festgelegten minimalen Groesse liegt. Der "Low Pool Status" veranlasst PMT zu folgenden Aktionen: - PMT verbietet die Auslagerbarkeit fuer sich selbst - setzt das eigene Aufrufintervall auf 20 Sekunden - verhindert, dass sich nichtprivilegierte Nutzer anmelden - unterdrueckt INSTALL/RUN/REMOVE-Folgen von nichtprivilegierten Terminals - sendet eine Warnmitteilung an alle angemeldeten Terminals - gibt auf dem Konsolterminal eine Warnmitteilung und die Pool- statistik aus Die Warnmitteilungen an die Terminals haben folgendes Format: 11-AUG-86 14:23:07--Low pool--please exit active tasks - Auf dem Konsolterminal erscheint z.B. folgende Ausgabe: 11-AUG-86 14:23:07--Warning--Pool is critically low Total free pool = 420. bytes Largest fragment = 298. bytes PMT gibt diese Mitteilungen in Abstaenden von 20 Sekunden aus, bis sich wieder der "High Pool Status" eingestellt hat. 23 4.2.1.3. Extreme Poolfragmentierung ----------------------------------- Extreme Poolfragmentierung bedeutet, dass das groesste freie Poolfragment kleiner als 84. Byte ist. In diesem Fall ueber- schreibt PMT die von der Exekutive gemeldete Poolbedingung und entscheidet grundsaetzlich auf "Low Pool Status". Um eine voellige Ausschoepfung des Pools zu verhindern, fuert PMT folgen- de Schritte aus: - Eintritt des Systems in den Kernel-Modus. Dadurch wird verhindert, dass andere Tasks die Steuerung erhalten. - PMT verhindert durch Loeschung des speziellen TCB-Zeigers die Aktivierung von TKTN. - PMT sendet eine Mitteilung an das Konsolterminal, in der verlangt wird, eine oder mehrere der angezeigten Tasks abzu- brechen. Hat man am Konsolterminal Tasks zum Abbruch ausge- waehlt, kehrt das System solange in den User-Modus zurueck, bis die Abbruchoperationen beendet sind. - PMT zeigt auf Anforderung eine aktualisierte Liste der abbrechbaren Task oder stellt fuer mindestens 7 Sekunden den User-Modus ein und gibt damit dem System die Moeglichkeit, sich selbst aus dem "Low Pool Status" zu befreien. Die von PMT auf dem Konsolterminal angezeigten Tasks sind abbrechbare Tasks, das heisst sie genuegen folgenden Bedingungen: - sie sind aktiv und im Speicher resident - es sind keine vom Konsolterminal gestarteten privilegierten Tasks - es sind keine Kommandozeileninterpreter (CLI) - es sind keine ACP-Tasks (Zusatzsteuerroutinen) - es sind keine Tasklader Die in der Liste erscheinenden Tasks sind nach absteigender Prioritaet geordnet. Bei der Auswahl der abzubrechenden Tasks sollte man sehr sorgfaeltig vorgehen. Auf Anforderung abgebrochene Tasks haben ihre Aufgaben noch nicht erfuellen koennen, wodurch ganze Anwen- dungsloesungen an nicht definierten Stellen abgebrochen werden und ein Wiederanlauf schwierig ist. Es ist deshalb guenstig, solche Tasks, die nicht abgebrochen werden sollen, als privile- gierte Tasks vom Konsolterminal aus zu starten. 4.3. Setzen der Poolparameter ----------------------------- Das MCR- (bzw. VMR-) Kommando SET /PLCTL dient zum Festlegen der "High-Pool"- und "Low-Pool"-Grenzen, der minimalen Groesse des groessten freien Poolfragmentes und der Basisprioritaet. Mit der Basisprioritaet legt man fest, welche bei "Low Pool Status" angeforderten Tasks vom Zugriff zu Speicherressourcen ausge- schlossen sind, das sind alle Tasks, deren Prioritaet kleiner als die Basisprioritaet ist. Das Kommando hat folgendes Format: SET /PLCTL = high:low:frsiz:basep 24 Dabei bedeuten: high - "High-Pool"-Grenze, Standardwert 1600. Bytes low - "Low-Pool"-Grenze, Standardwert 600. Bytes frsiz - Poolfragmentgroesse, Standardwert 200. Bytes basep - Basisprioritaet, Standardwert 51. 25 5. Speicherverdichtungsprogramm SHF - 1630 (Shuffler) ----------------------------------------------------- 5.1. Aufgabe ------------ In einer systemgesteuerten Partition (siehe Anleitung fuer den Bediener, Teil 2) koennen so viele Tasks gleichzeitig laufen, wie momentan in ihr Platz haben. Nach Beendigung einer Task wird ihr Speicherplatz fuer andere, auf Speicherplatzzuweisung wartende Tasks freigegeben. Durch die unterschiedlichen Laufzeiten der Tasks und durch deren verschiedene Groessen ist der insgesamt frei werdende Speicherplatz zerstueckelt, d.h. im Speicher nicht physisch zusammenhaengend, wie fuer eine Task notwendig, bzw. sind die einzelnen freien Fragmente nicht immer gross genug, um eine neue Task laden zu koennen. Um diesem Umstand zu begegnen, wurde der Shuffler entworfen. Der Shuffler ist eine privilegierte Task, die in systemgesteuerten Partitions den von Tasks belegten Speicherplatz verdichtet, um den in der Partition vorhandenen freien Speicher- platz moeglichst zusammenhaengend zu gewinnen. Damit wird versucht, ausreichend Speicherplatz zu schaffen, in den wartende Tasks geladen werden koennen. Der Shuffler tritt immer dann in Aktion, wenn Speicherplatzanforderungen von Tasks wegen mangelnden zusammenhaengenden Speicherplatzes fehlgeschlagen sind. 5.2. Arbeitsweise ----------------- Wenn die Speicherplatzanforderung einer Task mit einem Fehlver- such endet, fordert die Exekutive den Shuffler an. Der Shuffler sucht dann in einer systemgesteuerten Partition, fuer die wenigstens eine Task auf Platz wartet, nach freiem Speicherplatz. Ist dieser vorhanden, fuehrt der Shuffler folgende Schritte aus: 1. Er fordert die Exekutive auf, alle Tasks, die gestoppt und auslagerbar sind, und Tasks, die durch ein CLI- Kommando blockiert und auslagerbar sind, auszulagern. 2. Der Shuffler blockiert alle Tasks in der Partition und versucht, sie in Richtung auf die Basis der Partition zu verschieben. Hat eine Task ausstehende E/A-Operationen, wartet der Schuffler etwa 0,5 Sekunden. Ist in dieser Zeit der E/A- Zaehler der Task nicht Null geworden, wird diese Task markiert, und der Shuffler beginnt wieder mit dem ersten Schritt. 3. Jede Task, deren E/A-Zaehler innerhalb 30 Sekunden Null wird, verschiebt der Shuffler in Richtung auf die Partitionsbasis. 4. Die Blockierung aller Tasks wird aufgehoben, und der Speicherplatz oberhalb der Tasks wird freigegeben. 26 Nun kann, wenn der freie Speicherplatz ausreichend ist, eine wartende Task geladen werden. Der freie Speicherplatz kann aber aus zwei Gruenden zum Laden einer Task nicht nutzbar sein. Entweder ist die freigewordene Speichermenge zu gering fuer die Task oder die Partition, in der der Shuffler den Platz verdichtet hat, ist fragmentiert, so dass der Spicherplatz nicht zusammen- haengend vorliegt. Eine Partition kann z. B. fragmentiert sein, weil in ihrer Mitte ein Driver geladen ist, denn Geraetedriver koennen nicht verschoben werden. In diesem Fall ist der durch den Shuffler geschaffene gesamte freie Speicherplatz zum Teil vor dem Driver und zum anderen Teil am Ende der Partition lokalisiert, da der Shuffler keine Verschiebung um nichtverschiebbare Subparti- tions vornehmen kann. Wenn nach den ersten vier Arbeitsschritten des Shufflers die Speicheranforderung einer Task aus den eben genannten Gruenden weiterhin nicht erfuellt werden kann, fuehrt der Shuffler weitere Aktionen durch. Sie erfolgen fuer jedes Partitionfragment getrennt: 5. Der Shuffler erstellt eine Liste der Prioritaeten der in dem Partitionsfragment laufenden Tasks. 6. Anhand der Prioritaetenliste vergleicht der Shuffler die Groesse der wartenden Task mit der Speichermenge, die sich aus dem freien Speicherplatz und der Menge Speicher ergibt, die auslagerbare Tasks mit niedrigerer Prioritaet als die wartende Task einnehmen. Reicht dieser Platz aus, fordert der Shuffler die Exekutive auf, diese Tasks auszulagern. 7. Da im allgemeinen der durch die unter Punkt 6 eingeleiteten Massnahmen zusaetzlich freigewordene Speicherplatz nicht zusammenhaengend ist, beginnt der Shuffler wieder ganz von vorn, um den Speicherplatz zu verdichten. Kann der Shuffler fuer die wartende Task einer Partition keinen freien Platz schaffen, sucht er nach der naechsten systemgesteuerten Partition mit wartender Task. Gibt es keine vom Shuffler noch nicht bearbeitete Partition mit wartender Task mehr, endet die Arbeit des Shufflers. Nach welcher Zeit der Shuffler erneut durch die Exekutive aufgerufen wird, ist im Systemcommonbereich im Wort $SHFCT gespeichert. 27 6. Print-Spooler PRT 1630 (OMEX) -------------------------------- 6.1. Aufgaben ------------- Die Benutzung des Print-Spoolers ermoeglicht die Verlagerung von Druckauftraegen in den Hintergrund. Dabei werden Textdateien im KOI-7-Code mit max. 132 Zeichen pro Zeile gedruckt. 6.2. Arbeitsweise ----------------- Der Print-Spooler wird durch Tasks aktiviert, indem diese den Makro PRINT$ benutzen (Format siehe Anleitung fuer den Programmierer, Teil 5: "Dateizugriffssystem FCS 1630"). Beim Aufruf von Dienstprogrammen wird diese Funktion mit Hilfe des Schalters /SP angewiesen. 6.3. Besonderheiten ------------------- Die Task des Print-Spoolers PRT.TSK wird bei der Systemgenerierung gebildet. Die Kommandodatei fuer das Taskbilden kann so aufbereitet werden, dass fuer die Dateien, die ueber den Print-Spooler ausgedruckt werden, automatisches Loeschen nach dem Druck angewiesen wird (Siehe Anleitung fuer Systemprogrammierer, Teil 2: "Inbetriebnahme und Wartung des BS OMOS 1630"). Im Standardfall ist der Drucker LP0: mit LUN 3 als Ausgabegeraet vorgesehen. Ein Umlenken der Ausgabe kann mittels REDIRECT- Anweisung geschehen (siehe Anleitung fuer Bediener, Teil 2: "Exekutive OMEX 1630"). 6.4. Fehlermeldungen --------------------- Alle Fehlermeldungen werden mit der Kennzeichnung PRT eingeleitet. Sie enthalten u.a. den Namen der Task, die Daten an den Print-Spooler uebergeleitet hat, den Namen der fraglichen Datei, bei deren Uebertragung der Fehler auftrat, und einen dezimalen Systemfehlercode. Durch diesen Code wird die Ursache des Fehlers genauer beschrieben. Alle Fehler, die PRT meldet, gehoeren zur Klasse FATAL; deshalb wird beim Auftreten eines Fehlers der Druck der Datei abgebrochen. Konnte die Datei infolge eines Direktive-Fehlers nicht zum Druck gelangen, bricht PRT voellig ab. In den uebrigen Faellen wird der Druck beendet, PRT startet neu und bearbeitet die naechste Datei. RECEIVE FAILURE, d. -- TASK EXITING (Datenempfangsfehler, d. -- Task wird beendet) Waehrend des Versuchs, die naechste Dateiangabe aus der Warteschlange zu erhalten, trat ein Fehler bei einer Anweisung "Receive Data" oder "Exit" auf. Die ausgegebenene Dezimalzahl gibt den Systemfehlercode an. 28 ATTACH FAILURE - SENDER: task FILE: name.typ;ver, d. oder DETACH FAILURE - SENDER: task FILE: name.typ;ver, d. (Fehler beim Anschliessen oder Trennen von Drucker und Task) Der Drucker konnte nicht angeschlossen bzw. getrennt werden. I/O ERROR INPUT FILE - SENDER: task FILE: name.typ;ver, d. (E/A-Fehler bei der Eingabedatei) Waehrend des Lesens der Eingabedatei ist ein E/A-Fehler aufgetreten. Es bestehen folgende Moeglichkeiten: 1. Hardwarefehler am Geraet (Platte) 2. Zeile mit mehr als 132 Zeichen in der Eingabedatei 3. Datei zerstoert oder mit falschem Format d. LINES WERE TRUNCATED (d. Zeilen wurden beschnitten) NO FILE ID. - SENDER: task FILE: name.typ;ver, d. (Datei besitzt keinen File-ID) Fehler im Dateisystem NO DEVICE NAME - SENDER:task FILE: name.typ;ver, d. (Kein Geraetename) Die Druckanforderung enthaelt keinen Geraetenamen. OPEN FAILURE INPUT FILE - SENDER:task FILE: name.typ;ver, d. (OPEN-Fehler bei der Eingabedatei) Die angegebene Datei konnte nicht eroeffnet werden. Dafuer bestehen folgende moegliche Ursachen: 1. Die Datei hat eine Schutzmaske, durch die die anfordernde Task keinen Lesezugriff erhaelt. 2. Hardwarefehler am Geraet (Platte) 3. Datentraeger nicht eingegliedert. 4. Angegebenes UFD existiert nicht. 5. Angegebene Datei ist im entsprechenden UFD nicht vorhanden. 6. Die Datei ist geloescht. PRINT ERROR - SENDER: task FILE: name.typ;ver, d. (Druck-Fehler) QIO-Anweisung fuer den Drucker wurde abgewiesen. 29 7. Routine zur Ausgabe von Mitteilungen bei Taskende TKTN 1630 (OMEX) ---------------------------------------------------------------- Soll eine Task mit Hilfe des MCR-Kommandos ABO abgebrochen werden, kann entweder vom Abbruchkommando selbst eine Fehler- mitteilung erfolgen, oder es wird eine Mitteilungsroutine fuer die Task-Beendigung (TKTN) aktiviert, von der die Ursache des Taskabbruches ausgegeben wird. Diese Routine wird auch aktiviert, wenn der Taskabbruch auf andere Weise als durch das Abbruchkom- mando hervorgerufen wird. Der Ausdruck hat das folgende Format: TASK "" TERMINATED 7.1. Meldungen bei Taskbeendigung --------------------------------- Die Abbruchursachen sind in der folgenden Aufstellung enthalten. Aborted via directive or Der Abbruch der Task erfolgt entweder durch ein Kommando des aktiven Kommandoprogramms oder durch eine Anweisung der Exe- kutive, die von einer anderen Task gegeben wurde. Aborted via Die Task wird durch ein Kommando des aktiven Kommandopro- gramms abgebrochen. Ast abort. Bad stack Eine AST-Routine kann nicht aufgerufen werden, weil die AST- Parameter nicht auf den Taskstack gebracht werden koennen. Checkpoint failure. Read error Eine Task kann nicht in den Speicher zurueckgeladen werden, nachdem sie ausgelagert worden war. IOT execution Die Task fuehrt einen IOT-Befehl aus, aber es war keine SST- Routine angegeben, um den Trap zu verarbeiten. Load failure. Read error Die Task kann infolge eines Hardwarefehlers nicht geladen werden. Memory protect violation Bei der Taskabarbeitung tritt eine Speicherschutzverletzung auf , aber es war keine SST-Routine angegeben, um den Trap zu verarbeiten. Non OMEX EMT execution Die Task enthaelt einen EMT-Befehl mit einem Argument, das ungleich '377 ist, aber es war keine SST-Routine angegeben, um den Trap zu verarbeiten. 30 Odd address or other trap four Die Task will einen Wortbefehl mit einer ungeraden Adresse ausfuehren, aber es war keine SST-Routine angegeben, um den Trap zu verarbeiten. Parity error Waehrend der Taskausfuehrung tritt ein Paritaetsfehler auf. Die Task ist im Speicher fixiert, so dass der Speicher nicht durch eine andere Task benutzt werden kann. Postmortem Dump not possible Fuer die Task kann kein Speicherabzug erzeugt werden. Die Gruende dafuer koennen sein: - Die Task PMD... ist nicht installiert. - Die abgebrochene Task und die Task PMD... befinden sich in der gleichen Partition und sind nicht auslagerbar. Postmortem Dump will be generated Die Task PMD... fuehrt den Speicherabzug fuer die abgebro- chene Task aus. Reserved inst execution Die Task will einen verbotenen Befehl ausfuehren, aber es war keine SST-Routine angegeben, um den Trap zu verarbeiten. SST abort. Bad stack Ein SST konnte nicht ausgefuehrt werden, da die SST-Parameter nicht auf den Stack der Task gebracht werden koennen. Task exit with outstanding I/O Eine Task wird beendet, obwohl noch eine oder mehrere E/A- Anforderungen ausstehen. Diese werden vom System ordnungs- gemaess abgeschlossen. Task installed in more than one system Die Taskabbilddatei war offensichtlich vorher in einem anderen System installiert, da der Taskkopf nicht zutreffende Zeiger enthaelt. Die Task ist aus dem STD (System Task Directory) mit REM zu entfernen und mit INS wieder einzutragen. T-bit trap or BPT execution Das T-Bit im Prozessorstatuswort wird gesetzt oder ein BPT- Befehl soll ausgefuehrt werden, aber es war keine SST-Routine angegeben, um den Trap zu verarbeiten. Trap execution Die Task fuehrt einen Trapbefehl aus, aber es war keine SST- Routine angegeben, um den Trap zu verarbeiten. 31 7.2. Fehlermedungen ------------------- Ausser bei Taskabbruch erfolgen von der Routine TKTN noch folgende Fehlerausschriften: *** ddnn: Checkpoint file now inactive Diese Mitteilung zeigt an, dass eine Anforderung, den Gebrauch einer Auslagerungsdatei auf dem Geraet ddnn: zu beenden, erledigt ist. Zwischen der Anforderung und dieser Mitteilung kann eine gewisse Zeit liegen, da ausgelagerte Tasks erst von der abzuschliessenden Datei in den Speicher zurueckgebracht werden muessen. *** "" Checkpoint space allocation failure In der Auslagerungsdatei ist nicht genug Platz, um die Task auszulagern. Die Task kann auch nicht in ihrem eigenen Taskbereich ausgelagert werden. *** "" -- checkpoint write error Beim Auslagern der angegebenen Task trat ein Fehler auf. *** ddnn: Dismount complete Diese Mitteilung zeigt an, dass die Ausgliederung des ange- gebenen Geraetes durch das Kommmndo DMO beendet ist. Das Geraet ist jetzt logisch vom System getrennt. *** Memory parity error in partition Das System der Fehlerregistrierung stellte einen Speicher- paritaetsfehler in der angegebenen Partition fest. *** ddnn: not ready Diese Mitteilung erscheint, wenn das angegebene Geraet nicht bereit ist. *** ddnn: select error Diese Mitteilung erscheint, wenn das ausgewaehlte Geraet nicht bereit ist oder mehr als ein Laufwerk die gleiche Geraetenummer hat. *** ddnn: unrecoverable hardware error Vom System der Fehlerregistrierung wurde auf dem angegebenen Geraet ein Hardware-Fehler festgestellt. *** Ventilator fault Diese Mitteilung erfolgt beim Ausfall des Luefters am Rechner und wird zyklisch aller 3 min. wiederholt. Gleichzeitig mit dieser Ausschrift wird die vorhandene Hard-copy-Einrichtung am Bediengeraet eingeschaltet und ein akustisches Signal am Bediengeraet erzeugt. Nach maximal 30 min. sollte der Rechner vom Anwender ausgeschaltet werden. Nach erfolgter Luefter- reparatur ist vom Bediener mit dem Kommando CAN die Task VLFN auszutragen. Dies geschieht durch folgende Kommandoeingabe >CAN VLFN Diese Fehlermitteilung erfolgt nicht von der Routine TKTN sondern wird von der Task VLFN ausgegeben. 32 8. Gleitkommaemulator FPEM (OMEX 1630) --------------------------------------- 8.1. Aufgabe ------------ Die Einbindung des FPEM in das Betriebssystem OMOS erfolgt mit der Zielstellung, Gleitkommainstruktionen softwaremaessig zu emulieren. Diese Emulation hat folgenden Sinn: 1. Programme, die Gleitkommainstruktionen des Arithmetikpro- zessors des K 1630 (ARP) verwenden, koennen ohne diese spezielle Hardware abgearbeitet werden. Es handelt sich hierbei um Befehle, die auch in den Arithme- tikprozessoren anderer SKR-Typen (CM 4/20, CM 14/20) vorhanden (auch als Floating-Point-Prozessor-Befehlssatz bezeichnet) sind. 2. Programme, die Instruktionen eines anderen Gleitkommainstruk- tionssatzes (Floating Point Instruktion Set - FIS) benutzen, der z.B. in SKR-Rechnern vom Typ CM 14/10 vorhanden ist, lassen sich ebenfalls ohne diese speziellen Hardwareein- richtungen abarbeiten. Somit wird folgendes Ziel erreicht: - Softwareloesungen, die eigentlich das Vorhandensein von speziellen Gleitkommabefehlsprozessoren voraussetzen, sind auf dem K 1630 auch ohne diese notwendigen Anpassungsarbeiten anwendbar. - Die Nutzung von Compilern (z. B. FORTRAN 77), die auch auf diese speziellen Hardwareeinrichtungen orientiert sind, ist ebenfalls ohne diese und ohne das Vorhandensein spezieller Laufzeitsystembibliotheken moeglich. 8.2. Aufbau des Emulatorprogramms --------------------------------- FPEM wird als privilegierte Task in das Betriebssystem eingebunden. Das Taskabbild (FPEM.TSK) enthaelt drei Einzel- komponenten, die der Einfachheit halber in diesem vereinigt sind: - Lader zum Binden des Emulators in das Betriebssystem - Emulator zur Realisierung der Gleitkommabefehle - Entlader zum Herausloesen des Emulators aus dem Betriebs- system Lader und Entlader arbeiten im Nutzermodus (User). Der eigentliche Emulator arbeitet im Systemmodus (Kernel). Die Aktivierung der einzelnen Komponenten des FPEM ist im weiteren beschrieben. 33 8.3. Arbeitsweise ----------------- Das Grundprinzip der Arbeit des Emulators besteht darin, dass von der Hardware als unbekannt registrierte Instruktionen programmtechnisch ausgefuehrt werden. Dazu wird der Systemtrap 10 (Illegal Instruktion) verwendet. Im System wird vor die dafuer vorgesehenen Behandlungsroutinen der Emulator gesetzt. Das heisst, alle vom Rechner nicht erkannten Befehle durchlaufen die Emulatorroutinen. Im Emulator werden diese Befehle analysiert und auf ihre Gueltigkeit (als einem der oben genannten Gleitkomma- befehlssaetze zugehoerig) ueberprueft und gegebenenfalls softwaremaessig abgearbeitet, wie es bei Vorhandensein der entsprechenden Hardware durch diese erfolgen wuerde. Wurde ein gueltiger Gleitkommabefehl analysiert und ausgefuehrt, wird der Kernel-Modus wieder verlassen und in das Nutzerprogramm an der dem Gleitkommabefehl folgenden Stelle wieder eingetreten. Ist der Befehl, der urspruenglich den Systemtrap 10 (Illegal Instruction) ausgeloest hatte, kein gueltiger Gleitkommabefehl, wird dieser vom Emulator an die fuer diesen Fall vorgesehene Behandlungsroutine im Systemkern weitergegeben (Behandlung von Trap 10). Treten durch die Ausfuehrung eines formal gueltigen Gleitkomma- befehls Fehler bei der Abarbeitung auf, so werden Routinen im Betriebssystem zur Behandlung folgender Traps aktiviert: - ODD ADDRESS - MEMORY PROTECT VIOLATION - FLOATING POINT ERROR - FIS ERROR Andere Fehler koennen nicht auftreten. Der Emulator simuliert alle internen Daten- und Statusregister der entsprechenden Hardware. 8.4. Einbindung und Nutzung des Emulators im Betriebssystem OMOS 1630 ----------------------------------------------------------------- FPEM wird bei der Systemgenerierung als privilegierte Task gebunden. Standardmaessig ist die Task so gebunden, dass sie in einer fuer sie reservierten Partition vom Typ "TASK" arbeiten soll. (Partitionname FPEM, Groesse 4 K). Damit wird gesichert, dass sich die Lage des Emulators im Speicher nicht aendert. Dies ist im Zusammenhang mit der Nutzung von Adress-Page-Registern des Systemkerns notwendig. Vor dem Gebrauch, d.h. vor dem Starten von Tasks, die Gleitkommabefehle enthalten, ist der Emulator zu: - installieren - fixieren und - aufzurufen. 34 Dies erfolgt mit MCR- bzw. entsprechenden VMR-Kommandos (im letzteren Fall erfolgt die Aktivierung bei jedem Systemanlauf). Bei Aufruf der Emulatortask wird der Lader aktiviert und stellt die Verbindung zwischen dem eigentlichen Emulator und dem System- kern her. Damit ist der Emulator aktiv und geht sofort in den "Suspend"-Status. Man hat danach die Moeglichkeit, den Emulator zu nutzen. Die Eingabe des RESUME-Kommandos bewirkt, dass der Entlader aktiv wird und die Trennung des Emulators vom Systemkern sowie die Freigabe des benoetigten Speicherplatzes erfolgt. Um das System zu entlasten, sollte der Emulator nur dann im suspendierten Status verbleiben, wenn man ihn zu einem bestimmten Zeitpunkt zu entladen beabsichtigt. Soll der Emulator immer verfuegbar sein, ist es sinnvoll, die suspendierte Task mit ABORT abzubrechen. Er ist dann allerdings resident im Speicher und laesst sich nicht mehr entladen. 35 Abkuerzungsverzeichnis ---------------------- ACNT (Account File Maintenance Wartungsprogramm fuer Nutzer- Program) verzeichnisse ACP (Ancillary Control Processor) Zusatzsteuerroutine AS Anschlusssteuereinheit AFP - fuer Festplattenspeicher AFS - fuer Folienspeichereinheit AIP - fuer paralleles Interface AIS - fuer serielles Interface AKP - fuer Kassettenplatten- speicher AMB - fuer Magnetbandspeicher APR (Address Page Register) Seitenadressregister ASCII (American Standard Code entspricht KOI7-Code for Information Interchange) AST (Asynchronous Systemtrap) Asynchroner Systemtrap AT Verarbeitungsprogramm fuer Indirekt-Kommandodateien BAD (Bad Block Locator Utility) Plattenpruefprogramm BDE Bedieneinheit BOT (Begin Of Tape) Bandanfang BRU (Backup and Restore Utility) Datensicherungsprogramm BS Betriebssystem CDA (Crash Dump Analyzer) Abbruchanalyseprogramm CIB (Controller Initialization Initialisierungsblock Block) fuer die Anschlusssteuer- einheit CLI (Command Line Interpreter) Programm zur Bearbeitung von Kommandos CMP (File Compare Utility) Dateivergleichsprogramm CSI (Command String Interpreter) Kommandozeileninterpreter DCB (Device Control Block) Geraetetypsteuerblock DCL Kommandosprache DCL DDT (Driver Dispatch Table) Tabelle der Eintrittspunkte eines Drivers DEP (Debugging Program) Testprogramm DFNB (Default File Name Block) Standarddateinamenblock DIC (Directive Identifikation Code) Anweisungsidentifikationscode DMP (Dump Utility) Dateidruckprogram DPB (Directive Parameter Block) Anweisungsparameterblock DSC (Disk Save and Compress) Dateirettungs- und Ver- dichtungsprogramm DSW (Directive Status Word) Anweisungsstatuswort E/A Ein- und Ausgabe EDI (Line Text Editor) Editoren EDT (Standard Editor) EFN (Event Flag Number) Ereignisflagnummer EOF (End of File) Dateiendekennsatz EOV (End of Volume) Datentraegerendekennsatz ERL (Error Logging) Fehlerregistrierung 36 FCB (File Control Block) Dateisteuerblock FCS (File Control Services) Dateizugriffsroutinen FDB (File Descriptor Block) Dateibeschreibungsblock FD16 Datensicherungsformat FE16 Global genormte Dateiformate (Dateiformat "established") FEX (File Exchange Utility) Dateiaustauschprogramm FIFO (First in - first out) FIFO-Speicherprinzip FL16 Dateiformat LAOS 1630 FLX (File Transfer Utility) Dateiumwandlungsprogramm FMT (Format Utility) Formatierungsprogramm fuer Magnetplatten FM16 Dateiformat MOOS 1600 und OMOS 1630 FNB (File Name Block) Dateinameblock FPEM (Floating-point Emulation Program) Gleitkommaemulator FPS Festplattenspeicher FQ16 Lokal genormte Dateiformate (Datenformat "queered") FSE Folienspeichereinheit FSR (File Storage Region) Dateispeicherbereich GCML (Get Command Line) Kommandozeilenlesen HDR (Header Label) Dateianfangskennsatz ICB (Interrupt Control Block) Interruptsteuerblock ID Identifikation IESR (Interrupt Enable/Disable Service Routine) Interrupt-Erlauberoutine IOX (I/O Exerciser) Allgemeines Geraetestprogramm ISR (Interrupt Service Routine) Interrupt-Bedienroutine ITB (Interrupt Transfer Block) Interrupt-Transfer-Block KBR Kommerzielles Basisrechner- system KMBE Kassettenmagnetbandeinheit KOI-7 entspricht ASCII-Code KROS Kombinat Robotron Standard KPS Kassettenplattenspeicher LBL Lochbandleser LBN (Logical Block Number) Logische Blocknummer LBR (Librarian Utility) Bibliothekar LC (Location Counter) Speicherplatzzaehler des Assemblers LUN (Logical Unit Number) logische Geraetenummer LUT (Logical Unit Table) Tabelle der logischen Geraetenummern LP (Line Printer) Zeilendrucker MAC Makro-Assembler MBG Magnetbandgeraet MCR Kommandoprogramm MFD (Master File Directory) Hauptdateiverzeichnis MGS Mikrorechnergeraetesystem MOEX Exekutive des MOOS MOOS 1600 Modulares Operationssystem 37 NP Nutzerprogramm OCB (Offspring Control Block) Block zur Steuerung der Mutter/Tochter-Taskverbindung ODT (On Line Debugging Tool) Testprogramm OMEX Exekutive des OMOS OMOS 1630 Optimiertes Modulares Betriebssystem PAR (Page Address Register) Seitenadressregister PAT (Objekt Module Patch Utility) Objektmodul-Korrekturprogramm PC (Program Counter) Befehlszaehler PCB (Partition Control Block) Partitionsteuerblock PDR (Page Description Register) Seitenbeschreibungsregister PIP (Peripheral Interchange Dateitransferprogramm Program) PRESRV (Preservation Utility) Duplizier- und Sicherungs- programm PRT (Print spooler) Print-Spooler PS (Processor Status Word) Prozessorstatuswort RAM (Random Access Memory) Speicher mit wahlfreiem Zu- griff RDB (Region Definition Block) Region-Definitionsblock SCB (Status Control Block) Statussteuerblock SD Seriendrucker SHF (Shuffler) Speicherverdichtungsprogramm SLP (Source Line Processor) Quelltext-Korrekturprogramm SKR System der Kleinrechner SP (Stack-pointer) Stackpointer, Kellerzeiger SR (Status Register) Statusregister SRD (Sort Directory Program) Sortierprogramm fuer Verzeichnisdateien SST (Synchronous Systemtrap) Synchroner Systemtrap STD (System Task Directory) Systemtaskverzeichnis SVE Speichervermittlungseinheit TCB (Task Control Block) Tasksteuerblock TKB (Task Builder) Taskbilder TKTN (Task Termination Noti- Mitteilungsroutine fuer Task- fication Routine) beendigung UCB (Unit Control Block) Geraetesteuerblock UFD (User File Directory) Nutzerdateiverzeichnis UIC (User Identification Code) Nutzeridentifikationscode UHL (User Header Label) Benutzereigene Datei- kennsaetze UTL (User Trailer Label) UVL (User Volume Label) VB (Virtual Block) Virtueller Block VBN (Virtual Block Number) Virtuelle Blocknummer VCB (Volume Control Block) Datentraegersteuerblock VFY (File Structure Verification Dateipruefprogramm Utility) VMR (Virtual Monitor Console Virtuelles Kommandoprogramm Routine) 38 VOL (Volume Label) Datentraegerkennsatz WDB (Window Definition Block) Fenster-Definitionsblock XDT (Executive Debugging Tool) Exekutivetesthilfe ZAP (Task Image File Patch) Dateikorrekturprogramm ZVE Zentrale Verarbeitungseinheit 39 Sachwortverzeichnis ------------------- ACS 13f. AT. 13 Anzeigeseite 13,16,19ff. Auswahlseite 16f.,19ff. BYE 15 CLI 5,7ff. Compilernutzung 33 DMO 13ff.,18 Druckauftrag 27 ELI 13ff. Entlader 33,35 FIS 33 FM16-D 18f. Fragmentierung 22ff.,25 Gleitkommabefehl 33ff. HELLO 5 HELP-Information 16ff. IDLE 17 Informationsseite 16,21 Kennwort 5,7,10 Lader 33,35 Mehrnutzersystem 5ff.,13 Nutzerverzeichnis 5ff. OFL 18 Option 5ff. Partition 17f.,21 Partition, systemgesteuert 25 Pool 16,18,22ff. Poolbedingung 22ff. Poolstatistik 17 PRINT$ 27 Prioritaet 19,21,24 Setzkommando 16 SHUTUP.CMD 14 Seicheranzeigeseite 16,17,19 Systemtrap 34 Taskheader 20 Tasks, aktive 16ff. Terminalstatus 8 UFD 7,10 UIC 5ff. 40