----------------------------------------------------------------- |SYSTEMUNTERLAGEN-| Betriebssystem OMOS 1630 | MOS | | DOKUMENTATION | Anwendungsbeschreibung | | |-----------------| |------------| | 05/87 | | OMOS 2.0 | ----------------------------------------------------------------- ANWENDERDOKUMENTATION ANWENDUNGSBESCHREIBUNG Betriebssystem OMOS 1630 MGS K 1600 VEB Robotron-Vertrieb Berlin Dok.-Nr. C 8062-0307-1M2031 Die vorliegende Ausgabe der Systemunterlagen-Dokumentation - Anwendungsbeschreibung Betriebssystem OMOS 1630 - entspricht dem Stand vom 05/87 und unterliegt nicht dem Aenderungsdienst. 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 Ausgabe: 2.0 Diese Schrift gibt einen Ueberblick ueber das Betriebssystem OMOS 1630. Sie sollte von allen Personen gelesen werden, die sich mit der Planung und Vorbereitung des Einsatzes von Rechnern des MGS K 1600 befassen. Sie sollte weiterhin von Nutzern des Betriebssystems OMOS 1630 als erste einfuehrende Schrift gelesen werden. Zum Verstaendnis der vorliegenden Schrift sind Grundkenntnisse auf dem Gebiet der elektronischen Datenverarbeitung erforderlich. Darueber hinaus ist die Kenntnis der Uebersichtskapitel der "Betriebsdokumentation Mikrorechner-Geraetesystem K 1630" nuetzlich. In der vorliegenden Schrift sind die Funktionen und Bestandteile des Betriebssystems OMOS 1630, wie sie in der Ausgabe 2.0 enthalten sind, beschrieben. Die Systemunterlagendokumentation des Betriebssystems OMOS 1630 besteht aus den Teilen - Anwendungsbeschreibung - Anleitung fuer den Systemprogrammierer - Anleitung fuer den Programmierer - Anleitung fuer den Bediener. Die Systemunterlagendokumentation wird durch Aenderungen und Ergaenzungen den jeweiligen Ausgaben angepasst. Inhaltsverzeichnis ------------------ Seite 1. Aufgabenstellung 5 1.1. Allgemeine Gesichtspunkte 5 1.2. Einsatzgebiet 5 1.3. Bestandteile des BS OMOS 1630 5 2. Geraetekonfiguration 8 3. Nutzerprogrammsystem 9 4. Exekutive OMEX 1630 12 4.1. Nutzerprogrammorganisation 12 4.2. Exekutive-Anweisungen 15 4.3. Datentraegerorganisation und Geraetebedienung 16 4.4. Bedienung 17 5. Dateizugriffsroutinen des OMEX 1630 (FCS 1630) 20 6. Dienstprogramme 22 6.1. Lochbandeingabeprogramm PTI 1600 (MOEX) 22 6.2. Bibliothekar LBR 1630 (OMEX) 22 6.3. Taskbilder TKB 1630 (OMEX) 23 6.4. Zeilenorientierter Editor EDI 1630 (OMEX) 24 6.5. Bildschirmorientierter Editor EDT 1630 (OMEX) 25 6.6. Dateitransferprogramm PIP 1630 (OMEX) 25 6.7. Dateidruckprogramm DMP 1630 (OMEX) 26 6.8. Dateiumwandlungsprogramm FLX 1630 (OMEX) 27 6.9. Dateiaustauschprogramm FEX 1630 (OMEX) 27 6.10. Plattenkopierprogramm DSC 1630 (OMEX) 28 6.11. Datensicherungsprogramm BRU 1630 (OMEX) 28 6.12. Dateipruefprogramm VFY 1630 (OMEX) 28 6.13. Testprogramme DEP 1630 (OMEX) und ODT 1630 (OMEX) 29 6.14. Plattenpruefprogramm BAD 1630 (OMEX) 30 6.15. Objektmodul-Korrekturprogramm PAT 1630 (OMEX) 31 6.16. Dateivergleichsprogramm CMP 1630 (OMEX) 31 6.17. Dateikorrekturprogramm ZAP 1630 (OMEX) 32 6.18. Abbruchanalyseprogramm CDA 1630 (OMEX) 32 6.19. Duplizier- und Sicherungsprogramm PRESRV 1630 33 6.20. Quelltexteingabeprogramm SLP 1630 (OMEX) 34 6.21. Formatierungsprogramm fuer Magnetplatten FMT 1630 (OMEX) 34 6.22. Sortierprogramm fuer Verzeichnisdateien SRD 1630 (OMEX) 35 7. Assembler MAC 1630 (OMEX) 36 8. System- und Taskueberwachung 38 8.1. Monitorprogramm zur Ressourcenueberwachung RMD 1630 (OM 38 8.2. Pool-Monitor PMT 1630 (OMEX) 38 9. Zusaetzlicher Service 39 9.1. Fehlerregistrierung ERL 1630 (OMEX) 39 9.2. Online-Geraetetestprogramme 39 9.3. Allgemeines Geraetetestprogramm IOX 1630 (OMEX) 39 9.4. Gleitkommaemulationsprogramm FPEM 1630 (OMEX) 40 9.5. Speicherverdichtungsprogramm SHF 1630 (OMEX) 40 9.6. Print-Spooler PRT 1630 (OMEX) 40 3 10. Bibliotheken 41 11. Generierung 43 Anlage 1 Typenbezeichnungen der Geraete 44 Abkuerzungsverzeichnis 45 Bildverzeichnis --------------- 1: Arbeitsschritte bei der Programmentwicklung 7 2: Taskzustaende 13 4 1. Aufgabenstellung ------------------- 1.1. Allgemeine Gesichtspunkte ------------------------------- Das hier vorgestellte Betriebssystem (BS) OMOS 1630 ist Be- standteil des vom VEB Kombinat Robotron konzipierten Mikrorech- nergeraetesystem (MGS) K 1600. Die Rechner des Mikrorechnergeraetesystems K 1600 sind Grundbe- standteil der Anwendungskomplexe Kommerzielles Basisrechnersystem (KBR) und Bildverarbeitungssystem (BVS) des Mikrorechnergeraete- systems K 1600 des VEB Kombinat Robotron. Das KBR ist ein universell einsetzbarer Anwendungskomplex zur Loesung eines breiten Spektrums wissenschaftlich-technischer und oekonomischer Probleme in allen Bereichen der Volkswirtschaft. Es wird sowohl autonom in Organisations-und Rechenzentren als auch in gekoppelter Betriebsweise in Rechnerhierarchien eingesetzt. Das BVS ist ein interaktives Auswertungssystem fuer die Ferner- kundung der Erde und fuer weitere Einsatzfaelle in Medizin und Biologie, in der Industrie und Grundlagenforschung. Der Mikrorechner K 1630 kann beim BVS als Steuer- oder Dispatcherrechner eingesetzt werden. Durch diese Einsatzgebiete ergeben sich zum Teil unterschiedliche Anforderungen an das jeweils verwendete Betriebssystem des Rechners. Diese unterschiedlichen Anforderungen werden durch das hier beschriebene modulare Betriebssystem OMOS 1630 erfuellt. Abgeschlossene Softwarekomplexe erweitern das jeweilige Betriebs- system zum Spezialsystem. Ausser der unmittelbaren Unterstuetzung der Anwendung der Rech- ner K 1630 werden mit dem Betriebssystem OMOS 1630 umfangreiche technologische Mittel zur Entwicklung von Anwenderprogrammen sowie zur Wartung und Pflege von Bibliotheken und Dateien bereit- gestellt. Die Entwicklung des Betriebssystems OMOS 1630 erfolgt mit dem Ziel, auf dem Niveau der Anwenderprogramme Kompatibilitaet zu den Betriebssystemen MOOS 1600 und OS-RW zu wahren. 1.2. Einsatzgebiet ------------------- Das Betriebssystem OMOS 1630 besteht aus einer Menge von Moduln und Programmen, aus denen Betriebssysteme fuer - kommerzielle Rechnersysteme - Bildverarbeitungssysteme generiert werden koennen. Das mit der vorliegenden Schrift vorgestellte BS OMOS 1630 ist fuer den Einsatz des K 1630 als "Kommerzielles Basisrechnersystem" KBR A 6402 und als Bildverar- beitungssystem BVS A 6470 vorgesehen. 5 1.3. Bestandteile des BS OMOS 1630 ----------------------------------- Das Betriebssystem OMOS 1630 enthaelt folgende Programme: - Exekutive (OMEX) (OMEX besteht selbst wiederum aus mehreren Programmen) - Dateizugriffsroutinen (FCS) - Dienstprogramme .Lochbandeingabeprogramm (PTI) .Bibliothekar (LBR) .Taskbilder (TKB) .Zeileneditor (EDI) .Bildschirmeditor (EDT) .Dateitransferprogramm (PIP) .Sortierprogramm fuer Verzeichnisse (SRD) .Dateidruckprogramm (DMP) .Datei-Formatwandlungsprogramme (FLX und FEX) .Datensicherungsprogramm (BRU) .Plattenkopierprogramm (DSC) .Dateipruefprogramm (VFY) .Testprogramme (DEP und ODT) .Plattenpruefprogramm (BAD) .Objektmodul-Korrekturprogramm (PAT) .Dateivergleichsprogramm (CMP) .Dateikorrekturprogramm (ZAP) .Abbruchanalyseprogramm (CDA) .Duplizier- und Sicherungsprogramm (PRESRV) .Formatierungsprogramm fuer Magnetplatten (FMT) .Quelltext-Korrekturprogramm (SLP) - Print-Spooler (PRT) - Systemserviceprogramme (RMD und PMT) - Speicherverdichtungsprogramm (SHF) - Fehlerregistrierung und Geraetetestprogramme - Makroassembler (MAC) - Gleitkommaemulator (FPEM) - Systembibliotheken fuer Makros und Objektmoduln Das Betriebssystem OMOS 1630 besteht demnach aus der Exekutive und einer Reihe von Systemprogrammen, die unter Steuerung der Exekutive arbeiten. Die Systemprogramme dienen der Programment- wicklung und -uebersetzung, der Ausfuehrung spezieller System- verwaltungsfunktionen, der Arbeit mit Dateien und der Unterstuetzung der Arbeit mit Dateien. Programmiersysteme fuer hoehere Systemsprachen gehoeren nicht zum Systembestand und muessen bei Bedarf zusaetzlich erworben werden. Die Anwendbarkeit solcher Programmiersprachen wie FORTRAN 1600, FORTRAN 77, COBOL 1600 ist gewaehrleistet. Das Zusammenwirken verschiedener Systemprogramme zur Herstellung eines Programms zeigt das folgende Bild am Beispiel eines in der Assemblersprache MACRO 1630 geschriebenen Programms. 6 Programmverarbeitung System- bzw. Steuerprogramm ---------------- | Eingabe eines| EDI 1630 / FEX 1630 |Quellprogramms| EDT 1630 ---------------- | V --------------- |Assemblierung|<---- MAC 1600 --------------- | | | V | -------------- | |synt. Fehler?| | -------------- | nein| |ja | | V | | ------------------ | |Textaufbereitung| EDI 1630 / EDT 1630 | ------------------ V A ----------- | | Binden | | TKB 1630 ----------- | | | V | -------------- | | log. Fehler?|-->| -------------- ja | |nein | V | ---------------- | | Programmlauf | | OMEX 1630 ---------------- | | | V | --------- | |Fehler ?| | --------- | nein| |ja | | V | | ---------------- | | Programmtest | DEP 1630 / ODT 1630 | ---------------- V ----------------- |arbeitsfaehiges| | Programm | ----------------- Bild 1: Arbeitsschritte bei der Programmentwicklung 7 2. Geraetekonfiguration ------------------------ Das Betriebssystem OMOS 1630 der Ausgabe 2.0 ist fuer die Arbeit mit dem K 1630 vorgesehen. Es wird vorausgesetzt, dass der Hauptspeicher nur mit Speicherbausteinen vom Typ RAM bestueckt ist und eine Groesse von 128 K Worten hat. (Die oberen 4 K Worte sind fuer die Realisierung der physischen Ein-/Ausgabe reserviert und koennen nur von privilegierten Tasks benutzt werden.) Durch die Exekutive OMEX 1630 wird die Bedienung folgender Geraete unterstuetzt: - Bildschirm-E/A-Geraet (Bedieneinheit) - Festplattenspeicher - Kassettenplattenspeicher - Lochbandeinheit - Kassettenmagnetbandeinheit - Magnetbandgeraet - Seriendrucker - Paralleldrucker - Rastersichtgeraet - Folienspeichereinheit - BVS-Spezifische Geraete . Rollkugel . Grafiksteuerung . Bildspeicher . Displayprozessor . Farbmonitor Die genauen Typenbezeichnungen der Geraete sind im jeweils gueltigen Systembestand fuer das MGS enthalten. Die Typenbezeichnungen der Geraete entsprechend dem derzeitigen Entwicklungsstand sind in Anlage 1 aufgefuehrt. Falls durch das MGS nicht andere Einschraenkungen gelten, werden maximal 16 Geraete bzw. Controller eines Typs durch OMEX 1630 unterstuetzt. Als Minimalkonfiguration sind ein Mikrorechner K 1630 mit 128 K Worten Hauptspeicher, eine Bedieneinheit und ein Kassettenplat- tenspeicher erforderlich. Die Folienspeichereinheit kann nicht Systemresidenz sein. 8 3. Nutzerprogrammsystem ------------------------ Allgemeines ----------- Eine Task, die abarbeitbare Programmeinheit, wird in einem zusammenhaengenden Speicherbereich, der Partition, abgearbeitet. Eine Partition wird durch ihren Namen, ihren Typ, ihre Basisadresse und ihre Groesse beschrieben. Der zur Verfuegung stehende Speicher kann in mehrere Partition unterteilt werden. Die Zuordnung Task - Partition bzw. Subpartition wird vom Nutzer beim Taskbilden bzw. beim Installieren der Task festgelegt. Zwischen Task und Partition bestehen Beziehungen, die von der Hardware- und Softwareleistung des Systems abhaengig sind. Adresszuweisung --------------- Als Adresszuweisung wird der Vorgang des Verbindens von Programmadressen (virtuelle Adresse) mit Adressen im physischen Speicher bezeichnet. Die Adresszuweisung wird hardwareseitig durch die Speichervermittlungseinheit (SVE) realisiert, die beim K 1630 verfuegbar ist. Die SVE verbindet Adressen eines Programms (0 - 32 K Worte) mit physischen Adressen (0 - 124 K Worte). Jede Task beginnt mit der Adresse 0 (virtuelle Adresse). Eine Task kann in jeder Partition abgearbeitet werden, die gross genug ist, die Task aufzunehmen. Partition-Typen --------------- OMEX 1630 unterstuetzt 2 Partition-Typen, die nutzergesteuerte Partition und die systemgesteuerte Partition. Eine nutzergesteuerte Partition kann zu einem Zeitpunkt jeweils nur eine Task enthalten. Um die nutzergesteuerte Partition effektiver zu verwenden, besteht die Moeglickeit, sie in max. 7 Subpartitions zu untertei- len. Jede Subpartition kann eine Task aufnehmen, so dass auf diese Weise 7 Tasks gleichzeitig in einer Partition untergebracht werden koennen. Eine derart organisierte Partition ermoeglicht es, dass derselbe Speicherbereich im Wechsel von einer grossen Task oder max. 7 kleinen Tasks belegt werden kann. In einer systemgesteuerten Partition organisiert die Exekutive die Speicherbereichszuweisung so, dass soviele Tasks wie moeglich gleichzeitig in einer Partition untergebracht werden koennen (dynamische Speicherverwaltung). Unterprogramme -------------- Unterprogramme im BS OMOS 1630 sind logisch abgeschlossene Programmeinheiten von selbstaendigen Tasks, die einzeln uebersetzt werden, zu denen von unterschiedlichen Stellen der Task verzweigt werden kann und die nach ihrer Abarbeitung die Rueckkehr zu dem auf den Aufruf folgenden Befehl organisieren. Verzweigung zum Unterprogramm und Rueckkehr zum rufenden Programm werden durch die Maschinenbefehle JSR und RTS realisiert. Unter- programme koennen zum Zeitpunkt der Taskbildung durch den Task- bilder direkt an eine Task gebunden werden. Sie koennen jedoch auch zu einem Paket zusammengefasst werden, das durch mehrere 9 Tasks gleichzeitig genutzt wird. Zu diesem Zweck werden die Unterprogramme als residente Bibliothek in eine Partition gela- den, das heisst, es wird eine unselbstaendige Task gebildet, die die gewuenschten Unterprogramme enthaelt. Werden anschliessend Tasks erzeugt, die Unterprogrammaufrufe enthalten, wird die Ver- bindung zu dieser Bibliothek hergestellt, indem deren Taskname als Parameter beim Taskbilden angegeben wird. Bis zu 7 derartiger Verbindungen zu Bibliotheken koennen hergestellt werden. Bevor die Bibliothek benutzt werden kann, muss die sie enthaltende unselbstaendige Task installiert werden, wobei die residente Bibliothek in den HS geladen wird. Segmentierung ------------- Die Segmentierung von grossen Tasks ist eng mit der Art der Adressierung des MGS K 1600 verbunden. Durch das Rechnerwort von 16 bit koennen Adressen von 0 bis 177777 (oktal; entspricht 32 K Worten dezimal) dargestellt werden. Der physische Hauptspeicher umfasst aber einschliesslich des Bereichs der Geraeteregiste 128 K Worte, so dass der von der Task verwendete Adressraum und der Adressraum des Hauptspeichers nicht uebereinstimmen. Der von der Task verwendete Adressraum von maximal 32 K Worten wird virtueller Adressraum genannt. Um den gesamten Hauptspeicher zu adressieren, ist eine Speichervermittlungseinheit (SVE) erforderlich, die ein 18-bit- Wort fuer die Adresse verwendet. Der so adressierbare Bereich von max. 128 K Worten wird physischer Adressraum genannt. Benoetigt eine Task mehr Speicherplatz als 32 K Worte, so ist das zu realisieren, indem sie Teile ihres physischen bzw. ihres virtuellen Adressraumes mehrfach belegt. Der Teil des physischen Speichers, zu dem die Task Zugriff hat, wird logischer Adressraum genannt. Um den virtuellen Adressraum einer Task ueber die Grenze von 32 K Worten hinaus zu vergroessern, kann die Task aus Segmenten zusammengesetzt werden, die abgeschlossene Arbeitsschritte bearbeiten. Ein Wurzelsegment mit allgemeinen Funktionen befindet sich dabei staendig im Hauptspeicher, waehrend die uebrigen Segmente gemaess einer beim Taskbilden anzugebenden Ueberlagerungsvorschrift bei Bedarf geladen werden. Die Ueberlagerung kann so gestaltet werden, dass die Segmente den physischen Adressraum bzw. den virtuellen Adressraum miteinander teilen. Im ersten Fall werden die Segmente bei Bedarf neu geladen, wobei sie eventuell vorher geladene ueberschreiben. Im zweiten Fall verbleiben alle Segmente nach dem Laden im physi- schen Adressraum; ihre Aktivierung erfolgt durch Neuzuweisung eines Teils des virtuellen Adressraums zum jeweiligen Teil des physischen Adressraumes. Die erste Methode - plattenresidente Ueberlagerung - verringert den Bedarf an physischem Adressraum. Die zweite Methode - virtuelle oder hauptspeicherresidente Ueberlagerung - verringert den Bedarf an virtuellem Adressraum und reduziert den Zeitbedarf fuer die Speicherorganisation. In diesem Fall werden bei der Adresszuweisung innerhalb der Task Exekutive-Anweisungen zur Speicherverwaltung benutzt. Mit diesen Anweisungen werden virtuelle Adressbereiche (Adressfenster) zu 10 verschiedenen Zeiten verschiedenen Teilen des logischen und damit des physischen Adressraumes (Regionen) der Task zugewiesen. Die Verbindung zu residenten geteilten Bibliotheken geschieht ebenfalls mit Hilfe von Anweisungen zur Speicherverwaltung, die jedoch vom Taskbilder bei Angabe der entsprechenden Option selbstaendig eingefuegt werden. (siehe auch Abschnitt 6.9. Taskbilder TKB 1630) Beide Methoden koennen kombiniert werden, um im konkreten Falle die effektivste Variante auszuwaehlen. Datenwortformate ---------------- Im BS OMOS 1630 existieren Moeglichkeiten zur Definition und Verarbeitung von Gleitkomma- und Integerzahlen. Gleitkommazahlen sind 2 oder 4 Worte (1 Wort = 16 bit) lang, wobei jeweils 1 bit fuer das Vorzeichen und 8 bit fuer den Exponenten verwendet werden. Integerzahlen koennen 1 bis 4 Worte umfassen. Zeichenketten sind darstellbar durch 1 Zeichen pro Byte. Als Code wird die Codetabelle KOI - 7HO des RGW - Standard ST RGW 356-76 verwendet. Ausserdem existiert noch eine gepackte Darstellung (RADIX50- Code), bei der jeweils 3 Zeichen einer Teilmenge des KOI7-Zei- chensatzes in einem Wort abgespeichert werden. 11 4. Exekutive OMEX 1630 ----------------------- 4.1. Nutzerprogrammorganisation -------------------------------- Allgemeines ----------- OMEX 1630 koordiniert die Abarbeitung aller zu bearbeitenden Tasks. Die Abarbeitung wird so organisiert, dass die System- leistungen effektiv genutzt und kurze Antwortzeiten auf Echt- zeitanforderungen erreicht werden. Obwohl jeweils nur eine Task die Steuerung der ZVE (Zentrale Verarbeitungseinheit) be- sitzen kann, ist Multiprogrammierung moeglich, weil bei der Ab- arbeitung einer Task Wartezeiten entstehen (z.B. Warten auf das Ende einer E/A-Operation), in denen andere Tasks bearbeitet werden koennen. Zur Realisierung dieser Arbeitsweise bedient sich die Exekutive einiger Mittel, die nachfolgend beschrieben werden. Taskstatus ---------- Um die Abarbeitung einer durch den Taskbilder TKB gebildeten Task durch die Exekutive zu ermoeglichen, muss die Task mittels Bedienerkommando installiert werden. Bis dahin existiert eine Task nur als Taskabbilddatei auf einem Direktzugriffspeicher. Beim Installieren registriert die Exekutive alle notwendigen Daten, um die Task auffinden und abarbeiten zu koennen. Diese Daten werden von der Exekutive in ein Systemtaskverzeichnis (STD) im Hauptspeicher eingetragen. Eine installierte Task ist weder im Hauptspeicher resident, noch bewirbt sie sich um irgend- welche Systemleistungen. Die Task ist lediglich der Exekutive bekannt. OMEX 1630 kennt zwei Taskzustaende: ruhend oder aktiv. Eine ruhende Task ist eine installierte Task, fuer die noch keine Startanforderung vorliegt. Eine aktive Task ist eine installierte Task, fuer die eine Startanforderung vorliegt. Sie bleibt aktiv, bis sie beendet oder abgebrochen wird. Von der Exekutive werden nur aktive Tasks bearbeitet. Eine aktive Task, die Zugriff zu allen von ihr benoetigten Systemleistungen (Speicherplatz, Geraete) hat, ist arbeitsfaehig. Sie bewirbt sich gleichzeitig mit anderen arbeitsfaehigen Tasks um die Zuteilung von Bearbeitungszeit (ZVE-Zeit). Die arbeitsfae- hige Task mit der hoechsten Prioritaet wird von der Exekutive bearbeitet. Eine aktive Task, die aufgrund noch nicht verfueg- barer Systemressourcen nicht bearbeitet werden kann, ist blok- kiert. Sie wird in eine nach Prioritaeten geordnete Warteschlange eingereiht, um auf die Zuteilung von Systemressourcen (z.B. Spei- cherplatz) zu warten. Schliesslich kann eine Task gestoppt sein, wenn sie wegen ausstehender E/A-Operationen oder nicht gesetzter Ereignisflags wartet. Ihre Prioritaet wird auf Null gesetzt, so dass von Tasks hoeherer Prioritaet ihre Auslagerung erzwungen werden kann. Der Unterschied zwischen ruhenden und aktiven Tasks besteht u.a. darin, dass eine ruhende Task weniger Hauptspeicherplatz belegt als eine aktive. Eine ruhende Task kann aber sehr schnell in den aktiven Zustand uebergefuehrt werden, weil der Exekutive bereits alle notwendigen Parameter fuer diesen Vorgang bekannt sind. 12 ----- 1 ----- 3 ----- | |--------->| |--------->| | | T | 2 | R | 4 | A | | |<---------| |<---------| | ----- ----- ----- T: Taskabbild-Datei R: ruhende Task A: aktive Task 1: Installieren einer Task 2: Streichen einer Task 3: Aktivieren einer Task 4: Taskende oder -abbruch Bild 2: Taskzustaende Prioritaet und Zeitscheibensteuerung ------------------------------------ Die Prioritaet einer Task, auf deren Grundlage sie sich um Systemleistungen bewirbt, wird durch eine ganze Zahl zwischen 1 und 250 verkoerpert, wobei die groessere Zahl die hoehere Pri- oritaet bedeutet. Die Prioritaet kann einer Task durch den TKB, waehrend des Installierens oder waehrend der Bearbeitung zuge- ordnet werden. Die aktive Task der hoechsten Prioritaet, die Zugriff zu allen Systemleistungen hat, die sie benoetigt, wird bearbeitet. Wenn diese Task blockiert wird, prueft die Exeku- tive, ob eine andere Task die ZVE benoetigt. Fuer den Fall, dass mehrere aktive Tasks warten, kommt diejenige zur Abarbei- tung, die die hoechste Prioritaet und den Zugriff zu allen von ihr benoetigten Systemleistungen besitzt. In Abhaengigkeit von der Art der zu loesenden Aufgabe kann mittels der Pri- oritaet eine sinnvolle Steuerung der Verteilung der ZVE-Zeit erreicht werden. Zur Loesung verschiedener Aufgabenkomplexe ist diese priori- taetsgesteuerte Abarbeitung der Tasks nicht ausreichend, da auf diese Weise eine annaehernd gleichberechtigte Bearbeitung ver- schiedener Teilprobleme vom Nutzer nicht realisiert werden kann. Beim Installieren einer Task registriert die Exekutive diese im Systemtaskverzeichnis, in dem die Tasks nach ihrer Prioritaet geordnet sind. Tasks gleicher Prioritaet werden in der Reihen- folge eingetragen, in der sie installiert wurden. Die Zuteilung von Rechenzeit an die arbeitsfaehigen Tasks erfolgt in der Rei- henfolge, in der diese im Systemtaskverzeichnis stehen. Das hat zur Folge, dass bei Tasks gleicher Prioritaet die Tasks haeufi- ger bearbeitet werden, die zuerst installiert wurden. Zur gleichmaessigen Verteilung der ZVE-Zeit an arbeitsfaehige Tasks gleicher Prioritaet gibt es unter OMEX 1630 die Moeglichkeit der Zeitscheibensteuerung. Dabei werden die Tasks gleicher Prioritaet in ihrer Prioritaetsgrupe im Systemtaskverzeichnis zyklisch vertauscht, so dass alle Tasks in regelmaessigen Intervallen zur Abarbeitung gelangen koennen. 13 Signifikante Ereignisse ----------------------- Signifikante Ereignisse fuehren dazu, dass die Abarbeitung der laufenden Task unterbrochen und die Prioritaet aller aktiven Tasks durch die Exekutive erneut ueberprueft wird. Signifikante Ereignisse sind: - Ende einer Taskbearbeitung - Beenden einer Uhraktivitaet (Ablaufen eines Zaehlers) - Ausfuehrung gewisser Exekutive-Anweisungen - Ende einer E/A-Operation - Ausfuehrung eines Taktes der Zeitscheibensteuerung Wenn ein signifikantes Ereignis eintritt, prueft die Exekutive das Systemtaskverzeichnis und startet die arbeitsfaehige Task mit der hoechsten Prioritaet. Prioritaets- und zeitgesteuerte Auslagerung ------------------------------------------- Wenn eine Task blockiert oder gestoppt ist, kann sie durch die Exekutive ausgelagert werden (wenn Auslagerung zugelassen oder angewiesen ist). Diese Auslagerung ermoeglicht es, zwischenzeitlich andere Tasks zu laden. Wenn eine Partition eine Task enthaelt, die auslagerbar ist, wird diese auf die Platte uebertragen, um Raum fuer eine Task hoeherer Prioritaet zu schaf- fen, die in derselben Partition installiert wurde und arbeits- faehig ist. Wenn die Task unterbrochen oder beendet wird (signifikantes Ereignis), wird die vorher unterbrochene Task wieder eingelesen und an der Unterbrechungsstelle fortgesetzt. Fuer diesen Vorgang muss vom Nutzer auf der Platte Speicher- bereich zur Verfuegung gestellt werden. Dieser Auslagerungs- bereich wird der Task entweder durch den Taskbilder (statisch) oder durch die Exekutive (dynamisch) zugeordnet. Bei der statischen Zuordnung wird der Auslagerbereich in der Taskabbilddatei der Task angelegt. Er steht der Task also staen- dig zur Verfuegung. Bei der dynamischen Zuordnung kann der Nutzer eine oder mehrere zentrale Auslagerdateien auf der Platte schaf- fen, um alle auszulagernden Tasks aufzunehmen. Die in diese Dateien auszulagernden Tasks muessen nicht als auslagerbare Tasks aufgebaut werden, die Eigenschaft der Aus- lagerbarkeit kann der Task beim Installieren zugeordnet werden. Bei der dynamischen Zuordnung besteht ein Vorteil darin, dass der Platz auf dem Plattenspeicher besser genutzt wird. Nachteilig ist, dass in den Auslagerbereichen nicht immer freie Bereiche verfuegbar sind. Eine aehnliche Situation wie bei speicherresidenten Tasks gleicher Prioritaet kann sich erge- ben, wenn sich aktive Tasks um gleiche Speicherbereiche bewer- ben. Da eine Task die Exekutive nicht veranlassen kann, eine Task gleicher Prioritaet auszulagern, kann sich die Situation ergeben, dass spaeter installierte Tasks aufgrund der Bearbei- tungsreihenfolge nicht geladen werden. Um aktiven Task gleicher- massen Speicherzugriff zu ermoeglichen, bietet OMEX 1630 die zeitgesteuerte Auslagerung. Die Leistung dieser zeitgesteuerten Auslagerung besteht darin, dass Tasks zyklisch ausgelagert werden, um fuer sich mitbewerben- de Tasks gleicher Prioritaet freie Partitionbereiche zu schaffen. Die ausgelagerte Task wird am Ende in die Warteschlange der aktiven Tasks eingereiht, die sich um freien Partitionbereich 14 bewerben. Auf diese Weise gelangt jede aktive Task zyklisch an die erste Position ihrer Prioritaetsgruppe in der Warte- schlange der sich um gleiche Partitionbereiche bewerbenden Tasks. Diese Auslagerungsfaehigkeit muss schon beim Taskbilden angewiesen werden. 4.2. Exekutive-Anweisungen --------------------------- Allgemeines ----------- Eine Exekutive-Anweisung ist die Anforderung einer Task an die Exekutive, eine bestimmte Operation auszufuehren. Die Exekutive ueberprueft die Richtigkeit der Parameter der Exekutive-Anwei- sungen und registriert, ob und mit welchem Erfolg die Exekutive- Anweisung bearbeitet wurde. Diese Informationen koennen nach Rueckkehr aus der Exekutive in der Task ausgewertet werden. Gege- benenfalls kann eine Fehlerbehandlungsroutine abgearbeitet wer- den. Die Ausfuehrung einiger Anweisungen fuehrt zum Auftreten signifikanter Ereignisse. Ueber die Exekutive-Anweisungen haben Tasks Zugriff zu folgenden Leistungen: - Unterbrechen und Fortsetzen der Taskbearbeitung - Anfordern der Abarbeitung einer anderen Task - Beenden einer Task - Festlegen von Zeitbedingungen - Abfragen von Systeminformationen (z.B. Taskparameter, Uhrzeit) - Austausch von Informationen zwischen den Tasks - Ausfuehren von E/A-Operationen - Beeinflussen der Speicherverwaltung - Indirekter Aufruf anderer Tasks Weiterhin koennen Tasks Ereignisflags benutzen und Systemtraps ausloesen, um bestimmte Ereignisse auszuwerten oder zu provo- zieren. Ereignisflags ------------- Neben der Beeinflussung der Bearbeitung der Tasks durch signi- fikante Ereignisse (siehe Abschn. 4.1.), koennen signifikante Ereignisse genutzt werden, um Aktivitaeten der Tasks zu koordi- nieren. Mittels einer Exekutive-Anweisung koennen signifikante Ereignisse mit Ereignisflags verknuepft werden. Es gibt 96 Ereignisflags, wobei 32 von allen Tasks gemeinsam genutzt werden koennen (Common- Flags), 32 jeder Task lokal zur Verfuegung stehen und 32 fuer die Nutzergruppe laut UIC festgelegt werden koennen. Die lokalen Flags koennen z.B. mit signifikanten Ereignissen verbunden werden. Die Exekutive setzt dann beim Eintreten eines signifikanten Ereignisses das zugehoerige Flag, das wiederum in der Task getestet werden kann. Die Common-Flags und die Gruppenflags koennen zur Kommuni- kation zwischen den Tasks genutzt werden. Somit koennen gewisse Aktivitaeten mehrerer Tasks untereinander koordiniert werden. Systemtraps ----------- Systemtraps sind ein weiteres Mittel zum Wechsel der Steuerung in der Taskbearbeitung. Systemtraps werden durch die Exekutive in Abhaengigkeit vom Eintreten verschiedener Ereignisse ausgeloest. 15 Durch den Trap wird die Steuerung an die mit dem eingetretenen Ereignis durch ein Ereignisflag verbundene Task gegeben, und zwar an eine Bearbeitungsroutine fuer das entsprechende Ereignis, deren Eintrittspunkt der Exekutive durch eine Anweisung mitgeteilt wurde. Bei den Systemtraps werden zwei Arten unterschieden, der syn- chrone und der asynchrone Systemtrap. Der synchrone Systemtrap (SST) zeigt Ereignisse an, die direkt mit der Ausfuehrung von Befehlen verbunden sind, also immer an gleicher Stelle des Programms auftreten, sooft dieses Programm durchlaufen wird. Ein nicht zugelassener Adressmodus in einem Befehl erzeugt z.B. solch einen SST. Der asynchrone Systemtrap (AST) zeigt signifikante Ereignisse an, wobei der Zeitpunkt ihres Auftretens nicht direkt vom Programm beeinflusst werden kann . Das Ende einer E/A-Operation kann z.B. solch einen Trap erzeugen. Ereignisflags und ASTs koennen kombiniert verwendet werden, um z.B. in einer allgemeinen Bearbeitungsroutine den speziellen Fall auszuwaehlen. 4.3. Datentraegerorganisation und Geraetebedienung --------------------------------------------------- Allgemeines ----------- Zur Verwaltung von Dateien auf Magnetplatten und Magnetbaendern stellt OMEX 1630 einen leistungsfaehigen Satz von Routinen zur Verfuegung. Diese Routinen setzen voraus, dass die Datentraeger initialisiert sind. Zu diesem Zweck werden mittels Kommando Kenn- saetze aufgezeichnet. Nutzertasks koennen auch zu "fremden", nicht fuer OMOS 1630 initialisierten Datentraegern auf physischem Niveau zugreifen. Fabrikneue Magnetplatten muessen zuvor formatiert, d.h. jeder Block muss mit einem Adresswort ver- sehen werden. Dies kann mit dem Geraetetestprogramm CM 5400 (siehe Anleitung fuer den Bediener, Teil 3), dem systemunabhaen- gigen Dienstprogramm PRESRV (siehe Abschnitt 6.19.) oder mit dem Formatierungsprogramm FMT (siehe 6.21.) erfolgen. Verzeichnisdateien ------------------ Jeder Nutzer kann mittels eines Kommandos eine Datei aufbauen, die vom System als Verzeichnis fuer die Dateien des Nutzers verwendet wird. Beim Erstellen einer Datei wird der Dateiname in dieses Nutzerdateiverzeichnis UFD (User File Directory) eingetra- gen und ein Nutzeridentifikationscode UIC (User Identification Code) im Kennsatz der Datei registriert. Der Nutzeridentifi- kationscode hat das Format [g,m], wobei g und m zwei Oktalzah- len sind, die die Gruppennummer (g) bzw. die Mitgliedsnummer (m) verkoerpern. Da das UFD selbst eine Datei ist, besitzt es eben- falls einen UIC. In den meisten Faellen stimmen der UIC des UFD und der UIC der Dateien, die in ihm gefuehrt werden, ueberein. Eine Datei kann aber auch in einem UFD gefuehrt werden, dessen UIC vom UIC der Datei abweicht, so dass eine Datei gleichzeitig in mehreren UFD auftreten kann. Alle UFD eines Datentraegers sind in einem Hauptdateiverzeichnis MFD (Master File Directory) zusammengefasst. Sowohl die Nutzer- dateiverzeichnisse als auch das Hauptdateiverzeichnis enthalten 16 die Namen der ihnen zugeordneten Dateien und die Zeiger zu den Dateikennsaetzen. In den Dateikennsaetzen befinden sich u.a. die Informationen ueber die physische Lage der Dateien auf dem Daten- traeger. Dateiverwaltung --------------- Ein Nutzer, der zu einer Datei zugreifen will, muss in einer Dateispezifikation u.a. das Geraet, auf dem sich der Daten- traeger befindet, und das UFD, in welchem die Datei gefuehrt wird, angeben. Die Kenntnis des UFD ist eine notwendige, aber nicht hinreichende Voraussetzung fuer den Zugriff auf eine Datei. Um den Schutz der Dateien zu gewaehrleisten, wird den Dateien eines Datentraegers eine Schutzmaske zugeordnet. Der Nutzer, der zu einer Datei zugreifen will, muss den Bedingungen dieser Schutzmaske genuegen, da ihm sonst der Zugriff ver- wehrt wird. Die Schutzmaske legt fuer die 4 Nutzergruppen (System, Eigentuemer, Gruppe, Rest) 4 Typen des Zugriffs fest. Diese 4 Typen des Zugriffs sind Lesen, Schreiben, Er- weitern und Loeschen. Geraetebedienung ---------------- Alle Geraete werden im Interruptbetrieb bedient. Damit wird die Parallelarbeit von ZVE und den Geraeten gesichert. Jede Task kann den physischen Geraeten eigene logische Geraetenummern LUN (Logical Unit Number) zuordnen, ueber die dann die Adressierung der Geraete erfolgt. Die E/A-Anweisungen werden in die Warte- schlange des zugehoerigen Geraets eingereiht und entsprechend der Prioritaet der die Anweisung enthaltenden Task bzw. nach der Reihenfolge des Auftretens der Anforderungen abgearbeitet. Der Task werden auf Anforderung Informationen ueber den Verlauf der Datenuebertragung uebergeben. Fehlerbehandlungen koennen durch taskeigene Fehlerbehandlungsroutinen vorgenommen werden. Die Bedienung der Peripherie kann unter OMEX 1630 durch E/A- Driver oder Nutzertasks realisiert werden. Fuer die Standard- peripherie werden E/A-Driver vom Entwickler mitgeliefert. Alle Driver und ihre Datenbasen sind unter OMEX 1630 ladbar und koennen zu jedem beliebigen Zeitpunkt ins System eingebunden werden. Ausserdem koennen die Anwender beliebige Geraete mittels eigener Driver anschliessen (siehe auch Kap. 11, Generierung). Eine andere Moeglichkeit besteht darin, dass die Nutzertask selbst die Bedienung des peripheren Geraetes uebernimmt. Zu diesem Zweck unterstuetzt OMEX 1630 den Anschluss von Nutzertasks an die hardwareseitig vorhandenen Interrupt-Vektoren der Geraete. 4.4. Bedienung --------------- Allgemeines ----------- Ein Operator kann mittels Kommandos, die ueber ein Bediengeraet eingegeben werden, mit OMEX 1630 korrespondieren. Er hat damit Zugriff zu folgenden Leistungen: - Steuerung der Taskabarbeitung - Abfordern von System- und Taskinformationen - Verwaltung der peripheren Geraete 17 Im BS OMOS existieren zwei voneinander unabhaengige Kommando- steuersprachen, MCR und DCL. Die Grundfunktionen von MCR bilden eine Systemtask, wobei die meisten Kommandos als Ueberlagerungssegmente dieser Task realisiert sind. Ein Teil der Kommandos wird durch spezielle Tasks verarbeitet. Mit DCL wird ein zweiter CLI (Command Line Interpreter) bereitgestellt, der Bedienerkommandos entgegennimmt, analysiert und an Systemkomponenten uebergibt, die sie verarbeiten (z.B. MCR-Routinen, Dienstprogramme). Waehrend MCR eine Syntax vorschreibt, die tieferes Verstaendnis fuer die Systemprozesse verlangt, lehnt sich die Syntax von DCL an englische Sprachkonstruktionen an, wodurch dem unerfahreneren Nutzer ein leichter Zugang zu den Systemleistungen moeglich wird. Die Kommandos zur Steuerung der Taskabarbeitung sind besonders wichtig, denn mit ihrer Hilfe kann der Operator aktiv in die Verteilung der ZVE-Zeit an die einzelnen Tasks eingreifen. Er hat die Moeglichkeit, die Zahl der aktiven Tasks zu beeinflus- sen, indem er neben der direkten Aktivierung von Tasks die Moeglichkeiten der zeitgesteuerten Aktivierung (Absolutzeit und nach Zeitdifferenz, einmalig oder zyklisch) nutzt. Privilegstatus von Bediengeraeten --------------------------------- Zur direkten Beeinflussung einiger Systemleistungen stehen dem Operator privilegierte Kommandos zur Verfuegung. Privilegierte Kommandos koennen nur von privilegierten Bediengeraeten eingege- ben werden. Der Privilegstatus (privilegiert - nicht privi- legiert) eines Bediengeraetes wird im allgemeinen bei der System- generierung festgelegt. Bei der Systemarbeit kann der Operator durch ein Kommando ueber ein privilegiertes Bediengeraet den Privilegstatus anderer Bediengeraete veraendern. In Systemen mit Mehrnutzerunterstuetzung uebernimmt das Bediengeraet jeweils den Privilegstatus des sich ueber das Bediengeraet anmeldenden Nutzers. Mehrnutzerunterstuetzung ------------------------ OMEX 1630 ist ein System mit Mehrnutzerunterstuetzung, in dem die Arbeit der einzelnen Nutzer ueberwacht wird. Jedem Nutzer wird ein Indentifikationscode zugewiesen, welcher seinen Privi- legstatus festlegt. Bevor ein Nutzer Kommandos eingeben darf, muss er sich auf einem Bediengeraet anmelden. Bei der Anmeldung gibt er direkt oder indirekt seinen Identifikationscode (UIC) sowie ein Kennwort an. Das System ueberprueft, ob Identifika- tionscode und Kennwort zusammengehoeren, und versetzt bei positivem Ausgang der Pruefung das Bediengeraet in den Privileg- status des Nutzers (privilegiert oder nicht privilegiert). Zur Unterstuetzung dieser Systemleistung werden folgende Tasks bereitgestellt: - ACNT (Fuehren von Verzeichnissen zugriffsberechtigter Nutzer) - HELLO (Anmelden eines Nutzers) - BYE (Abmelden eines Nutzers) - BROADCAST (Kommunikation via Terminal) 18 - SHUTUP (Beendigung der Systemarbeit) Indirektkommandodateien ----------------------- Eine Indirektkommandodatei ist eine Datei, die eine Folge von Kommandos enthaelt, die an eine Task gerichtet sind. Die Task kann z.B. ein Dienstprogramm sein. Die Indirektkommandodatei kann jedes Kommando enthalten, das von der Task, die die Indi- rektkommandodatei verarbeiten soll, interpretiert werden kann. Fuer Kommandos an das Kommandoprogramm des OMEX 1630 existiert ein spezielles Verarbeitungsprogramm fuer Indirektkommando- dateien. Speicherschutz -------------- Im Zusammenwirken mit der Speichervermittlungseinheit SVE reali- siert OMEX 1630 einen umfassenden Speicherschutz. Einer Task wird nur der Zugriff zu Bereichen, die Bestandteil der Task selbst sind oder die als Common-Bereiche (z.B. residente Bibliotheken) gekennzeichnet sind, gewaehrt. OMEX 1630 bietet weiterhin einen Satz von Exekutive-Anweisungen, mit deren Hilfe eine Task den Speicherbereich, zu dem sie Zugriff hat, dyna- misch veraendern kann. Unter den Bedingungen des Mehrnutzerbe- triebes bzw. der Multiprogrammierung koennen die Zugriffsrechte sinnvoll differenziert werden (Lesen, Schreiben, Erweitern, Loeschen). 19 5. Dateizugriffsroutinen des OMEX 1630 (FCS 1630) -------------------------------------------------- Aufgaben -------- FCS (File Control Services) unterstuetzen die Grundoperationen des Erzeugens und Verarbeitens von Dateien. FCS arbeiten mit Dateien in den Dateiformaten FM16-D oder FM16-M (kompatibel zu MOOS 1600) und gestatten Anforderungen an die Dateiverwaltung von OMOS 1630 im Nutzerprogramm. Dabei ist sequentieller und direkter Zugriff zu Plattendateien, sequentieller Zugriff zu Magnetbanddateien moeglich. Die Ein- bzw. Ausgabe von Daten ueber andere von OMEX bediente Geraete (z.B. Terminals, Drucker) kann im sequentiellen Zugriff weitgehend geraeteun- abhaengig durchgefuehrt werden. Darueber hinaus unterstuetzen FCS die Eingabe und Verarbeitung von Kommandozeilen und das Einreihen von Druckausgaben in Warteschlangen. Arbeitsweise ------------ FCS bestehen aus Makros und Unterprogrammen fuer die Grundopera- tionen und dazugehoerigen Hilfsoperationen der Dateiverarbeitung: - Erstellen von Dateien - Loeschen von Dateien - Lesen und Schreiben (im sequentiellen Zugriff, fuer Plattendateien auch im direkten Zugriff, s.u.) - Arbeit mit der Dateispezifikation und dem Datenschutz entsprechend den im OMEX 1630 enthaltenen Moeglichkeiten. Die Makros gestatten eine leicht zu erfassende Schreibweise der Parameter fuer den Aufruf der entsprechenden Unterprogram- me. Die Unterprogramme liegen als Objektmoduln in der System- bibliothek vor. Sie werden in die jeweilige Nutzertask eingebun- den. FCS unterstuetzen den Zugriff (Lesen und Schreiben) zu lo- gischen Saetzen (nutzerseitig definierte Datenstrukturen). Allge- mein ist sequentieller Zugriff, bei Saetzen fester Laenge auch direkter Zugriff, moeglich. Die Synchronisation dieser Opera- tionen wird vom System uebernommen (Fortsetzung der Nutzertask erst nach Abschluss der angeforderten Operationen). FCS unterstuetzen auch den Zugriff (Lesen und Schreiben) zu vir- tuellen Bloecken, soweit diese Datenstrukturen fuer den betref- fenden Datentraeger geraete- bzw. betriebssystemseitig defi- niert sind. Dabei ist die Synchronisation durch die Nutzertask zu realisieren. Damit werden folgende Moeglichkeiten er- schlossen: - Programmteile derselben Nutzertask koennen parallel zur Ein- und Ausgabe bearbeitet werden. - Der Zugriff zu den logischen Saetzen kann vom Nutzer entsprechend seinen spezifischen Beduerfnissen organi- siert werden. Die Arbeit von FCS mit den Dateien wird ueber Dateibeschreibungs- bloecke im Nutzerprogramm organisiert. Der Zugriff zu den Gerae- ten und Dateien erfolgt ueber eine logische Geraetenummer (LUN). 20 Kommandozeilenverarbeitung -------------------------- Die Kommandozeilenverarbeitung umfasst das Lesen von Kommando- zeilen von einem Bediengeraet bzw. aus einer Indirektkommando- datei sowie deren Interpretation. Die Kommandozeilen enthalten Dateispezifikationen fuer Ein- und Ausgabedateien sowie Schalter. Die Interpretation einer Kommandozeile beinhaltet das Prue- fen auf syntaktische Richtigkeit, das Verkuerzen der Kommando- zeile um alle nichtsignifikanten Zeichen, das Zerlegen in die einzelnen Dateispezifikationen und die Analyse der Schalterangaben. Folgende Typen von Kommandozeilen koennen verar- beitet werden: - Dateispezifikation/Schalter,... - Ausgabedateispezifikation/Schalter,... = Eingabedateispezifikation/Schalter,... Wird mehr als eine Dateispezifikation angegeben, sind diese durch "," zu trennen. Schalter muessen im Verarbeitungsprogramm definiert werden und dienen dazu, bestimmte Funktionen des Programmes zu aktivieren. Die Kommandozeilenverarbeitung wird durch Routinen realisiert, die als Makroaufrufe im Nutzerpro- gramm enthalten sind. Wird waehrend der Verarbeitung einer Kommandozeile ein Fehler festgestellt, wird mit gesetztem C-Bit in die Nutzertask zurueckgekehrt. Einreihen von Druckausgaben in Warteschlangen --------------------------------------------- Nutzertasks koennen Dateien, die mit FCS erzeugt wurden, mit Hilfe des PRINT$-Makros an den Print-Spooler des Systems zur Druckausgabe uebergeben. Der Druck verlaeuft zeitverschoben im Hintergrund. 21 6. Dienstprogramme ------------------- 6.1. Lochbandeingabeprogramm PTI 1600 (OMEX) --------------------------------------------- Aufgaben -------- Das Lochbandeingabeprogramm PTI (Paper Tape Input) dient zum Uebertragen von Textinformationen vom Lochbandleser zu Plattenda- teien im Format FM16-D (Datentraegerformat fuer Magnetplatten). Arbeitsweise ------------ Das Programm PTI verfuegt ueber eine geblockte Lochbandeingabe mit Wechselpufferarbeit. Dadurch haengt die Eingabegeschwindig- keit im wesentlichen von der Lesegeschwindigkeit des Lochbandle- sers ab. Die erzeugten Plattendateien sind sequentielle Dateien mit Saetzen variabler Laenge. Die maximale Satzlaenge betraegt 132 Bytes. Eingelesen werden Lochbaender gerader Paritaet nach Code-tabelle KOI-7H0, ST RGW 356-76. Saetze, die laenger als 132 Bytes sind, werden geteilt. Durch Schalterangabe kann fuer Satzendezeichen, Kleinbuchstaben, Ir- rungszeichen (Dollar) und nichtdruckbare Zeichen eine Sonderbe- handlung angewiesen werden. 6.2. Bibliothekar LBR 1630 (OMEX) ---------------------------------- Aufgaben -------- Der Bibliothekar LBR (Librarian Utility) ermoeglicht dem Nutzer eine umfangreiche Verwaltung von Objekt- und Makrobibliotheksda- teien. Der Bibliothekar fuehrt folgende Funktionen aus: - Erzeugen von Objektmodul- bzw. Makrobibliotheksdateien - Ausgabe des Inhaltsverzeichnisses einer Bibliothek - Loeschen von einzelnen Moduln aus den Bibliotheken - Verdichten einer durch vorangegangene Loeschoperationen nur noch teilweise ausgenutzten Bibliotheksdatei - Einstellen von Standards (Makro-oder Objektmodulbibliothek) - Loeschen bzw. Einfuegen von Eintrittspunkten bei Objektmodul- bibliotheksdateien - Herausloesen einzelner Moduln aus beliebigen Bibliotheks- dateien - Einfuegen von Moduln in Bibliotheksdateien - Austauschen von Moduln gleichen Namens in einer Biblio- theksdatei - Kuerzen von Makrotexten durch Streichen von Kommentaren in den Makrozeilen Arbeitsweise ------------ Die Ausfuehrung der genannten Funktionen wird durch Kommandoschalter angewiesen, die auch kombiniert werden koennen. Der Anwender stellt die Bibliotheken nach seiner Wahl zusam- men. Bibliotheksdateien sind Direktzugriffsdateien, die einen oder mehrere Moduln gleichen Typs enthalten. Sie enthalten aus- serdem Steuertabellen, durch die ein schneller Zugriff auf die 22 benoetigten Moduln durch den Taskbilder bzw. den Assembler er- moeglicht wird. Der Bibliothekar verwendet fuer die Bedienerkommunikation, Li- stenausgaben und Dateimanipulationen Pseudogeraete. Durch Datei- spezifikationen bestimmt der Nutzer, mit welchen Dateien er arbeiten will. 6.3. Taskbilder TKB 1630 (OMEX) -------------------------------- Aufgaben -------- Der Taskbilder TKB verbindet einen oder mehrere Objektmoduln zu einer abarbeitbaren Einheit, der Task, und lagert ein hauptspeichergetreues Abbild dieser Task als Taskabbilddatei auf eine Magnetplatte aus. Dabei werden innerhalb des Taskabbildes alle notwendigen Datenstrukturen und Adressbeziehungen fuer die Abarbeitung der Task hergestellt. Ausser diesen "normalen" Tasks bildet der TKB auf spezielle Anforderung auch privilegierte Tasks und geteilte Regionen (Commonbereiche oder residente Bibliotheken). Arbeitsweise ------------ Eingabedateien fuer den Taskbilder sind von Assembler oder Compilern erzeugte Objektmoduln, die Systemobjektmodulbibliothek bzw. nutzereigene Bibliotheken oder eine Ueberlagerungsbeschrei- bung ueber die Verknuepfung der Objektmoduln in der Task (siehe auch Abschnitt "Segmentierung" in Kap. 3). Neben der Taskabbilddatei gibt der Taskbilder wahlweise auch eine Speicherbelegungsliste und eine Symboldefinitionstabelle aus. Die Speicherbelegungsliste gibt Auskunft ueber die in der Task enthaltenen Objektmoduln, ihre Anordnung im Hauptspeicher und ihre Eigenschaften. Sie kann auch eine Cross-Referenz-Liste ueber alle Objektmoduln enthalten. Die Speicherbelegungsliste kann an den Print-Spooler uebergeben oder als Datei abgespeichert werden. Die Symboldefinitionstabelle dient zum Abspeichern von Informa- tionen ueber die Taskregion, die beim Zugriff auf geteilte Regio- nen benoetigt werden. In diesem Fall wird die beim Bilden der geteilten Region erzeugte Symboldefinitionstabelle beim Bilden einer darauf zugreifenden Task benutzt, um Adressverbindungen herzustellen. Die Aktionen des Taskbilders und die Eigenschaften der erzeugten Task werden vom Anwender durch Angabe von Schaltern und Options beeinflusst. Fuer nicht angegebene Parameter nimmt der TKB Standardwerte an. Schalter und Options bestimmen z.B. - Stellung der Task im Betriebssystem ("normale" Task, privilegierte Task oder geteilte Region) - Art der Segmentierung - Auslagerungsfaehigkeit - Anfuegen einer Testhilfe - positionsunabhaengige Adressierung innerhalb der Task - Taskname beim Aufruf, Prioritaet und Partition - Groesse des Kellerspeichers, von Arbeitsbereichen - Zugriffsrechte auf geteilte Regionen - Zuordnungen von Geraeten und logischen Geraete- nummern (LUN) 23 und anderes mehr, so dass der Anwender jede Task gemaess seinen Erfordernissen aufbauen kann. Im Prozess der Programmentwicklung ist das Taskbilden ein wichtiger Arbeitsschritt. 6.4. Zeilenorientierter Editor EDI 1630 (OMEX) ----------------------------------------------- Aufgaben -------- Mit dem Editor EDI koennen Dateien (Quellprogramme oder anderes Textmaterial) aufbereitet oder ueber ein Terminal operativ einge- lesen werden. Dazu verfuegt der Editor EDI ueber einen Satz von Kommandos, mit denen einzelne Zeilen oder Gruppen von Zeilen von einer Eingabedatei in einen Hauptspeicherpuffer gelesen, dort bearbeitet und anschliessend in eine neue Ausgabedatei ge- schrieben werden. Der Editor beinhaltet Kommandos zur zeilen- und zur zeichenweisen Aufbereitung, zur Listenausgabe und zum Oeffnen und Schliessen von Dateien. Arbeitsweise ------------ Der Editor kann in zwei Modi arbeiten. Waehrend der Laufzeit des Editors koennen die Modi beliebig gewechselt werden. - Blockmodus Von der Eingabedatei wird eine bestimmte Anzahl von Zei- len (Block) in einen Hauptspeicherpuffer gelesen. Die An- zahl der Zeilen kann ueber ein Editorkommando festgelegt werden. Die Standardzeilenzahl pro Block ist generierbar. Enthaelt die Eingabedatei Form-Feed-Zeichen, wird der Puffer nur bis zum Erreichen des Zeichens Form-Feed gefuellt. Damit ist eine seitenweise Aufbereitung moeglich, wenn eine Seite jeweils mit einem Form-Feed-Zeichen abgeschlossen ist. Inner- halb eines Blocks koennen die zeilen- und zeichenorientierten Kommandos beliebig benutzt werden. Es sind Vor- und Rueckposi- tionieren moeglich. - Zeile-fuer-Zeile-Modus Im Zeile-fuer-Zeile-Modus wird jeweils eine Zeile der Eingabe- datei in den Hauptspeicherpuffer gelesen, wo sie mit zeilen- oder zeichenorientierten Kommandos aufbereitet werden kann. Beim Vorpositionieren auf die naechste zu bearbeitende Zeile werden alle vorhergehenden Zeilen in die Ausgabedatei geschrie- ben. Eine Rueckpositionierung ist demzufolge nicht moeglich. Ausser der beim Editorstart spezifizierten Eingabedatei (primaere Eingabedatei) kann waehrend der Laufzeit des Editors ueber besondere Kommandos eine weitere Eingabedatei (sekundaere Ein- gabedatei) eroeffnet und zur Datenuebernahme ausgewaehlt werden. Durch Schliessen der ausgewaehlten sekundaeren Eingabedatei und Oeffnen einer anderen Datei als sekundaere Eingabedatei besteht die Moeglichkeit des Zusammensetzens einer Datei aus beliebig vielen Eingabedateien. Der Editor ist besonders fuer die interaktive Arbeit im Dialog- betrieb geeignet. Darueber hinaus bietet er auch Moeglichkeiten der vorprogrammierten Arbeitsweise durch Verwendung von Indirektkommandodateien. 24 Lange Kommandos oder Kommandoketten, die in speziellen Faellen haeufig benutzt werden, koennen als EDI-Makros definiert wer- den. Insgesamt besteht die Moeglichkeit, drei Makros mit verschiedenen Editorkommandoketten zu definieren. 6.5. Bildschirmorientierter Editor EDT 1630 (OMEX) --------------------------------------------------- Aufgaben -------- Auch der bildschirmorientierte Editor EDT dient zum Aufbereiten von Textdateien, ist aber im Unterschied zu EDI durch seinen groesseren Satz von Kommandos anwendungsfreundlicher und fuer die eigentliche Textverarbeitung besser geeignet. EDT kann sowohl im Blockmodus mit Zeilenzeiger als auch bei Einsatz des Voll-Duplex- Terminaldrivers im Bildschirmmodus mit Zeichenzeiger (Kursor) ar- beiten. Arbeitsweise ------------ Nach dem Aufruf des Editors und der Angabe der Datei wird diese fuer die Editionssitzung eroeffnet, die erste Zeile wird ange- zeigt. Es koennen nun Kommandos zur Auswahl der aktuellen Zeile, zum Aufsuchen einer Stelle in der Datei, zur Steuerung der Anzei- gen und zur Arbeit mit Dateien eingegeben werden. Dabei befindet sich der Editor im Blockverarbeitungsmodus mit Zeilenzeiger, der auf die laufende Zeile zeigt. Um neuen Text in eine Datei einzu- fuegen oder um Aenderungen in einer Datei anzubringen, wird der Blockmodus per Kommando "INSERT" oder "CHANGE" verlassen. Der Editor arbeitet nun je nach eingesetztem Terminaldriver im Bildschirmmodus oder einem gemischten Bildschirm-/Kommandomodus, wobei der Kursor bis auf das einzelne Zeichen bewegt werden kann. Als weitere Hilfsmittel bei der Positionierung des Kursors dienen die Tasten zur Kursorsteuerung und CTRL-Zeichenfolgen. Die Art der Zeilen- bzw. Zeichenbehandlung wird durch den Nutzer be- stimmt, der mittels Parameterangabe die Gross- und Kleinschrei- bung, das Bidschirmformat, die Art der Bewertung der Suchbegriffe u.v.a.m. steuern kann. Waehrend einer Editionssitzung kann mit mehreren benannten Puffern und beliebigen Dateien gearbeitet werden. 6.6. Dateitransferprogramm PIP 1630 (OMEX) ------------------------------------------- Aufgaben -------- Die Hauptaufgabe des Dateitransferprogramms PIP (Peripheral Interchange Program) besteht darin, Dateien zu transportieren. Der Datentransport kann zwischen verschiedenen Geraeten (z.B. Platte - Magnetband) oder auf dem gleichen Geraet (z.B. von einem Plattenbereich auf einen anderen) erfolgen. Funktionen von PIP mit Datentransport sind beispielsweise: - Kopieren von Dateien - Fuegen von Dateien (Bildung einer neuen Datei aus mehreren existierenden Dateien) - Ueberschreiben einer existierenden Datei durch eine neue - Erweitern einer existierenden Datei - Uebergabe von Dateien an den Print-Spooler 25 Des weiteren erfuellt PIP auch Aufgaben ohne Datentransport, unter anderem: - Loeschen von Dateien, auch selektiv auf Abfrage - Ausgabe von Dateiverzeichnissen - Aenderung von Elementen der Dateispezifikation (Aenderung des Dateinamens, der Zugriffsrechte, des Standard- geraets oder des Standard-UFD). - Loeschen bzw. Eintragen von Dateispezifikationen in ein Dateiverzeichnis. - Freigeben ungenutzten Speicherplatzes - Wiederfinden nur im Verzeichnis gestrichener Dateien Arbeitsweise ------------ Kommandos an PIP, die vom Bediener eingegeben werden, enthalten Dateispezifikationen und Kommandoschalter zur Funktionsauswahl. Die Verwendung von Standardparametern ermoeglicht eine Verkuer- zung der Kommandozeile. Sternvereinbarungen sind auch als Teile von Dateinamen und -typ moeglich. 6.7. Dateidruckprogramm DMP 1630 (OMEX) ---------------------------------------- Aufgaben -------- Das Dateidruckprogramm DMP (Dump Utility) ermoeglicht die voll- staendige oder teilweise Ausgabe des Inhalts von Dateien oder Datentraegern in verschiedenen Datenformaten. Als Ausgabegeraet koennen z.B. Bediengeraet, Paralleldrucker oder Plattenspeicher verwendet werden. Arbeitsweise ------------ DMP arbeitet je nach Form der Kommandozeile im Geraete- oder Dateimodus: - Ist im Kommando eine Eingabedatei spezifiziert, arbeitet DMP im Dateimodus. - Ist im Kommando eine Folge von auszugebenden Bloecken spezifi- ziert (Bloecke eines Datentraegers), arbeitet DMP im Geraetemo- dus. Fuer die Ausgabe koennen beliebige Bloecke einer Datei bzw. eines Datentraegers ausgewaehlt werden. Die Ausgabe der spezifizier- ten Bloecke erfolgt blockweise. Im Dateimodus ist auch eine satzweise Ausgabe moeglich. Folgende Datenformate stehen dem An- wender des DMP bei der Ausgabe der spezifizierten Bloecke zur Auswahl: - oktal (Wort- und Bytemodus) - dezimal (Wortmodus) - KOI 7 (Wortmodus) - hexadezimal (Doppelwort-, Wort- und Bytemodus) - RADIX 50 (Wortmodus) 26 6.8. Dateiumwandlungsprogramm FLX 1630 (OMEX) ---------------------------------------------- Aufgaben -------- Das Dateiumwandlungsprogramm FLX (File Transfer Utility) ist ein Dienstprogramm zur Datenuebertragung zwischen Datentraegern verschiedener Dateiformate des Mikrorechnergeraetesystems MGS 1600 (FM16, FL16, FD16). Unterstuetzt werden folgende Geraete: - Magnetbandgeraet - Kassettenmagnetbandgeraet - Folienspeichereinheit - Lochbandleser - Lochbandstanzer (Nicht jedes Geraet wird in jedem Format unterstuetzt.) Von Magnetband und Kassettenmagnetband koennen Verzeichnisse angefordert werden; ein Initialisieren dieser Datentraeger ist mit FLX moeglich. Arbeitsweise ------------ Die Kommandozeile, die vom Bediener nach Aufruf von FLX einzugeben ist, darf ausser der Dateispezifikation der Eingabedatei und Schaltern nur das Ausgabegeraet enthalten. Fuer die Datentraegerformate und den Uebertragungsmodus nimmt FLX Standards an, die durch Schalterangaben ueberschrieben werden koennen. Weitere Schalter dienen zur Steuerung und Kontrolle. 6.9. Dateiaustauschprogramm FEX 1630 (OMEX) -------------------------------------------- Aufgaben -------- Das Dateiaustauschprogramm FEX (File Exchange Utility) dient zur Datenuebertragung zwischen Datentraegern im Dateiformat FM16 des Mikrorechnergeraetesystems MRS 1600 und Datentraegern in Formaten anderer Rechnerfamilien, z.B. - Diskettenformate der Mikrorechnerfamilie MRS K 1520/30 (Betriebssystem SIOS) einschliesslich Bibliotheksformat - Magnetbandkassettenformate verschiedener Datenerfassungs- systeme - Magnetbaender von ESER-Rechnern (DOS und OS) und vom PRS 4000 - Lochbaender dieser Rechnerfamilien. Mit FEX koennen auch Dateien uebertragen werden, die keinen Standardaufbau haben. Arbeitsweise ------------ Bei der Datenuebertragung mit FEX muss der Datentraeger, der nicht das Dateiformat FM16 hat, dem Programm bekanntgemacht und moeglichst genau beschrieben werden. Zu diesem Zweck gibt der Bediener eine Folge von Kommandos ein (Initialisieren, Eingliedern, Datenuebertragung). Die speziellen Anforderungen, die bei der Datenuebertragung beruecksichtigt werden muessen, werden dem Programm ueber Kommandoschalter mitgeteilt. 27 6.10. Plattenkopierprogramm DSC 1630 (OMEX) -------------------------------------------- Aufgaben -------- Das Plattenkopierprogramm DSC (Disk Save and Compress) kopiert Platten im Dateiformat des OMOS 1630 (FM16) entweder - von Platte zu Platte oder - von Platte auf Magnetband und zurueck. Dabei werden die Plattenbereiche reorganisiert und verdichtet. Arbeitsweise ------------ DSC kopiert nur die Bloecke einer Platte, die zu aktuellen Datei- en gehoeren. Dateien, deren Bloecke nicht zusammenhaengend ge- speichert sind, werden ohne Zwischenraeume auf das neue Medium uebertragen. Als Ergebnis ist der verfuegbare Platz fuer neue Dateien zusam- menhaengend und der Zugriff zu den einzelnen Dateien effektiver. 6.11. Datensicherungsprogramm BRU 1630 (OMEX) ---------------------------------------------- Aufgaben -------- Das Datensicherunsprogramm BRU (Backup and Restore Utility) ko- piert Platten im Dateiformat des OMOS 1630 (FM16) entweder - von Platte zu Platte oder - von Platte auf Magnetband und zurueck. Dabei werden die Plattenbereiche reorganisiert und verdichtet. Arbeitsweise ------------ BRU benutzt bei der Datenuebertragung interne Driver und bei der Aufzeichnung ein spezielles Format, so dass die von BRU erzeug- ten Abzuege nur mit BRU wiederhergestellt werden koennen. Beim Zurueckspeichern auf Platte koennen die Fehlerblockpruefung oder die Initialisierung angeschlossen werden. Durch Angabe von Aus- wahlparametern koennen hierarchische Datensicherungsmodelle ver- wirklicht werden. Mit Hilfe von BRU koennen Abzuege von Platten auf Platten anderer Groesse zurueckgespeichert werden. Von den mit BRU erzeugten Abzugsmagnetbaendern koennen Verzeichnisse der Datentraegerinhalte und der Dateien gewonnen werden. 6.12. Dateipruefprogramm VFY 1630 (OMEX) ----------------------------------------- Aufgaben -------- Das Dateipruefprogramm VFY (File Structure Verification Utility) prueft saemtliche auf dem eingegliederten Datentraeger vorhande- nen Dateien auf Lesbarkeit und richtige Blockzuordnung. Dabei werden alle Dateikennsaetze der Indexdatei gelesen, und es wird geprueft, ob die Bloecke der dem jeweiligen Kennsatz zugeordne- ten Datei in der Datentraeger-Belegungsliste gekennzeichnet 28 sind. Die Dateien auf dem Datentraeger muessen das Format FM16-D haben. Arbeitsweise ------------ VFY fuehrt nach verschiedenen Schalterangaben im Kommando fol- gende Funktionen aus: - Dateien, die zum Loeschen gekennzeichnet sind, werden wieder freigegeben. - Die Anzahl von verfuegbaren Bloecken eines dateistrukturierten Datentraegers wird ausgegeben. - Saemtliche Dateien der Indexdatei koennen ausgedruckt werden. - Pruefung der gesamten Dateistruktur, um Dateien zu finden, die in keinem Verzeichnis stehen und auf die nicht mehr ueber den Dateinamen zugegriffen werden kann. - Jeder Block jeder Datei wird gelesen, um Zuordnungs- und Paritaetsfehler zu analysieren. - Blockzuordnungsdifferenzen zwischen Indexdatei und Datentrae- ger-Belegungsliste werden durch neues Zuordnen der Bloecke be- seitigt. - Bloecke, die in der Datentraegerbelegungsliste als frei gekenn- zeichnet waren, obwohl sie zu einer Datei gehoeren, werden neu zugeordnet. 6.13. Testprogramme DEP 1630 (OMEX) und ODT 1630 (OMEX) -------------------------------------------------------- Aufgaben -------- Die Testprogramme DEP (Debugging Program) und ODT (On Line Debugging Tool) dienen zum Testen von Nutzerprogrammen. Das Nutzerprogramm muss assembliert sein und wird mit Hilfe des TKB zusammen mit einem der Testprogramme zu einer Task verbunden. Arbeitsweise ------------ 1) DEP 1630 (OMEX) Als Startadresse der Task wird vom TKB die Startadresse des DEP vereinbart, so dass sich DEP nach dem Start der Task mit der Kommandoroutine meldet. Ueber spezielle Kommandos koennen folgende Leistungen von DEP angefordert werden: -Ausgabe von Speicherplatz- und Registerinhalten in den Formaten . oktal (Wort- und Bytemodus) . KOI 7 (Wort- und Bytemodus) . RADIX 50 (Wortmodus) . Integer (1 bis 4 Worte) . Gleitkomma (einfache und hoehere Genauigkeit) . Tetraden (gepackte Ketten) - Eingabe in Speicherplaetze und Register im Format Oktal (Wort- und Bytemodus) sowie Integer (1 bis 4 Worte), Gleitkomma (ein- fache und hoehere Genauigkeit) und Tetraden - Suchen nach Bitmustern (Worten) im Speicher und nach Befehlen, deren Adressen auf eine speziell definierte Adresse Bezug neh- men 29 - Berechnung von . Verzweigungsoffsets . Radix50-Codierungen . arithmetischen Ausdruecken - Abarbeitung des Nutzerprogramms im Direkttest oder im inter- pretierenden Test mit Protokoll DEP besteht aus vier Hauptmoduln: - Kommunikation und Kommandoentschluesselung - Kommandoprozessoren - Interpretation und Protokollierung - Dienstroutinen Die Befehlsinterpretation und die schrittweise Befehlsabarbeitung erfolgen durch Ausnutzung des T-Bit-Traps nach jedem Befehl. Im Direkttest organisiert DEP die Unterbrechung des Testlaufes mit dem Breakpoint-Trap (BPT) an vom Nutzer festgelegten Punkten. Daraus folgt, dass Programme, die den BPT benutzen oder ver- aendernd auf das T-Bit einwirken, nur eingeschraenkt getestet werden koennen. 2) ODT 1630 (OMEX) Das Testprogramm ODT (Online Debugging Tool) ist vom Leistungsum- fang her eine Untermenge von DEP. ODT ist mit DEP im Modus "Direkttest" identisch. ODT ermoeg- licht k e i n e Befehlsinterpretation und Protokollierung der Befehlsausfuehrung. ODT belegt nur ca. 30% des Speicher- platzes, den DEP beansprucht. Es ist in solchen Faellen ein- setzbar, wo DEP nicht mehr im Hauptspeicher Platz findet. 6.14. Plattenpruefprogramm BAD 1630 (OMEX) ------------------------------------------- Aufgabe ------- Das Plattenpruefprogramm BAD (Bad Block Locator Utility) dient zur Suche nach fehlerhaften Bloecken auf Plattenspeichern. Arbeitsweise ------------ BAD prueft Plattenspeicher durch Beschreiben aller Bloecke mit einem Testmuster. Anschliessend wird jeder Block gelesen und auf Richtigkeit geprueft. Fehlerhafte Bloecke werden im letzten feh- lerfreien Block des Plattenspeichers notiert. Voraussetzung fuer die Pruefung ist, dass die Platte formatiert ist. Dies kann mit dem Geraetetestprogramm CM 5400, dem systemunabhaengigen Dienst- programm PRESRV (siehe Abschnitt 6.19.) oder mit dem Formatie- rungsprogramm fuer Magnetplatten FMT 1630 (siehe 6.21.) erfolgen. Das die Platte enthaltende Geraet muss ausgegliedert sein. BAD kann parallel zu anderen Tasks arbeiten, wenn diese das zu pruefende Geraet nicht benoetigen. 30 6.15. Objektmodul-Korrekturprogramm PAT 1630 (OMEX) ---------------------------------------------------- Aufgaben -------- Das Objektmodul-Korrekturprogramm PAT (Objekt Module Patch Utility) ermoeglicht die Korrektur und Erweiterung von Objekt- moduln. Arbeitsweise ------------ Der Korrekturgang (Patch Process) erfolgt in 3 Arbeitsschritten: - Erstellen einer sogenannten Korrekturdatei im Quellformat. Sie enthaelt alle vorzunehmenden Verbesserungen und Erweiterungen. - Uebersetzung der Korrekturdatei in einen Korrekturobjektmodul. - Eingabe des Korrekturobjektmoduls zusammen mit der zu korri- gierenden Datei in PAT. Als Ausgabedatei wird die korrigierte Datei im Objektformat erzeugt. Durch eine wahlweise Angabe im Kommando besteht die Moeglichkeit, die Pruefsummenbildung zu veranlassen. PAT verarbeitet je Kom- mandozeile nur e i n e n Objektmodul. Besteht eine zu korri- gierende Datei aus mehreren Moduln, so sind die Korrektur- dateien fuer jeden zu korrigierenden Modul zu erstellen. Die Korrektur ist dann fuer jeden Modul gesondert durchzufuehren. Die Kommunikation mit PAT kann sowohl interaktiv als auch ueber eine Indirektkommandodatei erfolgen. 6.16. Dateivergleichsprogramm CMP 1630 (OMEX) ---------------------------------------------- Aufgaben -------- Das Dateivergleichsprogramm CMP (File Compare Utility) ver- gleicht zwei Eingabedateien im KOI-7-Code. Dabei wird eine Aus- gabedatei gebildet, die eventuell auftretende Differenzen ent- haelt. Arbeitsweise ------------ Das Dateivergleichsprogramm vergleicht beide Eingabedateien Zeile fuer Zeile. In den Kommandos koennen durch Schalterangaben die Beruecksichtigung spezieller Codierungen, die Ausgabe von Zeilennummern, die Druckerausgabe, Art des Differenzkennzeichens und das Format der zu bildenden Ausgabeda- tei gesteuert werden. Es sind zwei Formate moeglich: - Differenzlistenformat Es wird eine Liste erzeugt, die paarweise fuer beide Eingabeda- teien die sich unterscheidenden Zeilen enthaelt. - Kennzeichenformat Eingabedatei 2 wird aufgelistet. Dabei werden Zeilen, die ge- genueber entsprechenden Zeilen der Eingabedatei 1 unterschied- liche Inhalte haben, gekennzeichnet. 31 6.17. Dateikorrekturprogramm ZAP 1630 (OMEX) --------------------------------------------- Aufgaben -------- Das Dateikorrekturprogramm ZAP bietet die Moeglichkeit, Dateien von Datentraegern im Dateiformat FM16-D zu pruefen und zu mo- difizieren. Dies dient hauptsaechlich dazu, kleinere Korrekturen an Task- oder Datendateien interaktiv auszufuehren, ohne die Arbeitsschritte der Programmentwicklung zu wiederholen. Arbeitsweise ------------ Das Korrekturprogramm arbeitet in drei verschiedenen Modi, die in der Kommandozeile durch Schalter angegeben werden: - Task-Abbildungsmodus (die Adressen entsprechen der Ladetabelle) - absoluter Modus (absolute Adressenbezuege) - Lesemodus (Aenderungen sind temporaer) Im ausgewaehlten Modus koennen durch spezielle Kommandos, die denen der Testprogramme DEP/ODT 1630 (siehe Abschnitt 6.13.) weitgehend entsprechen, u.a. folgende Leistungen angefordert werden: - Laden und Benutzen von verschiedenen internen Registern - Ausgabe bzw. Aenderung von Speicherplatzinhalten in ver- schiedenen Formaten - Berechnung von . Verzweigungsoffsets . arithmetischen Ausdruecken . relativen, indizierten bzw. additiv verknuepften Adressen. Bei der Benutzung von ZAP sollte der Anwender grosse Vorsicht walten lassen, um nicht durch unbedachte Aktionen die gesamte Systemarbeit zu gefaehrden. 6.18. Abbruchanalyseprogramm CDA 1630 (OMEX) --------------------------------------------- Aufgaben -------- Das Dienstprogramm CDA (Crash Dump Analyzer) setzt die Unterstuetzung der Crash-Dump-Routine durch OMEX voraus (generie- rungsabhaengig). Beim Auftreten einer Abbruchbedingung (HALT- Befehl, unerlaubter Trap, unendliche Programmschleife) kann der Bediener diese OMEX-Routine starten und einen Abzug des aktuellen Hauptspeicherinhalts auf ein sogenanntes Crash- Speichergeraet (Platte, Magnetband) uebertragen. Dieser Speicherabzug ist die Arbeitsgrundlage fuer CDA. Arbeitsweise ------------ CDA liest den Speicherabzug und uebertraegt ihn als Datei auf eine Platte. Diese Datei wird von CDA analysiert. Das Analyse- ergebnis wird protokolliert. Die Analysen werden durch soge- nannte Analyseschalter im Kommando angefordert. Folgende Analysen sind moeglich: 32 - Analyse der Tasksteuerbloecke der aktiven Tasks - Analyse der Taskkoepfe - Protokoll zum Systemtaskverzeichnis - Analyse der Geraetesteuerbloecke der dem System bekannten Geraete - Protokoll zur Uhrwarteschlange - Protokoll zur Partition-Belegung - Ausgabe des Systempool-Inhalts - Ausgabe von Speicherabzuegen in waehlbaren Grenzen - Ausgabe von Taskabzuegen in waehlbaren Grenzen Neben den Analyseschaltern gibt es noch Funktionsschalter. Mit diesen werden Randbedingungen fuer die Analysen vorgegeben, z.B. die Anzahl der Protokollseiten und der Analysefehler, bei deren Erreichen CDA abbrechen soll. Jede CDA-Analyse beginnt mit einem Satz allgemeiner Systeminformationen: - Registerinhalte (R0...R7, SVE-Register, PAR, PDR) - Inhalt des Kellerspeichers des Exexkutivekerns - Inhalt des Systemcommon-Bereichs - spezielle Speicherzellen - Auswertung des Systempools - Fehlerregistrierungspuffer (Error Log Buffers) 6.19. Duplizier- und Sicherungsprogramm PRESRV 1630 ---------------------------------------------------- Aufgaben -------- PRESRV (Preservation Utility) ist ein systemunabhaengiges Pro- gramm. Es dient zur Sicherung und zum Duplizieren kompletter Datentraeger sowie zur Formatierung von Magnetplatten. Folgende Geraete werden bedient: - Magnetplatte - Folienspeicher - Magnetband - Kassettenmagnetband. Arbeitsweise ------------ Der Programmstart erfolgt entweder ueber das MCR-Kommando BOOT oder den Anfangslader. PRESRV enthaelt u.a. Kommandoschalter fuer die Formatierung, fuer die Formatzuweisung, zur Anpassung von PRESRV an spezielle Konfigurationen, zum Vergleichslesen und zum Starten von Systemen. Die Duplizierung erfolgt auf der Basis von drei Formaten: - FM16-D-Format - Image-Format - logisches Bandformat Das FM16-D-Format ist das Dateiformat fuer Magnetplatten der Betriebssysteme MOOS 1600 und OMOS 1630. Hierbei werden nur zugeordnete Bloecke auf der Platte beim Kopieren berueck- sichtigt. Das Image-Format wird vor allem beim Duplizieren zwischen glei- chartigen Geraeten benutzt. Die Daten werden so zum Ausgabegeraet uebertragen, wie sie physisch auf dem Eingabegeraet vorliegen. 33 Damit kann PRESRV auch zum Sichern von Datentraegern dienen, die nicht im Dateiformat FM16-D beschrieben sind. Das logische Bandformat ist in erster Linie fuer Kopien auf Magnetband geeignet, kann aber auch bei allen anderen Geraeten genutzt werden. Zu Beginn werden hierbei ein Lade-Block und eine PRESRV-Kopie auf den Datentraeger gebracht, so dass von Geraeten, die eine Kopie im logischen Bandformat enthalten, PRESRV geladen und gestartet werden kann. Auf einem Magnetband koennen mehrere Kopien enthalten sein. 6.20. Quelltexteingabeprogramm SLP 1630 (OMEX) ----------------------------------------------- Aufgaben -------- Das Programm SLP (Source Line Processor) ist Bestandteil des Betriebssystems OMOS 1630. SLP bearbeitet ausschliesslich Quell- textdateien und hat folgende Funktionen: - Erstellen von Quelltextdateien - Modifizieren (Loeschen, Ersetzen, Einfuegen) von Zeilen einer existierenden Datei - Erstellen und Abarbeiten von Indirektkommandodateien, die SLP-Editierkommandos beinhalten - wahlweises Kommentieren von Dateizeilen beim Austausch dieser Zeilen. Arbeitsweise ------------ Das Kommandoformat des SLP entspricht der im System OMOS ueb- lichen Kommandosprache. Die Editierung erfolgt zeilenweise, wo- fuer eine Reihe von Operatoren zur Verfuegung steht. SLP ge- stattet waehrend des Editierens eine gleichzeitige Ausgabe der Dateien auf Terminal, Drucker oder eine spezifizierte Datei. 6.21. Formatierungsprogramm fuer Magnetplatten FMT 1630 (OMEX) --------------------------------------------------------------- Aufgaben -------- Das Programm FMT (Format Utility) dient zum Formatieren von Datentraegern auf Magnetplatten- und Folienspeichern. Der ent- sprechende Datentraeger muss dazu ausgegliedert sein. Arbeitsweise ------------ Der zu formatierende Datentraeger wird mit seiner mnemonischen Geraetebezeichnung und Einheitennummer angegeben. Mittels Schalterangaben koennen u.a. folgende zusaetzliche Funktionen angewiesen werden: - anschliessende Ueberpruefung - indirekter Aufruf von BAD (s. Abschn. 6.14.) nach dem Formatieren - Beschraenkung des Vorganges auf bestimmte Sektoren oder Spuren der Magnetplatte Eine Formatierung von Datentraegern ist meist nur dann notwendig, wenn waehrend der Systemarbeit haeufig Uebertragungsfehler auftreten oder wenn es sich um fabrikneue Datentraeger handelt. 34 Vor der Benutzung im Betriebssystem OMOS 1630 muessen auf dem Datentraeger noch die Datei der fehlerhaften Bloecke mittels Dienstprogramm BAD angelegt und der Datentraeger initialisiert und eingegliedert werden. 6.22. Sortierprogramm fuer Verzeichnisdateien SRD 1630 (OMEX) -------------------------------------------------------------- Aufgaben -------- Das Programm SRD (Sort Directory Program) erfuellt dieselben Funktionen fuer Verzeichnisse wie PIP (Loeschen, Umbenennen von Dateien, Ausgabe von Verzeichnislisten) und kann darueber hinaus Verzeichnislisten und auch Verzeichnisdateien alphabetisch nach Dateinamen und -typ sortieren, komprimieren, Listen von Dateien nach verschiedenen Kriterien ausgeben (ausser nach Dateinamen, -typ, Version mit beliebigen Sternvereinbarungen auch nach Datei- identifikation, bezueglich des Datums, der Blockanzahl, des UIC des Dateieigentuemers u.a.). Arbeitsweise ------------ SRD bearbeitet Kommandos, die Dateispezifikationen fuer Ausgabedatei (Verzeichnisliste), Eingabedatei und Schalter enthalten. Fuer alle Elemente der Dateispezifikationen nimmt SRD Standards an. Die durch Schalter angewiesenen Operationen betreffen, wenn keine Dateispezifikation angegeben wurde, das aktuelle Nutzerdateiverzeichnis. Die Hauptaufgabe von SRD ist das Sortieren von Verzeichnislisten nach bestimmten Auswahlkriterien. Das Zurueckschreiben des sortierten Verzeichnisses kann ebenfalls durch einen Kommandoschalter angewiesen werden. Damit kann der Nutzer fuer seine Anwendungsprojekte Vorteile erreichen, da die Dateizugriffsroutinen beim Aufsuchen einer Datei die Verzeichnisse sequentiell durchsuchen. Eine guenstige Anordnung im Nutzerdateiverzeichnis verringert die Zugriffszeit. Bei der Angabe von Dateinamen sind Sternvereinbarungen zur Bezeichnung von Dateigruppen moeglich. SRD setzt solche Sternvereinbarungen auch automatisch ein, wenn das durch spezielle Schalter angewiesen wird. Das Loeschen von Dateien kann auch selektiv erfolgen. Waehrend beim normalen Loeschen nur die Dateispezifikationen der geloeschten Dateien protokolliert werden, wird beim selektiven Loeschen die Erlaubnis des Nutzers bei jeder betroffenen Datei eingeholt. 35 7. Assembler MAC 1630 (OMEX) ----------------------------- Aufgaben -------- Der Makroassembler MAC 1630 (OMEX) uebersetzt Quellprogramme, die in Assemblersprache MACRO 1600 geschrieben sind, und erzeugt Objektcode (der vom Taskbilder verarbeitet wird) und Uebersetzungslisten. Arbeitsweise ------------ Der Makroassembler besitzt eine Ueberlagerungsstruktur und arbei- tet in zwei Durchlaeufen. Neben den zu uebersetzenden Quell- textdateien koennen auch Makrobibliotheksdateien zugewiesen wer- den. Die Systemmakrobibliothek wird von MAC automatisch berueck- sichtigt. Im Kommando zur Uebersetzung koennen spezielle Funk- tionen angewiesen werden, z.B. zur Uebersetzungssteuerung oder zum Umfang der Uebersetzungsliste. Es besteht die Moeglichkeit der Ausgabe einer Cross-Referenz-Liste. Leistungsfaehigkeit ------------------- MACRO 1600 ist eine maschinenorientierte Programmiersprache. Sie gestattet die Benutzung saemtlicher Maschinenbefehle des MGS K 1600, die Verwendung symbolischer Adressen, verschiedene Adres- sierungsarten und ist durch folgende Eigenschaften gekennzeich- net: - MACRO 1600 gestattet eine uebersichtliche Programmierweise durch die Verwendung lokaler Symbole mit begrenztem Gueltig- keitsbereich. - Mit Hilfe globaler Symbole koennen Verbindungen zwischen ver- schiedenen, unabhaengig voneinander uebersetzten Quellprogram- men hergestellt werden, die beim Bilden der Task verbunden werden sollen. In jedem Quellprogramm koennen globale Symbole definiert und/oder benutzt werden. - MACRO 1600 ermoeglicht die Benutzung von Unterprogrammen. Es koennen interne Unterprogramme als Bestandteil des zu ueberset- zenden Quellprogramms sowie externe Unterprogramme, die in einer Unterprogrammbibliothek enthalten sind, benutzt werden. - Es stehen Anweisungen zur Verfuegung, die die Definition von Daten in allen vorhandenen Datenarten innerhalb des Programms gestatten. - Es gibt Anweisungen zur Definition von Programmsektionen, da- durch werden die logischen Programmeinheiten bereitgestellt, die beim Bilden der Task verarbeitet werden, z.B. zur Herstel- lung von Ueberlagerungsstrukturen. - Es besteht die Moeglichkeit der bedingten Uebersetzung. Be- stimmte Teile des Quellprogramms koennen in Abhaengigkeit von zu testenden Bedingungen wahlweise uebersetzt oder bei der Uebersetzung uebergangen werden. Dadurch koennen aus einem Quellprogramm bzw. aus einem einheitichen Paket von Quellpro- grammen ueber Steuergroessen unterschiedliche (Objekt-)Pro- grammversionen erzeugt werden. - In der Sprache MACRO 1600 ist eine flexible Makrotechnik ent- halten, die die Definition und Benutzung von Makros (Makrodefi- nitionen und Makroanweisungen) gestattet. Befehlsfolgen, die in gleicher oder aehnlicher Form in einem oder mehreren Quellprogrammen oft wiederkehren, koennen durch 36 Makros ersetzt werden. Es koennen interne Makros als Bestandteil des zu uebersetzenden Quellprogramms sowie externe Makros (die in einer Makrobiblio- thek enthalten sind) benutzt werden. 37 8. System- und Taskueberwachung -------------------------------- 8.1. Monitorprogramm zur Ressourcenueberwachung RMD 1630 (OMEX) ---------------------------------------------------------------- RMD ermoeglicht es dem Bediener, den Systemzustand laufend zu ueberwachen. Auf dem Bildschirm des Bediengeraets werden Informa- tionen ueber die Hauptspeicherauslastung, die aktiven Tasks und ueber einzelne Tasks seitenweise angezeigt. Durch spezielle Kom- mandos koennen die Anzeigeseiten umgeschaltet und ihr Inhalt ver- aendert bzw. erweitert werden. RMD wird bei der Systemgenerierung ausgewaehlt und im laufenden Betrieb als Task abgearbeitet. Um den Monitorcharakter der An- zeigen auszunutzen, kann RMD waehrend der Systemarbeit auf einem Bediengeraet staendig aktiv sein. 8.2. Pool-Monitor PMT 1630 (OMEX) ---------------------------------- PMT steuert die Belegung der dynamischen Region des Systems. Seine Benutzung muss bei der Systemgenerierung veranlasst werden, damit der Programmteil zur Ueberwachung der dynamischen Region in die Exekutive eingefuegt und die privilegierte Task PMT gebildet wird. Der Programmteil zur Ueberwachung der dynamischen Region zeigt freien Platz in der dynamischen Region an und bewertet die Stueckelung innerhalb dieser Region. Es werden dabei zwei Grund- zustaende unterschieden: Unkritischer Poolzustand: Der freie Speicherplatz in der dynamischen Region reicht aus, um die laufenden Systemanforderungen zu befriedigen. Kritischer Poolzustand: Es gibt nicht mehr genuegend freien Speicherplatz, um weitergehende System- anforderungen zu befriedigen. Ausserdem wird die Aufteilung der Region bewertet. Die privilegierte Task PMT wird von der Exekutive gestartet und arbeitet zyklisch im Hintergrund. Wenn der freie Speicherplatz in der dynamischen Region eine bestimmte Grenze unterschreitet oder in zu viele kleine Teile zerstueckelt ist, fordert PMT den Be- diener zu bestimmten Aktionen wie Abbrechen von Tasks auf, um Speicherplatz in der dynamischen Region freizumachen. Die Anzeigen der privilegierten Task PMT koennen durch Bediener- aktionen beeinflusst werden. Ebenso ist es moeglich, dass Anwender eigene Tasks benutzen, um die dynamische Region zu kontrollieren. 38 9. Zusaetzlicher Service ------------------------- 9.1. Fehlerregistrierung ERL 1630 (OMEX) ----------------------------------------- Das System der Fehlerregistrierung wird bei der Systemgenerierung eingebunden. Es ermoeglicht dem Anwender die Ueberwachung der Ge- raetetechnik waehrend der Arbeit des Systems. Alle auftretenden Fehlerzustaende werden registriert, unabhaengig davon, ob sie behoben werden konnten oder nicht, und bewertet. Folgende Fehlerarten koennen erfasst werden: - Geraetefehler - Interrupt-Timeouts - Unerwartete Traps und Interupts - Hauptspeicherfehler - Spannungsausfaelle Gehaeufte Fehler bei einem Geraet sollten Anlass zu gezielten Wartungsmassnahmen geben. 9.2. Online-Geraetetestprogramme --------------------------------- Auch die Online-Geratetestprogramme werden bei der Systemgenerie- rung eingebunden. Sie ermoeglichen durch selektive Abarbeitung von Tests einzelner Geraetefunktionen eine genaue Diagnose des Systemzustands, ohne dass die Arbeit des Gesamtsystems unter- brochen werden muss. Alle Programme koennen im - Wartungsmodus, - Nutzermodus oder im - Servicemodus arbeiten. Diese Modi unterscheiden sich durch die Kompliziertheit der moeglichen Testfolgen. Dabei stellt der Wartungsmodus die einfachste, der Servicemodus die umfassende Variante dar. Online-Geraetetestprogramme existieren fuer alle von OMOS 1630 unterstuetzten Geraeteklassen. Sie werden als Tasks abgearbeitet. 9.3. Allgemeines Geraetetestprogramm IOX 1630 (OMEX) ----------------------------------------------------- IOX ist ein vielfach nutzbares Geraetetestprogramm, das unter Steuerung der Exekutive arbeitet, fuer Geraete mit magnetisch zu beschreibenden Speichermedien (Magnetplatten, Disketten, Magnetbaender, Kassettenmagnetbaender). Fuer diese Geraete sind mehrere Testvarianten moeglich. - Lesen der vorhandenen Informationen - Aufzeichnen und Lesen von Daten, die der jeweiligen Datentraegerstruktur entsprechen (FM16-D oder FM16-M) - Aufzeichnen und Lesen von speziellen Testmustern (dabei Zerstoerung der Datentraegerstruktur) Zur Auswertung werden auf Anweisung des Nutzers verschiedene Protokolle (Aktivitaeten, E/A-Fehler, Datenvergleichsfehler) ausgegeben. 39 9.4. Gleitkommaemulationsprogramm FPEM 1630 (OMEX) --------------------------------------------------- Der Gleitkommaemulator FPEM ist ein Programm, das zu Beginn der Systemarbeit gestartet wird und im Hintergrund aktiv bleibt. Durch FPEM wird die Benutzung des Gleitkommabefehlsatzes des K 1630 ermoeglicht, ohne dass ein Arithmetikprozessor vorhanden sein muss. Ferner werden die Befehle des Gleitkommabefehlsatzes FIS (Floating-point instruction set) des SKR realisiert. Jeder Befehl, der nicht zum Grundbefehlsatz des K 1630 einschliesslich EIS (Extended instruction set) gehoert, wird automatisch ueber einen EMT an den Gleitkommaemulator uebergeben, von diesem interpretiert und gegebenenfalls abgearbeitet bzw. im anderen Falle als illegale Instruktion abgelehnt. 9.5. Speicherverdichtungsprogramm SHF 1630 (OMEX) -------------------------------------------------- Das Speicherverdichtungsprogramm SHF wird automatisch von der Exekutive gestartet, wenn in einer systemgesteuerten Partition zu wenig zusammenhaengender Speicherplatz vorhanden ist, um eine benoetigte Task zu starten. Dabei werden die geladenen Tasks so umgelagert, dass der freie Platz am Ende der Partition einen zusammenhaengenden Bereich bildet. Sollte der so erhaltene Platz noch nicht ausreichen, werden Tasks niedrigerer Prioritaet ausge- lagert. Anschliessend wird die Verdichtung wiederholt. Geladene Geraetedriver, Tasks mit aktiven E/A-Operationen, von der Exekutive abgebrochene, fixierte Tasks und dynamisch erzeugte geteilte Regionen koennen durch SHF nicht umgelagert werden. 9.6. Print-Spooler PRT 1630 (OMEX) ----------------------------------- Der Print - Spooler ist ein Programm, mit dessen Hilfe die Druckausgaben von Nutzerprogrammen bzw. Dienstprogrammen in den Hintergrund verlagert werden koennen. Jede Task kann Druckauftraege an den Print Spooler uebergeben. Diese werden nicht unmittelbar an einen Drucker weitergeleitet, sondern in eine Warteschlange fuer einen bestimmten Drucker ein- gereiht, aus der sie dann nacheinander abgearbeitet werden, ohne sich gegenseitig zu stoeren. Ueber den Print Spooler koennen Textdateien im KOI7-Code mit maximal 132 Zeichen pro Zeile ausgegeben werden. Beim Aufruf von Dienstprogrammen wird die Uebergabe der Ausgabedatei an den Print Spooler durch den Schalter /SP angewiesen. Nutzerprogramme muessen den Makro PRINT$ verwenden, um durch FCS-Routinen erzeugte Ausgabedateien an den Print Spooler zu uebergeben. 40 10. Bibliotheken ----------------- Zum BS OMOS 1630 gehoeren folgende Objektmodulbibliotheken und Makrobibliotheken: EXEMC.MLB SYSMAC.SML EXELIB.OLB SYSLIB.OLB VMLIB.OLB In diesen Bibliotheken sind physisch Makros bzw. Unterpro- gramme zusammengefasst, die zwar inhaltlich keine Einheit bilden, aber allgemein benoetigt werden. Aus diesem Grund existiert keine einheitliche Dokumentation, in der alle Komponenten be- schrieben sind. Die einzelnen Bibliothekskomponenten (Makros bzw. Objektmoduln) werden in mehreren Dokumentationen beschrie- ben, die nach dem jeweiligen Aufgabenbereich zusammengestellt worden sind. Nach den dort angegebenen Vorschriften sind die Makros bzw. Zugriffe zu den Objektmoduln in das Quellpro- gramm zu uebernehmen. Dabei gilt die SYSMAC.SML als System-Mak- robibliothek fuer den Assembler MAC 1600 bzw. die SYSLIB.OLB als System-Objektmodulbibliothek fuer den Taskbil- der TKB 1630; der Zugriff des Assemblers bzw. Taskbilders er- folgt ohne gesonderte Angabe dieser Bibliotheken im Kommando. Diese beiden Bibliotheken sind fuer die Anwender von besonderem Interesse, da in ihnen die meisten allgemein benoetigten Routinen enthalten sind. Die Makros der SYSMAC.SML sind gewoehnlich Aufrufmakros fuer Unterprogramme aus der SYSLIB.OLB. Programme in Assemblersprache rufen meist Makros der SYSMAC.SML auf, die ihrerseits die entsprechenden Unterprogramme der SYSLIB.OLB aktivieren. Programme in hoeheren Programmiersprachen organisieren im allgemeinen den Aufruf der Unterprogramme und die Parameteruebergabe direkt. Die Beschreibungen der Bibliotheksinhalte sind wie folgt verteilt: Ein Teil von Makros und Unterprogrammen, die im wesentlichen Exekutiveleistungen und Ein-/Ausgaben betreffen, ist in der Anleitung fuer den Programmierer, Teil 2: "Steuerprogrammsystem (Exekutive) OMEX 1630" und in Teil 3: "Ein-/Ausgabesystem" beschrieben. Dabei sind die Unterprogrammaufrufe, wie sie z.B. in FORTRAN-Programmen notwendig sind, gleichfalls angegeben. Einen grossen Teil der SYSLIB.OLB und der SYSMAC.SML nehmen die Dateizugriffsroutinen ein, die in der "Anleitung fuer den Programmierer, Teil 5: Dateizugriffsroutinen (FCS 1630)" beschrieben sind. Fuer einen Teil der Objektmodulbibliotheksroutinen aus der SYSLIB.OLB und der VMLIB.OLB existiert eine gesonderte Doku- mentation, die Anleitung fuer den Programmierer, Teil 6 "System- bibliotheksroutinen". Hier sind folgende Komponenten beschrieben: 41 Registerrettung Arithmetik Ein-/Ausgabe-Konvertierung Ausgabeformatierung Verwaltung des virtuellen Speichers Die EXELIB.OLB und die EXELIB.MLB sind systeminterne Bibliothe- ken. Sie enthalten systeminterne Vereinbarungen, von denen einige bei der Programmierung ladbarer Driver benutzt werden. Diese sind in der Anleitung fuer den Systemprogammierer, Teil 3: "Anleitung zur Entwicklung nutzereigener Driver" beschrieben. 42 11. Generierung ---------------- Die Generierung des Betriebssystems OMOS 1630 erfolgt in 3 Phasen. In den beiden ersten Phasen, die ausschliesslich vom Entwickler ausgefuehrt werden, werden die Moduln der Exekutive, der Geraetedriver und der privilegierten Tasks assembliert und zu Tasks verbunden. Nach der Initialisierung liegt bereits ein arbeitsfaehiges Betriebssystem vor. Vom Entwickler werden mehrere Standardvarianten der Exekutive bereitgestellt, unter denen der Anwender die fuer seinen Betrieb guenstigste waehlen kann. Ausserdem werden die zum Lieferumfang gehoerenden Driver, privilegierten Tasks, Systembibliotheken, Dienstprogramme, Geraetetestprogramme usw. zur Verfuegung gestellt. In der Phase 3 wird beim Anwender das arbeitsfaehige Betriebssystem vervollstaendigt und modifiziert. Dazu gehoeren folgende Arbeitsschritte: - Bilden von nichtprivilegierten Tasks, wobei diese wahlweise mit einer residenten Bibliothek und mit Routinen zur Unterstuetzung des Magnetbandformats FM16-M verbunden werden koennen. - Bilden der Tasks der Geraetetestprogramme - E/A-Generierung (Anpassung der Driver an die Konfiguration, Einbinden weiterer Driver) In den beiden ersten Generierungsphasen werden Kommandodateien aufgebaut, die dem Anwender grosse Unterstuetzung bei der Phase 3 der Generierung bieten. Ausserdem kann er auch noch mit Hilfe des virtuellen Kommandoprogramms Veraenderungen im Systemabbild der Exekutive vornehmen. 43 Anlage 1 Typenbezeichnungen der Geraete ---------------------------------------- Entsprechend dem derzeitig gueltigen Systembestand fuer KBR/PRS werden durch OMEX 1630 die in Abschnitt 2. dieser Schrift genannten Geraete durch die nachfolgend aufgefuehrten Typenbezeichnungen konkret angegeben. Bildschirm-E/A-Geraet: K 8911 (Bedieneinheit BDE) Festplattenspeicher: K 5501 Kassettenplattenspeicher: CM5400 Lochbandeinheit: CM6211 (K 6200) CM6204 Kassettenmagnetbandeinheit: CM5210 (K 5261) Magnetbandgeraet: CM5300 CM5303 Seriendrucker: CM6317 (robotron 1152) CM6309 (robotron 1157) (auch graphischer Modus) Seriendrucker (robotron K 63xx Paralleldrucker: CM6313 (VT 27065) Bildschirmterminals: Rastersichtgeraet K 8917 Folienspeichereinheit: K 5665 44 Abkuerzungsverzeichnis ---------------------- AST Asynchroner Systemtrap BAD (Bad Block Locator Utility) Plattenpruefprogramm BRU (Backup and Restore Utility) Datensicherungsprogramm BS Betriebssystem CDA (Crash Dump Analyzer) Abbruchanalyseprogramm CLI (Command Line Interpreter) Programm zur Bearbeitung von Kommandos CMP (File Compare Utility) Dateivergleichsprogramm DEP (Debugging Program) Testprogramm DMP (Dump Utility) Dateidruckprogram DSC (Disk Save and Compress) Dateirettungs- und Ver- dichtungsprogramm DSW (Directive Status Word) Anweisungsstatuswort E/A Ein- und Ausgabe EDI Editoren EDT EOF (End of File) Dateiendekennsatz EOV (End of Volume) Datentraegerendekennsatz ERL (Error Logging) Fehlerregistrierung FCB (File Control Block) Dateisteuerblock FCS (File Control Services) Dateizugriffsroutinen FD16 Datensicherungsformat FE16 Global genormte Dateiformate (Dateiformat "established") FEX (File Exchange Utility) Dateiaustauschprogramm FL16 Dateiformat LAOS 1630 FLX (File Transfer Utility) Dateiumwandlungsprogramm FMT (Format Utility) Formatierungsprogramm fuer Magnetplatten FM16 Dateiformat MOOS 1600 und OMOS 1630 FPEM (Floating-point Emulation Program) Gleitkommaemulator FQ16 lokal genormte Dateiformate (Datenformat "queered") HDR (Header Label) Dateianfangskennsatz IOX (I/O Exerciser) Allgemeines Geraetestprogramm KBR Kommerzielles Basisrechner- system KROS Kombinat Robotron Standard LBN (Logical Block Number) Logische Blocknummer LBR (Librarian Utility) Bibliothekar LC (Location Counter) Speicherplatzzaehler des Assemblers LUN (Logical Unit Number) logische Geraetenummer LP (Line Printer) Zeilendrucker MAC Makro-Assembler MCR Kommandoprogramm 45 MFD (Master File Directory) Hauptdateiverzeichnis MGS Mikrorechnergeraetesystem MOEX Exekutive des MOOS MOOS 1600 Modulares Operationssystem NP Nutzerprogramm ODT (On Line Debugging Tool) Testprogramm OMEX Exekutive des OMOS OMOS 1630 Optimiertes Modulares Betriebssystem PAT (Objekt Module Patch Utility) Objektmodul-Korrekturprogramm PC (Program Counter) Befehlszaehler PIP (Peripheral Interchange Dateitransferprogramm Program) PRESRV (Preservation Utility) Duplizier- und Sicherungs- programm PRT (Print spooler) Print-Spooler PS Prozessorstatuswort RAM (Random Access Memory) Speicher mit wahlfreiem Zu- griff SD Seriendrucker SHF (Shuffler) Speicherverdichtungsprogramm SLP (Source Line Processor) Quelltext-Korrekturprogramm SKR System der Kleinrechner SRD (Sort Directory Program) Sortierprogramm fuer Verzeichnisdateien SST Synchroner Systemtrap SVE Speichervermittlungseinheit TKB Taskbilder UFD (User File Directory) Nutzerdateiverzeichnis UIC (User Identification Code) Nutzeridentifikationscode UHL (User Header Label) Benutzereigene Dateikennsaetze UTL (User Trailer Label) UVL (User Volume Label) VBN (Virtual Block Number) Virtuelle Blocknummer VCB (Volume Control Block) Datentraegersteuerblock VFY (File Structure Verification Dateipruefprogramm Utility) VMR (Virtual Monitor Console Virtuelles Kommandoprogramm Routine) VOL (Volume Label) Datentraegerkennsatz ZAP Dateikorrekturprogramm ZVE Zentrale Verarbeitungseinheit 46