Erläutern Sie Schnittstelle und Protokoll an einem selbstgewähltem Beispiel.

Kommunikation zwischen Aktivitäten  erfolgt stets über eine Schnittstelle  (Interfaces) gemäß von Regeln  (Protokoll).

Die Schnittstelle ist der statische Aspekt der Kommunikation.

Die Schnittstelle legt fest:

  1.  Welche Dienste werden bereitgestellt?

  2.  Welche Datenstrukturen werden benutzt?

  3.  Wie werden die Dienste benutzt?

Es gibt datenorientierte und steuerungsorientierte Schnittstellen

Schnittstelle ist der Übergang von einer Schicht zur nächstliegenden Schicht, von einer Hardwarekomponente zu anderen Hardwarekomponente.

Beispiel

(datenorientierte Schnittstellen)

· Analog-Digital-Wandler: Der Wandler stellt kontinuierlich Daten bereit, die durch einen Mikroprozessor zyklisch ausgelesen werden, ohne dass die Steuerung des Wandlers an den Mirkoprozessor abgegeben wird: D. h. der Wandler "wartet" nicht, bis der Mikroprozessor die Daten ausgelesen hat.

· Wetterwarte: Diese stellt in einem festen Zeitintervall kontinuierlich Daten bereit, die von einem Rechner ausgelesen und weiter verarbeitet werden.

 

Das Protokoll ist der dynamische Aspekt der Kommunikation.

Das Protokoll legt fest:

1) Was ist die Semantik (Bedeutung) der Dienste?

2) Wie ist der zeitliche Ablauf der Kommunikation?

(Wenn-Dann-Beziehungen)

Ein Protokoll ist eine feste Vorschrift über den Inhalt der auszutauschenden Informationen und die Folge der zu realisierenden Dienste geregelt. Im Prinzip ist in jeder Schicht des Hierarchischen Schichtenmodells mindestens ein Protokoll vorgesehen, das die Semantik der Steuerung der darüber liegenden Schicht beschreibt

Relationen zwischen Aktivitäten sind durch die Dualität von Protokoll und Schnittstelle gegeben. Das Protokoll beschreibt den dynamischen Aspekt der Relation, die Schnittstelle den statischen.

Nennen Sie Schnittstellen des Betriebssystems!

Beispiel Schnittstelle zwischen CPU und Hauptspeicher

Die CPU ist über den Systembus mit dem Hauptspeicher (HS) verbunden und stellt damit die Schnittstelle dar. Der zeitliche Ablauf - und damit das Protokoll - ist folgendermaßen (vereinfacht) vereinbart:

o Wenn die CPU eine Adresse auf den Adressbus legt, dann dekodiert der Hautspeicher diese Adresse.

o Wenn die CPU eine Adresse auf den Adressbus gelegt hat, dann wartet die CPU eine wohldefinierte Zeit.

o   Wenn die wohldefinierte Zeitspanne verstrichen ist, liest die CPU die am dem Datenbus anliegenden Daten in ein Register. 

Beispiel Schnittstelle Anwendung - Filesystem (Dateifunktionen)

Für die Arbeit in einer Anwendung werden spezielle Systemfunktionen der Dateiarbeit genutzt. Die Funktionsköpfe stellen somit die Schnittstelle zwischen Anwendungsschicht und Filesystem dar.

Da es sich um Systemfunktionen handelt, ist die Dateischnittstelle eindeutig steuerungsorientiert.

Das Protokoll wird über die Defintion der Funktionalität der in der Schnittstelle beschriebenen Systemrufe sowie der möglichen zeitlichen Abläufe eindeutig definiert.

Nennen Sie einige Protokolle!

Beispiele (aus täglichen Praxis)

v Herstellen einer Verbindung beim Telefonieren,

v Verständigung von Diplomaten untereinander und

v das Aufgeben einer Bestellung im Selbstbedienungsrestaurant.

Was ist ein Aktivitätstoken?

Welche Betriebsmittel benötigt eine Aktivität mindestens?

Wodurch wird ein Prozess beschrieben?

Vergleichen Sie die 4 Aktivitätsarten hinsichtlich Aktivitätstoken, Protokoll der Tokenübergabe und Betriebsmittelnutzung.

Eine Aktivität ist ein identifizierbarer Handlungsablauf in einem System. Er folgt einer Handlungsvorschrift, dem Programmcode, ein Programmcode ist nur die Beschreibung und nicht die Aktivität. Die Abarbeitung des Programmcodes führt zur Aktivität.

Mehrfacher Start des gleichen Programms führt zu mehreren Aktivitäten.

Ein Aktivitätstoken ist ein Modell.

Eine Aktivität kann theoretisch ablaufen, wenn sie ein Aktivitätstoken besitzt. Ein Aktivitätstoken ist so etwas wie ein virtueller Prozessor, oder besser, ein virtuelles Steuerwerk.

Aktivitäten werden unterschieden nach:

a) Anzahl der (quasi-)gleichzeitig ablaufenden Aktivitäten (= Anzahl der Aktivitätstoken)

b) Verteilung der Aktivitätstoken

c) Übergabeprotokoll der Aktivitätstoken

d) Art der Zuteilung der geforderten Betriebsmittel

Es gibt:

1) Prozeduren

2) Coroutinen (Fibers)

3) Threads („Leichtgewichtprozesse“)

4) Prozesse

  Anzahl der (quasi-)gleichzeitig ablaufenden Aktivitäten Verteilung der Aktivitätstoken Übergabeprotokoll der Aktivitätstoken  Art der Zuteilung der geforderten Betriebsmittel
Prozeduren Es existiert für alle Prozeduren nur ein Aktivitätstoken Es gibt nur ein Aktivitätstoken, daher erfolgt keine Verteilung.

„Call-Return“ als Übergabeprotokoll

Rückkehr erfolgt stets an den Aufrufpunkt.

Es gibt beliebig viele Austrittspunkte.

Rekursion ist möglich.

Alle Betriebsmittel werden gemeinsam genutzt.

(z.B. Adressraum)

Es existieren lokale Variablen exklusiv in der aktiven Prozedur.

Coroutinen (Fibers) Es existiert für alle Coroutinen nur ein Aktivitätstoken Es gibt nur ein Aktivitätstoken, daher erfolgt keine Verteilung.

Aktivitätstoken wird durch „transfer“-Funktion übergeben.

Wiederholung durch erneuten „transfer“-Ruf.

Fortsetzung der Abarbeitung an Absprungstelle. Zustand wird

abgespeichert.

Coroutinen können Prozeduren enthalten.

Alle Betriebsmittel werden gemeinsam genutzt.

Alle erhaltenen Betriebsmittel sind exklusiv.

Jede Coroutine muss ihr

Aktivitätstoken freiwillig abgeben.

-->hohe Absturzgefahr

Threads („Leichtgewichtsprozesse“) Für jeden Thread gibt es ein Aktivitätstoken. Jeder Thread besitzt ein eigenes Aktivitätstoken. Es erfolgt keine Übergabe, da jeder Thread ein eigenes hat.

Benutzen alle Betriebsmittel des Aktivitätscontainers

gemeinsam. (Außer Prozessor)

 

Prozesse Für jeden Prozess (Mainthread) gibt es ein Aktivitätstoken. Jeder Prozess (Mainthread) besitzt ein eigenes

Es erfolgt keine Übergabe, da jeder Prozess (Mainthread) ein eigenes hat.

 

Jeder Prozess benutzt seine Betriebsmittel exklusiv.

Prozesse konkurrieren um Betriebsmittel.

Betriebsmittelzuteilung erfolgt durch Betriebssystem.

Jeder Prozess besitzt eine Menge zugeteilter Betriebsmittel.

Prozesse besitzen ein Datensegment mit lokalen Variablen.

zu Prozessen:

Alte Sicht: Prozesse sind Aktivitäten.

Neue Sicht: Prozesse sind Container für Threads.

Adressraum:

        abstrakter Begriff: virtueller Adressbereich

        entspricht dem theoretisch maximal möglichen Arbeitsspeicher

        wird vom Betriebssystem für jeden Prozess erzeugt

        Betriebssystem „gaukelt“ jedem Prozess dessen Existenz und alleinigen Besitz vor, egal wie groß der physischer Speicher tatsächlich ist.

Enger Zusammenhang zwischen Threads und Prozessen.

        Threads existieren in Threadcontainern, den Prozessen.

        Jeder Prozess hat Mainthread – der wird beim Start ausgeführt.

        Bei Prozessen führen getrennte Adressräume zu langsamer Kommunikation.

        Threads nutzen denselben Adressraum und dasselbe Datensegment, das führt zu schneller Kommunikation.

        Jeder Thread hat eigenen Identifikator und Speicher für Zustand (TLS).

formale Prozessdefinition: Sequentielle Prozesse sind Quintupel (5-Tupel) mit

Prozesszustandsmodell

„nicht existent“: kein 5-Tupel ist definiert

„bereit“: besitzt alle angeforderten Betriebsmittel außer Prozessor

„aktiv“: besitzt mindestens alle angeforderten Betriebsmittel

„wartend“: besitzt weniger als die angeforderten Betriebsmittel

a) Prozess wird abgebrochen

b) Prozess wird gestartet

c) Context Switch: PUM hat auf einen anderen Prozess umgeschaltet

d) Context Switch: PUM schaltet auf unseren Prozess um

e) Prozess beendet sich selbst oder wird beendet

f) Prozess fordert nicht gleich zur Verfügung stehendes Betriebsmittel an

g) Alle Betriebsmittel, die angefordert wurden, stehen zur Verfügung (außer Prozessor)

h) Prozess wird abgebrochen