Wie IBM die Zukunft der Betriebssystem-Entwicklung sieht:Systemsoftware wird zunehmend im Mikrocode versiegelt

20.04.1979

Feinsinnig bemerkt IBM, daß Kenntnisse über den internen Datenfluß eines Rechners "auch von einem erfahrenen Anwendungsprogrammierer nicht gefordert" und deshalb in einer modernen Maschinenarchitektur "nicht vorausgesetzt werden" dürfen. Diese Feststellung gehört zu einem Software-strategischen Puzzle, das Antwort auf die Frage liefern soll: Bringt es Vorteile, Teile des Betriebssystems in Microcode auszuführen? Die Software-Spezialisten des Marktführers vertreten in dieser Frage einen Pro-domo-Standpunkt: "Bei sehr gleichmäßigem Anwendungsprofil und niedrigen Anforderungen an Portabilität wird es vorteilhaft sein, mehr typische Betriebssystemfunktionen im Mikrocode auszuführen." Indes läge es, so deutet IBM an, bei den Anwendern, sieh diese Jacke anzuziehen oder nicht. Der folgende Beitrag * untersucht den gegenwärtigen Stand der Betriebssystem-Technik und weist auf Entwicklungstendenzen bei den Grundfuktionen der Betriebssysteme hin.

Um die Breite der Anforderungen an die Flexibilität der Betriebssysteme voll ermessen zu können, muß man sich mit ihrer Basis beschäftigen, mit der Architektur der Maschine. Hervortretendes Merkmal der Maschinenarchitektur ist ihr Instruktionssatz, der sich im allgemeinen aus zwei verschiedenen Arten von Instruktionen zusammensetzt:

- Anwendungsorientierte Instruktionen, die Operationen wie Arithmetik, logische Abfragen oder die Bewegung von Daten innerhalb des Hauptspeichers ermöglichen. Der Umfang dieses Teils des Instruktionssatzes wird weitgehend von dem zu erwartenden Anwendungsspektrum bestimmt.

- Geräteorientierte Instruktionen, die meist so privilegiert sind, daß sie nur von Systemprogrammfunktionen ausgeführt werden dürfen. Diese Instruktionen weisen Unterschiede - je nach Gerät - entsprechend seinen physikalischen Eigenschaften auf. Zu ihnen zählen auch Instruktionen, die den Zentralrechner selbst steuern.

Ein anderes Merkmal der Maschinenarchitektur ist die interne Darstellung und Adressierung von Daten. Auch die Unterbrechungsmöglichkeiten im Programmablauf sind Teil der Maschinenarchitektur. Solche Unterbrechungen werden an das Betriebssystem zurückgemeldet, um den Abschluß asynchroner Operationen (Drucken) mitzuteilen. Erst durch diese Unterbrechungsmöglichkeit kann das Betriebssystem die Multiprogrammierung befriedigend anbieten. Andererseits tragen gerade diese asynchronen Steuerungsvorgänge wesentlich zur Komplexität der Betriebssysteme bei.

Welche Bedeutung hat nun die Maschinenarchitektur für den Anwender oder für die Software allgemein?

Die Maschinenarchitektur beschreibt eine Rechnerserie unabhängig von den einzelnen Modellen, die innerhalb dieser Rechnerserie angeboten werden. Diese modellunabhängige Beschreibung gewährt eine Portabilität von Programmen jeder Art - also auch der Systemsoftware - zwischen verschiedenen Modellen. Sie dient somit der Flexibilität der Programmbenutzung innerhalb einer gesamten Rechnerserie und verbessert dadurch die Wirtschaftlichkeit der Programmerstellung.

"Die Hauptlast des Modernisierungsaufwandes liegt bei den Betriebssystemen"

Eine Änderung der Maschinenarchitektur selbst ist wegen des damit verbundenen Kostenaufwandes und der geforderten Programmportabilität nur sehr schwer möglich. Damit liegt aber die Hauptlast des Modernisierungsaufwandes bei den Betriebssystemen, die diese Einschränkungen einer festen Architektur nicht haben. Andererseits hat man aber in der Maschinenarchitektur auch bewußt einige Lücken gelassen, um verschiedene Modelle in der gleichen Maschinenarchitektur implementieren zu können. Eine typische Eigenschaft, die nicht durch die Maschinenarchitektur bestimmt werden kann, ist die Arbeitsgeschwindigkeit eines Rechners.

Welchen Einfluß haben Lücken, die nicht von der Architektur beschrieben werden - etwa unterschiedliche Geschwindigkeiten eines Rechnermodells - auf die Betriebssysteme?

Mit einem Beispiel läßt sich das am besten beschreiben: Normalerweise bringt ein "Page-Fault", also die Feststellung, daß eine zur Verarbeitung benötigte Seite sich im Augenblick nicht im Hauptspeicher befindet, für die Systembelastung keine Probleme. Nur bei extremer Überlastung kann der Soft- und Hardwareaufwand, der benötigt wird, um häufige Seiten des Hauptspeichers einzulesen oder auszuschreiben, so groß werden, daß der optimale Durchfluß des Systems gefährdet wird. Die meisten Betriebssysteme besitzen für diesen Fall eine Funktion, die es erlaubt, das System zu "beruhigen", das heißt, sie legen einige Jobs, die das System überlasten, für einige Zeit still, bis die Gesamtbelastung des Systems wieder nachläßt. Eine solche Funktion wird im allgemeinen als "Load Leveler" bezeichnet. Die Parameter, die das Stillegen und Reaktivieren von Jobs steuern, werden sehr stark von der Geschwindigkeit sowohl des Rechners als auch der externen Geräte beeinflußt. Den Betriebssystemen fällt somit die Aufgabe zu, sich an nicht durch die Architektur bestimmte Geräteeigenschaften anzupassen, um eine optimale Systemauslastung zu gewährleisten.

* Der Beitrag beruht auf einem Vortrag, der auf einem Journalisten-Seminar des IBM-Laboratoriums am 7. März 1979 in Böblingen gehalten wurde.