Verteilte Betriebssysteme: Probleme und Lösungen (Teil 1)

Betriebssysteme müssen künftig Rechner und Netzwerke steuern

09.10.1992

Der Grad der Vernetzung ist inzwischen in nahezu dramatischer Weise angestiegen. Das weitgehende Fehlen adäquater Hilfsmittel für die Steuerung vernetzter Umgebungen läßt nun die Anwendung von Betriebssystemen, die auf eine einzelne Maschine beschränkt sind, fraglich erscheinen, Gefragt sind jetzt verteilte Betriebssysteme (VBS), die Netze und angeschlossene Rechner als logische Einheit steuern können. Im ersten Teil dieser Artikelreihe soll ein Problemaufriß zu diesem noch recht neuen Thema gegeben werden.

Verteilte Betriebssysteme existieren in Forschung und Entwicklung schon seit einigen Jahren. Durch die Arbeit der Open Software Foundation (OSF) und vergleichbarer Organisationen wurde in letzter Zeit das Augenmerk der Anwender auf mögliche Vorteile hochwertiger Betriebssystem-Konzepte in vernetzten Umgebungen gelenkt. Gestiegene Anforderungen, der zunehmende Grad der Vernetzung, die Probleme des Netzwerk-Managements und schließlich die Weiterentwicklung der Basistechnologien verlangen neue Lösungen für das "geistige Zentrum" der Maschinen: das Betriebssystem.

Die Entwicklung der Hardware-Basistechnologien geht mit atemberaubender Geschwindigkeit voran. In gleichem Maße sind die Möglichkeiten der Anwendungssoftware gestiegen: von der Textverarbeitung mit Kommandozeilen- orientierter Benutzerschnittstelle zu Multimedia. Alle Hersteller arbeiten heute mit Nachdruck daran, in breitem Maße Benutzeroberflächen einzusetzen, die die technische Herkunft der Daten- und Programmobjekte verdecken. Der Zugriff -auf Objekte sollte immer die gleiche Form haben, unabhängig von der Implementierung des Objektes und der Architektur, auf der es implementiert ist. Eine wesentliche Anforderung besteht darin, daß der Anwender möglichst wenig damit belastet wird, Kommunikationsverbindungen auf und abzubauen. Vielmehr ist es Aufgabe von Hilfsmitteln in der vernetzten Umgebung, dafür zu sorgen, daß die Verbindungen aufgebaut und genutzt werden, wenn ein Anwender auf ein Objekt zugreift, egal, ob sich dieses Objekt auf seinem System oder auf einem anderen Rechner im Netz befindet.

Alle modernen Netz-Betriebssysteme wie Netware (Novell), Vines (Banyan) oder LAN Manager (Microsoft) verfügen grundsätzlich über diese Funktion jedoch mit teilweise mangelhafter Transparenz. Mit Konstruktionen wie NFS (Network File System) ist auch hier wiederum der Unix-Bereich führend. Die Verteiltheit in solchen Systemen beschränkt sich jedoch auf Datenobjekte oder Objekte, die sich unmittelbar durch Datenobjekte darstellen lassen. Prozesse werden im allgemeinen nicht verteilt, sondern laufen üblicherweise auf der Maschine zu Ende, auf der sie gestartet wurden. Die Dimension der auf mehrere Maschinen verteilten Programmausführung bleibt somit leer.

Die Netzwerktechnologien hinken, der allgemeinen Entwicklung hinterher: Viele lokale Netze nutzen die Verteiltheit nicht oder kaum. Dies kann sich jedoch in den nächsten Jahren schlagartig ändern (zur detaillierten Darstellung der Entwicklung von Anforderungen und Netzen siehe Literaturangaben 2, 6 und 7).

Die verteilte Datenverarbeitung muß ihre Realisierung in einer geeigneten Kombination aus Hardware, Betriebssystemen, Netzwerken und ihren Protokollen sowie Anwendungssoftware finden. Es ist zu erwarten, daß das moderne Unternehmensnetz kein zentral von einer Netzwerkarchitektur gesteuertes baumförmiges Gebilde mehr darstellt, sondern vielmehr eine in hohem Maße kooperative Struktur unterschiedlicher physischer und logischer Systeme. Sie orientiert sich idealerweise gleichermaßen an den Bedürfnissen der Benutzer, Betreiber 11 sowie Planer und wird vor allem durch die Schlagwörter "Workgroup Computing", "Rechnerbene" und "Internetworking" gekennzeichnet.

Workgroup Computing setz voraus, daß die Arbeit nicht von einem isolierten Mitarbeiter auf dessen PC geleistet wird, sondern von einer Gruppe aus fünf bis 30 Personen, die zum Zwecke. der besseren Zusammenarbeit auch räumlich nicht getrennt sein sollte.

Die Integration von Workgroup-Computing

Die Workgroup-LAN-Strukturzellen sind im Rahmen eines Internetzes mit anderen Workgroups und weiteren Diensten, beispielsweise solchen der Großrechnerumgebung, verbunden. Das Internetz besteht aus verschiedenen Brücken und Routern, entweder unsystematisch verbunden oder durch ein Backbone-Netz unterstützt. Größere Unternehmen und Organisationen verfolgen heute vielfach, bei Neuplanungen das Konzept dreier Rechnerebenen: Arbeitsplatz-, Abteilungs- und Großrechnerebene.

Bei den Anwendern entwickelt sich aus der zentralen Datenverarbeitung mit dem Host im Mittelpunkt und der dezentralen Datenverarbeitung mit ungeordneten allein stehenden PCs, PC-Netzen oder kleinen Mehrplatzsystemen allmählich die verteilte Datenverarbeitung unter Nutzung aller Ressourcen, wobei Netze als physische Bindeglieder wirken. Damit geht jedoch üblicherweise ein Verlust an Kontrolle einher: Die vielfältigen heterogenen Netzwerk- und Systemumgebungen mit ihren eventuell völlig unterschiedlichen Protokoll-Stacks besitzen in der Regel nur lokale Management-Fähigkeiten. Momentan arbeitet man daran, das Netzwerk-Management zu integrieren (zum Stand der Entwicklung des Netzwerk-Managenents siehe Literaturhinweis 4).

Solange sich ein Netz logisch vollständig durch eine Menge von Diensten darstellen läßt, die von Dienstnehmern genutzt und von Servern angeboten werden, wobei die Server grundsätzlich nichts anderes tun, als dediziert Dienste für das Netz leisten, bereitet die Betriebsmttelzuordnung nur wenige Probende. Dies kann jedoch nicht immer vorausgesetzt werden. Ausnahmen ergeben sich immer dann, wen Betriebsmittel eines Rechners sowohl über das Netz als auch von den unmittelbaren Teilnehmern an diesem Rechner (Terminals) selbst genutzt werden: Es entsteht ein "Interessenkonflikt" zwischen lokaler und netzweiter Verfügbarkeit.

Die Anzahl der Endgeräte in Unternehmensnetzen nimmt drastisch zu, ebenso die von Teil- oder Workgroup-Netzen. Bei der immer größeren Komplexität von Protokoll-Stacks, Servern, Services und Anwendungsprogrammen wild es oft nicht möglich sein, Kompetenzkollisionen aufzulösen. Die mangelnde Integration von Netzwerk- und Betriebssoftware dürfte einen immer größeren personellen Aufwand erzeugen, ständig wachsende Anforderungen an das Personal stellen und in letzter Konsequenz kontinuierlich die Ausfallzeiten verlängern, da die Beseitigung der Fehler langwieriger wird.

Betriebsystemen einzelner Rechensysteme haben die Aufgabe, aus den Hardware- und Softwareressourcen eine zusammenhängende Menge von Objekten zu machen wobei jedes Objekt durch Ausführung von Operationen auf diesen Objekten nutzbar gemacht wird. Für die Benutzung wichtige Aspekte sind dabei:

- eindeutige Bezeichnung von Objekten,

- Mechanismen für den Zugriff auf Objekte und für den Schutz vor unberechtigtem Zugriff,

- Aufteilung der Objekte in verschiedene Klassen anhand von Eigenschaften, etwa gemeinsame Benutzung mit Synchronisationsbedingungen oder Häufigkeit der Benutzung,

- Kontrolle und Reaktion auf fehlerhafte Zustände und fehlerhafte Nutzungen,

- Erkennen, Verhindern und Vermeiden von Verklemmungen,

- Kommunikation zwischen Objekten

- flexible Verwaltung von dynamischen Objektmengen,

- Lebensdauer von Objekten sowie

- Zustände von Objekten.

Das Betriebssystem als Systemintegrator

Das Betriebssystem unterstützt diese Aspekte, indem es eine Vielzahl von Mechanismen bereitstellt, die durch die Anwendungen genutzt und mit Leben gefüllt werden können. Zudem löst es die wesentlichen Aufgaben der Verwaltung unterschiedlicher Ressourcen, wobei differierende Strategien Anwendung finden.

Die Gesamtfunktionalität ist gegliedert in Funktionsbereiche wie Pförtner, Auftragssprachen-Interpreter, Datei-System, Kommunikation, Speicherverwaltung, Prozeßverwaltung, EIA- System, Interrupt-System, Scheduler und Dispatcher (eine aktuelle, sehr schöne Darstellung der wesentlichen Funktionen enthält das Taschenbuch der Informatik, Literaturangabe 9).

Ein verteiltes System besteht in bezug auf die Hardware aus zwei Komponentengruppen: Knoten oder Stellen (Rechner) und einem Nachrichtennetz, welches die räumlich getrennten Knoten untereinander verbindet.

Das Betriebssystem eines verteilten Systems hat genau die gleichen Aufgaben gegenüber den (nunmehr ebenfalls räumlich verteilten) Benutzern wie das Betriebssystem einer zentralen Maschine. Die Voraussetzungen für die Erbringung der erforderlichen Leistung sind jedoch in diesem Falle ungünstiger:

- Durch die Netzwerkumgebung erfolgen Aktionen (nacheinander oder parallel) an mehreren Stellen. Die Kontrolle muß also ebenfalls verteilt werden.

- Die Betriebssystem-Komponenten, die lokale Objekte verwalten, existieren auf den Knoten, für die sie zuständig sind; diejenigen, die globale Objekte verwalten, können über mehrere oder alle Knoten verteilt sein.

- Ein von allen gemeinsam genutzter physikalisch einheitlich existenter, sicherer Speicher kann nicht vorausgesetzt werden.

- Die Zustände der einzelnen Stellen sind verteilt, deshalb liegt nicht an allen Stellen eine vollständige Sicht der Zustände vor.

- Die Zustände des Netzes müssen gegebenenfalls zusätzlich berücksichtigt werden.