Stand: 18. September 2014

Inhaltsverzeichnis

über dieses Dokument
was es hierin gibt
wo man die neuste Version bekommt
wie man den Verfasser kontaktiert
welche gesetzlichen Einschränkungen es gibt
Lizenzlosigkeit
Verfasserschutz
Vorbehalt für zusätzliche Einschränkungen für zukünftige Versionen

allgemeine Informationen über die Funktionen von einem Betriebssystem
Haufen
Zweck
Anforderungen an den Nutzer
Kommunikation mit der Schnittstelle zum Betriebssystem
Allgemeines
Übersicht
Ablauf
Übergabe von der Arbeitsanweisung
Abarbeitung von der Arbeitsanweisung
Übergabe von der Rückmeldung
Funktionsaufruf mit einem blockierendem Funktionsdurchlauf
Funktionsaufruf mit einem kurzem Funktionsdurchlauf; Benachrichtigung mit einer Ereignismeldung
Funktionsaufruf mit einem kurzem Funktionsdurchlauf; Benachrichtigung mit einer Rückkehrroutine
grafische Darstellung
Funktionsaufruf mit einem blockierendem Funktionsdurchlauf
Funktionsaufruf mit einem kurzem Funktionsdurchlauf; Benachrichtigung mit einer Ereignismeldung
Funktionsaufruf mit einem kurzem Funktionsdurchlauf; Benachrichtigung mit einer Rückkehrroutine

weiteres Material zu diesem Thema
Dokumente
über Funktionen von einem Betriebssystem
über Lade-Programme
Aufnahme von weiteren Materialien


über dieses Dokument

was es hierin gibt

In diesem Dokument sind
Im Kapitel "weiteres Material zu diesem Thema - Dokumente" sind Dokumente aufgelistet, welche die Besonderheiten und Details von ausgewählten spezifischen Betriebssystemen enthalten.

wo man die neuste Version bekommt

Derzeit nutze ich OnTheServer.de/Downloads/ um neue Versionen zugänglich zu machen. Sie müsste irgendwo dort in den Unterverzeichnissen sein; das kann sich hin und wieder ein bischen ändern.

Dort gibt es vielleicht auch dieses Dokument in anderen Sprachen.

Die Versions-Angabe von diesem Dokument steht oben rechts ("Stand: ...").

wie man den Verfasser kontaktiert

Der Verfasser von diesem Dokument kann mit der Hilfe von einer elektronischen Nachricht kontaktiert werden. Das hierfür eingerichtete Postfach ist mit der Hilfe von der folgenden Adresse erreichbar:
Kontakt@On(entferne mich)TheServer.de

welche gesetzlichen Einschränkungen es gibt

Lizenzlosigkeit

Dieses Dokument
  • ist an keine Lizenz gebunden.
  • unterliegt nicht den Einschränkungen durch das Urhebergesetz.
  • soll allgemeinfrei (public domain) behandelt werden. Also so, als wenn es sich um ein Eigentum von der Allgemeinheit handelt.

Im Übrigen soll alles, was man auf OnTheServer.de und den Subdomains öffentlich zugänglich findet, entsprechend behandelt werden.

Es gibt auf OnTheServer.de allerdings eine Ausnahme:
Ich lege gelegentlich im Verzeichnis "OnTheServer.de/temp/" urheberrechtlich geschütztes Material ab.

Es ist nicht gestattet, auf irreführendeweise vorzutäuschen, dass das (ursprüngliche) Dokument an eine Lizenz gebunden wäre.

Verfasserschutz

Es ist nicht gestattet, auf irreführendeweise vorzutäuschen, dass man der (ursprüngliche) Verfasser vom Dokument wäre. Der (ursprüngliche) Verfasser muss jedoch nicht namentlich genannt werden.

Vorbehalt für zusätzliche Einschränkungen für zukünftige Versionen

Ich (der ursprüngliche Verfasser) behalte die Möglichkeit, Einschränkungen für
  • die Veränderung oder/und
  • die Verbreitung
aufzuerlegen. Von den Einschränkungen wären lediglich neue Versionen betroffen. Was bisher veröffentlicht wurde, erhält keine weiteren Einschränkungen.

Von diesem Recht werde ich hoffentlich nie gebrauch machen müssen.


allgemeine Informationen über die Funktionen von einem Betriebssystem

Haufen

Zweck

Bei manchen
  • Anwendungen und
  • Bibliotheken
ändert sich während der Laufzeit die Menge an Arbeitsspeicher, welche benötigt wird, nennenswert. Damit aber zu jeder Zeit nicht mehr Arbeitsspeicher in Anspruch genommen werden muss, als benötigt wird, kann ein Haufen verwendet werden.

Ein Haufen (im Englischen: "heap") ist ein Konzept, mit welchem die in Anspruch genommene Menge an Arbeitsspeicher während der Laufzeit geändert werden kann.

Anforderungen an den Nutzer

Damit
  • eine Anwendung oder
  • eine Bibliothek
einen Haufen verwenden kann, muss sie gewisse Speicherverwaltungsroutinen beinhalten. Der Nutzer muss dem Betriebssystem mitteilen können, dass er nun
  • mehr Speicher benötigt, als er eben noch benötigt hat oder/und
  • weniger Speicher benötigt, als er eben noch benötigt hat.

Auf diese Weise kann der beanspruchte Arbeitsspeicher während der Laufzeit vom Programm mit dem Bedarf
  • mitwachsen oder/und
  • mitschrumpfen.

Da die Details von diesem Konzept Betriebssystem-spezifisch umgesetzt sind, verfügen Betriebssystem-unspezifische Anwendungen meistens über eine Speicherverwaltung, welche
  • dem eigenen Code gegenüber eine Betriebssystem-unspezifische Schnittstelle bieten und
  • dem Code vom Betriebssystem gegenüber eine für das Betriebssystem spezifische Schnittstelle bieten.

    Diese Schnittstelle wird bei der Kompilierung ausgewählt und eingefügt.

Unterstützung

Das Konzept wird vom Betriebssystem hauptsächlich softwaremäßig unterstützt. Die x86-Architektur bietet, abgesehen von der Verwendung von RAM-Seiten, keine hardwaremäßige Unterstützung für dieses Konzept.

Da die Details von diesem Konzept Betriebssystem-spezifisch sind, ist auch die Unterstützung Betriebssystem-spezifisch. Im Kapitel "weiteres Material zu diesem Thema - Dokumente" sind Dokumente aufgelistet, in welchen die Details für spezifische Betriebssysteme beschrieben sind.

Kommunikation mit der Schnittstelle zum Betriebssystem

Allgemeines

Es gibt mehrere Konzepte, mit deren Hilfe
  • eine Anwendung oder
  • eine Bibliothek
mit der Schnittstelle zum Betriebssystem kommunizieren kann, sodass die Funktionen benutzt werden können. Einige Betriebssysteme unterstützten mehrere Konzepte.

Die vorgestellten Konzepte beziehen sich lediglich auf die Komunikation zwischen
    • einer Anwendung oder
    • einer Bibliothek
    und
  • der Schnittstelle zum Betriebssystem.

In dieser Dokumentation sind nicht alle von diesen Konzepten beschrieben.

Übersicht

Geschwindigkeit: Kurzbeschreibung: Komplexität: Parallelität:
    • die Anwendung oder
    • die Bibliothek
    und
  • die Schnittstelle zum Betriebssystem
hoch Funktionsaufruf mit einem blockierendem Funktionsdurchlauf gering wechseln sich ab
mittel Funktionsaufruf mit einem kurzem Funktionsdurchlauf
Benachrichtigung mit einer Ereignismeldung
mittel laufen parallel
mittel Funktionsaufruf mit einem kurzem Funktionsdurchlauf
Benachrichtigung mit einer Rückkehrroutine
mittel laufen parallel

Ablauf

Übergabe von der Arbeitsanweisung

Beispielsweise gibt
  • die Anwendung oder
  • die Bibliothek
der Schnittstelle zum Betriebssystem eine Daten-Sende-Anweisung, um Daten über ein Netzwerk rauszuschicken.

Beschreibung: Bezeichnung:
Um die Arbeitsanweisung abzugeben, ruft
  • die Anwendung oder
  • die Bibliothek
mit der Hilfe von
  • einem "call"-Befehl oder
  • einer Verarbeitungsunterbrechung
die relevante Funktion von der Schnittstelle zum Betriebssystem auf. Hierdurch wird eine Adresse in das Befehlszeigerregister kopiert, welche auf Maschinencode von der Schnittstelle zum Betriebssystem zeigt.

Durch den Funktionsaufruf übergibt
  • die Anwendung oder
  • die Bibliothek
also die Kontrolle über den CPU an die Schnittstelle zum Betriebssystem, da von dann an
  • nicht mehr der Maschinencode von
    • der Anwendung oder
    • der Bibliothek
    ausgeführt wird,
  • sondern der Maschinencode von der Funktion von der Schnittstelle zum Betriebssystem.

Wenn
  • für den Funktionsaufruf ein "call"-Befehl verwendet wird,
dann
  • wird der Maschinencode von der Schnittstelle zum Betriebssystem wird mit der Hilfe von dem selben "thread" ausgeführt, wie auch für den Maschinencode von
    • der Anwendung oder
    • der Bibliothek
    benutzt wird. Dieser Maschinencode befindet sich auch im selben Segment wie sich der Maschinencode von
    • der Anwendung oder
    • der Bibliothek
    befindet.
Ansonsten
  • ist es wahrscheinlich, dass sich der Maschinencode von der Schnittstelle zum Betriebssystem in einem anderen Segment befindet.

Das Konzept verwendet einen sogenannten "blockierenden Funktionsdurchlauf" um die Arbeitsanweisung an das Betriebssystem zu übergeben.

Dies Bedeutet, dass durch den Funktionsaufruf die Maschinencode-Verarbeitung von
  • der Anwendung oder
  • der Bibliothek
unterbrochen wird, bis die Funktion von der Schnittstelle zum Betriebssystem die Arbeitsanweisung entgegen genommen hat.

Wenn
  • die Funktion durchlaufen ist,
dann
  • springt sie zum Abschluss zurück.

Durch den Rücksprung wird also die Kontrolle über den CPU wieder an
  • die Anwendung oder
  • die Bibliothek
zurückgegeben, da von dann an
  • nicht mehr der Maschinencode von der Schnittstelle zum Betriebssystem ausgeführt wird,
  • sondern der Maschinencode von
    • der Anwendung oder
    • der Bibliothek.
Funktionsaufruf mit einem blockierendem Funktionsdurchlauf
Funktionsaufruf mit einem kurzem Funktionsdurchlauf
Benachrichtigung mit einer Ereignismeldung
Funktionsaufruf mit einem kurzem Funktionsdurchlauf
Benachrichtigung mit einer Rückkehrroutine

Abarbeitung von der Arbeitsanweisung

Beschreibung: Bezeichnung:
Die Funktion von der Schnittstelle zum Betriebssystem, welche die Arbeitsanweisung entgegen nimmt, arbeitet diese Arbeit auch ab.

Die Maschinencode-Verarbeitung von
  • der Anwendung oder
  • der Bibliothek
bleibt derweilst unterbrochen.

Gemäß dem Beispiel muss
  • die Anwendung oder
  • die Bibliothek
also warten, bis die Daten vollständig rausgeschickt wurden.
Funktionsaufruf mit einem blockierendem Funktionsdurchlauf
Die Funktion von der Schnittstelle zum Betriebssystem, welche die Arbeitsanweisung entgegen nimmt, löst die Verarbeitung von der eigentlichen Aufgabe in einem separaten "thread" aus. Diese Verarbeitung läuft von nun an parallel zur Verarbeitung vom Funktionsdurchlauf und nach dem Zurückkehren: parallel
  • zur Anwendung oder
  • zur Bibliothek.

Die Maschinencode-Verarbeitung von
  • der Anwendung oder
  • der Bibliothek
bleibt während dem Funktionsdurchlauf von der Funktion, welche die Arbeitsanweisung entgegen nimmt, unterbrochen.

Gemäß dem Beispiel muss
  • die Anwendung oder
  • die Bibliothek
also nur kurz warten, bis die Arbeitsanweisung entgegen genommen wurde.
Funktionsaufruf mit einem kurzem Funktionsdurchlauf
Benachrichtigung mit einer Ereignismeldung
Funktionsaufruf mit einem kurzem Funktionsdurchlauf
Benachrichtigung mit einer Rückkehrroutine

Nicht jeder Prozessor ist in der Lage mehrere Maschinencodes parallel auszuführen. Bei manchen Prozessoren muss das Betriebssystem immer wieder zwischen
  • der Verarbeitung vom Maschinencode von
    • der Anwendung oder
    • der Bibliothek
    und
  • der Verarbeitung vom Maschinencode vom Hintergrund-"thread"
wechseln.

Übergabe von der Rückmeldung

Funktionsaufruf mit einem blockierendem Funktionsdurchlauf
Wenn
  • die Funktion zurückkehrt,
dann
  • benutzt sie Rückgabe-Parameter um die Rückmeldung zu übergeben.

Diese Rückgabe-Parameter werden mit der Hilfe
  • von Registern oder
  • vom Stapel
übergeben.

Funktionsaufruf mit einem kurzem Funktionsdurchlauf; Benachrichtigung mit einer Ereignismeldung
Wenn
  • die Funktion, welche die Arbeitsanweisung entgegen genommen hat, zurückkehrt,
dann
  • benutzt sie Rückgabe-Parameter um eine vorläufige Rückmeldung zu übergeben.

Diese Rückgabe-Parameter werden mit der Hilfe
  • von Registern oder
  • vom Stapel
übergeben.

Die vorläufige Rückmeldung ist meistens lediglich eine Bestätigung, dass die Arbeitsanweisung entgegen genommen werden konnte.

Wenn
  • der separate "thread" vom Betriebssystem seine Arbeit abgeschlossen hat,
dann
  • reiht er eine Ereignismeldung in das Postfach für Ereignismeldungen vom "thread" von
    • der Anwendung oder
    • der Bibliothek
    ein.

Der "thread" von
  • der Anwendung oder
  • der Bibliothek
bleibt solange mit der Ausführung von seinem Maschinencode beschäftigt, bis
  • die Anwendung oder
  • die Bibliothek
ihr Postfach prüft. Hierfür kann
  • die Anwendung oder
  • die Bibliothek
wahlweise
  • anfragen, ob eine bestimmte Ereignismeldung vorhanden ist,
  • sich eine bestimmte Ereignismeldung in ihren Arbeitsspeicher übertragen lassen, oder/und
  • sich eine unbestimmte Ereignismeldung in ihren Arbeitsspeicher übertragen lassen.

Meistens stellt das Betriebssystem
  • sowohl blockierende,
  • als auch nicht blockierende
Funktionen zur Verfügung, damit
  • die Anwendung oder
  • die Bibliothek
den Fall wunschgemäß handhaben kann, in welchem keine Ereignismeldung vorhanden ist. In diesem Fall
  • warten die blockierenden Funktionen bis die angeforderte Ereignismeldung eingetroffen ist und
  • kehren die nicht blockierenden Funktionen ohne zu warten zurück und geben bekannt, dass keine Ereignismeldung im Postfach vorhanden ist, welche der Anforderung entspricht.

Das Postfach befindet sich meistens nicht im Arbeitsspeicher von
  • der Anwendung oder
  • der Bibliothek,
um zu verhindern, dass 2 separate "threads" parallel den Inhalt ändern und sich dabei gegenseitig stören.

Funktionsaufruf mit einem kurzem Funktionsdurchlauf; Benachrichtigung mit einer Rückkehrroutine
Wenn
  • die Funktion, welche die Arbeitsanweisung entgegen genommen hat, zurückkehrt,
dann
  • benutzt sie Rückgabe-Parameter um eine vorläufige Rückmeldung zu übergeben.

Diese Rückgabe-Parameter werden mit der Hilfe
  • von Registern oder
  • vom Stapel
übergeben.

Die vorläufige Rückmeldung ist meistens lediglich eine Bestätigung, dass die Arbeitsanweisung entgegen genommen werden konnte.

Wenn
  • der separate "thread" vom Betriebssystem seine Arbeit abgeschlossen hat,
dann
  • reiht er den Aufruf von einer Rückkehrroutine in die Warteschlange für Rückkehrroutinen vom "thread" von
    • der Anwendung oder
    • der Bibliothek
    ein.

Der "thread" von
  • der Anwendung oder
  • der Bibliothek
bleibt solange mit der Ausführung von seinem Maschinencode beschäftigt, bis
  • die Anwendung oder
  • die Bibliothek
den sogenannten "Wartezustand" betritt. Wenn
    • die Anwendung oder
    • die Bibliothek
    versucht, den Wartezustand zu betreten, und
    • eine Rückkehrroutine in der Warteschlange von ihrem "thread" ist,
    dann
    • betritt sie nicht diesen Wartezustand, sondern fängt an, die Rückkehrroutine auszuführen.
    Ansonsten
    • ist das Betreten erfolgreich und
      • die Anwendung oder
      • die Bibliothek
      fängt an zu warten.

Wenn
    • die Anwendung oder
    • die Bibliothek
    aus der Rückkehrroutine zurückspringt,
dann
  • wird der Maschinenbefehl ausgeführt, welcher nach dem Funktionsaufruf steht, mit welchem der Wartezustand betreten
    • werden sollte oder
    • wurde.

    Die Aussage über das Rücksprungziel von der Rückkehrroutine ist allerdings nur eine Vermutung von mir.

grafische Darstellung

Funktionsaufruf mit einem blockierendem Funktionsdurchlauf
╔═════════╦════════════════════════════════════════════════════════════╦══════════════════════════════╗
 Zeit: ↓ ║   Anwendung und von der Schnittstelle zum Betriebssystem   ║   "thread" von der ...: ←    
         ╠═════════════════════════╦══════════════════════════════════╬══════════════════════════════
         ║        Anwendung        ║ Schnittstelle zum Betriebssystem ║ Maschinencode von der ...: ← 
╠═════════╬═════════════════════════╬══════════════════════════════════╬══════════════════════════════╝
║    ╷    ║ ┌─────────────────────┐ ║                                  ║
║    │    ║ │      gibt eine      │ ║                                  ║
║    │    ║ │   Vorbereitungs-    │ ║                                  ║
║    │    ║ │      Anweisung      │ ║                                  ║
║    │    ║ └─────────────────────┴─╫►┬──────────────────────────────┐ ║
║    │    ║                         ║ │          nimmt die           │ ║
║    │    ║                         ║ │   Vorbereitungs-Anweisung    │ ║
║    │    ║                         ║ │           entgegen           │ ║
║    │    ║                         ║ ├──────────────────────────────┤ ║
║    │    ║                         ║ │bereitet alles notwendige vor │ ║
║    │    ║                         ║ ├──────────────────────────────┤ ║
║    │    ║                         ║ │    gibt eine Rückmeldung     │ ║
║    │    ║ ┌─────────────────────┬◄╫─┴──────────────────────────────┘ ║
║    │    ║ │nimmt die Rückmeldung│ ║                                  ║
║    │    ║ │      entgegen       │ ║                                  ║
║    │    ║ ├─────────────────────┤ ║                                  ║
║    │    ║ │  gibt eine Daten-   │ ║                                  ║
║    │    ║ │   Sende-Anweisung   │ ║                                  ║
║    │    ║ └─────────────────────┴─╫►┬──────────────────────────────┐ ║
║    │    ║                         ║ │          nimmt die           │ ║
║    │    ║                         ║ │Daten-Sende-Anweisung entgegen│ ║
║    │    ║                         ║ ├──────────────────────────────┤ ║
║    │    ║                         ║ │ sendet die vielen Daten raus │ ║
║    │    ║                         ║ │              ...             │ ║
║    │    ║                         ║ │                              │ ║
║    │    ║                         ║ │                              │ ║
║    │    ║                         ║ │                              │ ║
║    │    ║                         ║ │                              │ ║
║    │    ║                         ║ ├──────────────────────────────┤ ║
║    │    ║                         ║ │    gibt eine Rückmeldung     │ ║
║    │    ║ ┌─────────────────────┬◄╫─┴──────────────────────────────┘ ║
║    │    ║ │nimmt die Rückmeldung│ ║                                  ║
║    │    ║ │      entgegen       │ ║                                  ║
║    │    ║ ├─────────────────────┤ ║                                  ║
║    │    ║ │     führt eine      │ ║                                  ║
║    │    ║ │ Verarbeitung durch  │ ║                                  ║
║    │    ║ ├─────────────────────┤ ║                                  ║
║    │    ║ │      gibt eine      │ ║                                  ║
║    │    ║ │   Nachbereitungs-   │ ║                                  ║
║    │    ║ │      Anweisung      │ ║                                  ║
║    │    ║ └─────────────────────┴─╫►┬──────────────────────────────┐ ║
║    │    ║                         ║ │          nimmt die           │ ║
║    │    ║                         ║ │   Nachbereitungs-Anweisung   │ ║
║    │    ║                         ║ │           entgegen           │ ║
║    │    ║                         ║ ├──────────────────────────────┤ ║
║    │    ║                         ║ │bereitet alles notwendige nach│ ║
║    │    ║                         ║ ├──────────────────────────────┤ ║
║    │    ║                         ║ │    gibt eine Rückmeldung     │ ║
║    │    ║ ┌─────────────────────┬◄╫─┴──────────────────────────────┘ ║
║    │    ║ │nimmt die Rückmeldung│ ║                                  ║
║    │    ║ │      entgegen       │ ║                                  ║
║    ▼    ║ └─────────────────────┘ ║                                  ║
╚═════════╩═════════════════════════╩══════════════════════════════════╝

Funktionsaufruf mit einem kurzem Funktionsdurchlauf; Benachrichtigung mit einer Ereignismeldung
╔═════════╦════════════════════════════════════════════════════════════════╦════════════════════╦══════════════════════════╗
 Zeit: ↓ ║   der Anwendung und von der Schnittstelle zum Betriebssystem   ║ dem Betriebssystem ║   "thread" von ...: ←    
         ╠═════════════════════════╦══════════════════════════════════════╬════════════════════╬══════════════════════════
         ║      der Anwendung      ║ der Schnittstelle zum Betriebssystem ║ dem Betriebssystem ║ Maschinencode von ...: ← 
╠═════════╬═════════════════════════╬══════════════════════════════════════╬════════════════════╬══════════════════════════╝
║    ╷    ║ ┌─────────────────────┐ ║                                      ║                    ║
║    │    ║ │      gibt eine      │ ║                                      ║                    ║
║    │    ║ │   Vorbereitungs-    │ ║                                      ║                    ║
║    │    ║ │      Anweisung      │ ║                                      ║                    ║
║    │    ║ └─────────────────────┴─╫►┬──────────────────────────────────┐ ║                    ║
║    │    ║                         ║ │            nimmt die             │ ║                    ║
║    │    ║                         ║ │ Vorbereitungs-Anweisung entgegen │ ║                    ║
║    │    ║                         ║ ├──────────────────────────────────┤ ║                    ║
║    │    ║                         ║ │  bereitet alles notwendige vor   │ ║                    ║
║    │    ║                         ║ ├──────────────────────────────────┼─╫►┬────────────────┐ ║
║    │    ║                         ║ │      gibt eine Rückmeldung       │ ║ │ wartet untätig │ ║
║    │    ║ ┌─────────────────────┬◄╫─┴──────────────────────────────────┘ ║ │   auf Arbeit   │ ║
║    │    ║ │nimmt die Rückmeldung│ ║                                      ║ │      ...       │ ║
║    │    ║ │      entgegen       │ ║                                      ║ │                │ ║
║    │    ║ ├─────────────────────┤ ║                                      ║ │                │ ║
║    │    ║ │  gibt eine Daten-   │ ║                                      ║ │                │ ║
║    │    ║ │   Sende-Anweisung   │ ║                                      ║ │                │ ║
║    │    ║ └─────────────────────┴─╫►┬──────────────────────────────────┐ ║ │                │ ║
║    │    ║                         ║ │            nimmt die             │ ║ │                │ ║
║    │    ║                         ║ │  Daten-Sende-Anweisung entgegen  │ ║ │                │ ║
║    │    ║                         ║ ├──────────────────────────────────┤ ║ │                │ ║
║    │    ║                         ║ │ löst den Daten-Sende-Vorgang aus │ ║ │                │ ║
║    │    ║                         ║ ├──────────────────────────────────┼─╫►┼────────────────┤ ║
║    │    ║                         ║ │      gibt eine Rückmeldung       │ ║ │   sendet die   │ ║
║    │    ║ ┌─────────────────────┬◄╫─┴──────────────────────────────────┘ ║ │ wenigen Daten  │ ║
║    │    ║ │nimmt die Rückmeldung│ ║                                      ║ │      raus      │ ║
║    │    ║ │      entgegen       │ ║                                      ║ ├────────────────┤ ║
║    │    ║ ├─────────────────────┤ ║                                      ║ │   reiht eine   │ ║
║    │    ║ │     führt eine      │ ║                                      ║ │Ereignismeldung │ ║
║    │    ║ │ Verarbeitung durch  │ ║                                      ║ │ins Postfach vom│ ║
║    │    ║ │         ...         │ ║                                      ║ │"thread" von der│ ║
║    │    ║ │                     │ ║                                      ║ │ Anwendung und  │ ║
║    │    ║ │                     │ ║                                      ║ │  der Schnitt-  │ ║
║    │    ║ │                     │ ║                                      ║ │   stelle ein   │ ║
║    │    ║ │                     │ ║                                      ║┌┼────────────────┤ ║
║    │    ║ │                     │ ║                                      ║││ wartet untätig │ ║
║    │    ║ ├─────────────────────┤ ║                                      ║││   auf Arbeit   │ ║
║    │    ║ │    fordert eine     │ ║                                      ║││      ...       │ ║
║    │    ║ │ Ereignismeldung an  │ ║                                      ║││                │ ║
║    │    ║ └─────────────────────┴─╫►┬──────────────────────────────────┐ ║││                │ ║
║    │    ║                         ║ │   nimmt die Anweisung entgegen   │ ║││                │ ║
║    │    ║                         ║ ├──────────────────────────────────┼◄╫┘│                │ ║
║    │    ║                         ║ │      gibt eine Rückmeldung       │ ║ │                │ ║
║    │    ║ ┌─────────────────────┬◄╫─┴──────────────────────────────────┘ ║ │                │ ║
║    │    ║ │nimmt die Rückmeldung│ ║                                      ║ │                │ ║
║    │    ║ │      entgegen       │ ║                                      ║ │                │ ║
║    │    ║ ├─────────────────────┤ ║                                      ║ │                │ ║
║    │    ║ │  gibt eine weitere  │ ║                                      ║ │                │ ║
║    │    ║ │Daten-Sende-Anweisung│ ║                                      ║ │                │ ║
║    │    ║ └─────────────────────┴─╫►┬──────────────────────────────────┐ ║ │                │ ║
║    │    ║                         ║ │            nimmt die             │ ║ │                │ ║
║    │    ║                         ║ │  Daten-Sende-Anweisung entgegen  │ ║ │                │ ║
║    │    ║                         ║ ├──────────────────────────────────┤ ║ │                │ ║
║    │    ║                         ║ │ löst den Daten-Sende-Vorgang aus │ ║ │                │ ║
║    │    ║                         ║ ├──────────────────────────────────┼─╫►┼────────────────┤ ║
║    │    ║                         ║ │      gibt eine Rückmeldung       │ ║ │   sendet die   │ ║
║    │    ║ ┌─────────────────────┬◄╫─┴──────────────────────────────────┘ ║ │  vielen Daten  │ ║
║    │    ║ │nimmt die Rückmeldung│ ║                                      ║ │      raus      │ ║
║    │    ║ │      entgegen       │ ║                                      ║ │      ...       │ ║
║    │    ║ ├─────────────────────┤ ║                                      ║ │                │ ║
║    │    ║ │    fordert eine     │ ║                                      ║ │                │ ║
║    │    ║ │ Ereignismeldung an  │ ║                                      ║ │                │ ║
║    │    ║ └─────────────────────┴─╫►┬──────────────────────────────────┐ ║ │                │ ║
║    │    ║                         ║ │   nimmt die Anweisung entgegen   │ ║ │                │ ║
║    │    ║                         ║ ├──────────────────────────────────┤ ║ │                │ ║
║    │    ║                         ║ │ wartet auf eine Ereignismeldung  │ ║ │                │ ║
║    │    ║                         ║ │               ...                │ ║ ├────────────────┤ ║
║    │    ║                         ║ │                                  │ ║ │   reiht eine   │ ║
║    │    ║                         ║ │                                  │ ║ │Ereignismeldung │ ║
║    │    ║                         ║ │                                  │ ║ │ins Postfach vom│ ║
║    │    ║                         ║ │                                  │ ║ │"thread" von der│ ║
║    │    ║                         ║ │                                  │ ║ │ Anwendung und  │ ║
║    │    ║                         ║ │                                  │ ║ │  der Schnitt-  │ ║
║    │    ║                         ║ │                                  │ ║ │   stelle ein   │ ║
║    │    ║                         ║ ├──────────────────────────────────┼◄╫─┼────────────────┤ ║
║    │    ║                         ║ │      gibt eine Rückmeldung       │ ║ │ wartet untätig │ ║
║    │    ║ ┌─────────────────────┬◄╫─┴──────────────────────────────────┘ ║ │   auf Arbeit   │ ║
║    │    ║ │nimmt die Rückmeldung│ ║                                      ║ │      ...       │ ║
║    │    ║ │      entgegen       │ ║                                      ║ │                │ ║
║    │    ║ ├─────────────────────┤ ║                                      ║ │                │ ║
║    │    ║ │      gibt eine      │ ║                                      ║ │                │ ║
║    │    ║ │   Nachbereitungs-   │ ║                                      ║ │                │ ║
║    │    ║ │      Anweisung      │ ║                                      ║ │                │ ║
║    │    ║ └─────────────────────┴─╫►┬──────────────────────────────────┐ ║ │                │ ║
║    │    ║                         ║ │            nimmt die             │ ║ │                │ ║
║    │    ║                         ║ │Nachbereitungs-Anweisung entgegen │ ║ │                │ ║
║    │    ║                         ║ ├──────────────────────────────────┤ ║ │                │ ║
║    │    ║                         ║ │  bereitet alles notwendige nach  │ ║ │                │ ║
║    │    ║                         ║ ├──────────────────────────────────┼─╫►┴────────────────┘ ║
║    │    ║                         ║ │      gibt eine Rückmeldung       │ ║                    ║
║    │    ║ ┌─────────────────────┬◄╫─┴──────────────────────────────────┘ ║                    ║
║    │    ║ │nimmt die Rückmeldung│ ║                                      ║                    ║
║    │    ║ │      entgegen       │ ║                                      ║                    ║
║    ▼    ║ └─────────────────────┘ ║                                      ║                    ║
╚═════════╩═════════════════════════╩══════════════════════════════════════╩════════════════════╝

Funktionsaufruf mit einem kurzem Funktionsdurchlauf; Benachrichtigung mit einer Rückkehrroutine
╔═════════╦══════════════════════════════════════════════════════════════════════════════════════════╦════════════════════╦══════════════════════════╗
 Zeit: ↓ ║                der Anwendung und von der Schnittstelle zum Betriebssystem                ║ dem Betriebssystem ║   "thread" von ...: ←    
         ╠═══════════════════════════════════════════════════╦══════════════════════════════════════╬════════════════════╬══════════════════════════
         ║                   der Anwendung                   ║ der Schnittstelle zum Betriebssystem ║ dem Betriebssystem ║ Maschinencode von ...: ← 
╠═════════╬═══════════════════════════════════════════════════╬══════════════════════════════════════╬════════════════════╬══════════════════════════╝
║    ╷    ║ ┌─────────────────────┐                           ║                                      ║                    ║
║    │    ║ │      gibt eine      │                           ║                                      ║                    ║
║    │    ║ │   Vorbereitungs-    │                           ║                                      ║                    ║
║    │    ║ │      Anweisung      │                           ║                                      ║                    ║
║    │    ║ └─────────────────────┴───────────────────────────╫►┬──────────────────────────────────┐ ║                    ║
║    │    ║                                                   ║ │            nimmt die             │ ║                    ║
║    │    ║                                                   ║ │ Vorbereitungs-Anweisung entgegen │ ║                    ║
║    │    ║                                                   ║ ├──────────────────────────────────┤ ║                    ║
║    │    ║                                                   ║ │  bereitet alles notwendige vor   │ ║                    ║
║    │    ║                                                   ║ ├──────────────────────────────────┼─╫►┬────────────────┐ ║
║    │    ║                                                   ║ │      gibt eine Rückmeldung       │ ║ │ wartet untätig │ ║
║    │    ║ ┌─────────────────────┬◄──────────────────────────╫─┴──────────────────────────────────┘ ║ │   auf Arbeit   │ ║
║    │    ║ │nimmt die Rückmeldung│                           ║                                      ║ │      ...       │ ║
║    │    ║ │      entgegen       │                           ║                                      ║ │                │ ║
║    │    ║ ├─────────────────────┤                           ║                                      ║ │                │ ║
║    │    ║ │  gibt eine Daten-   │                           ║                                      ║ │                │ ║
║    │    ║ │   Sende-Anweisung   │                           ║                                      ║ │                │ ║
║    │    ║ └─────────────────────┴───────────────────────────╫►┬──────────────────────────────────┐ ║ │                │ ║
║    │    ║                                                   ║ │            nimmt die             │ ║ │                │ ║
║    │    ║                                                   ║ │  Daten-Sende-Anweisung entgegen  │ ║ │                │ ║
║    │    ║                                                   ║ ├──────────────────────────────────┤ ║ │                │ ║
║    │    ║                                                   ║ │ löst den Daten-Sende-Vorgang aus │ ║ │                │ ║
║    │    ║                                                   ║ ├──────────────────────────────────┼─╫►┼────────────────┤ ║
║    │    ║                                                   ║ │      gibt eine Rückmeldung       │ ║ │   sendet die   │ ║
║    │    ║ ┌─────────────────────┬◄──────────────────────────╫─┴──────────────────────────────────┘ ║ │ wenigen Daten  │ ║
║    │    ║ │nimmt die Rückmeldung│                           ║                                      ║ │      raus      │ ║
║    │    ║ │      entgegen       │                           ║                                      ║┌┼────────────────┤ ║
║    │    ║ ├─────────────────────┤                           ║                                      ║││ wartet untätig │ ║
║    │    ║ │     führt eine      │                           ║                                      ║││   auf Arbeit   │ ║
║    │    ║ │ Verarbeitung durch  │                           ║                                      ║││      ...       │ ║
║    │    ║ ├─────────────────────┤                           ║                                      ║││                │ ║
║    │    ║ │     betritt den     │                           ║                                      ║││                │ ║
║    │    ║ │    Wartezustand     │                           ║                                      ║││                │ ║
║    │    ║ └─────────────────────┘   ┌─────────────────────┬◄╫──────────────────────────────────────╫┘│                │ ║
║    │    ║                           │führt eine Rückkehr- │ ║                                      ║ │                │ ║
║    │    ║                           │     routine aus     │ ║                                      ║ │                │ ║
║    │    ║ ┌─────────────────────┬◄──┴─────────────────────┘ ║                                      ║ │                │ ║
║    │    ║ │  gibt eine weitere  │                           ║                                      ║ │                │ ║
║    │    ║ │Daten-Sende-Anweisung│                           ║                                      ║ │                │ ║
║    │    ║ └─────────────────────┴───────────────────────────╫►┬──────────────────────────────────┐ ║ │                │ ║
║    │    ║                                                   ║ │            nimmt die             │ ║ │                │ ║
║    │    ║                                                   ║ │  Daten-Sende-Anweisung entgegen  │ ║ │                │ ║
║    │    ║                                                   ║ ├──────────────────────────────────┤ ║ │                │ ║
║    │    ║                                                   ║ │ löst den Daten-Sende-Vorgang aus │ ║ │                │ ║
║    │    ║                                                   ║ ├──────────────────────────────────┼─╫►┼────────────────┤ ║
║    │    ║                                                   ║ │      gibt eine Rückmeldung       │ ║ │   sendet die   │ ║
║    │    ║ ┌─────────────────────┬◄──────────────────────────╫─┴──────────────────────────────────┘ ║ │  vielen Daten  │ ║
║    │    ║ │nimmt die Rückmeldung│                           ║                                      ║ │      raus      │ ║
║    │    ║ │      entgegen       │                           ║                                      ║ │      ...       │ ║
║    │    ║ ├─────────────────────┤                           ║                                      ║ │                │ ║
║    │    ║ │     betritt den     │                           ║                                      ║ │                │ ║
║    │    ║ │    Wartezustand     │                           ║                                      ║ │                │ ║
║    │    ║ ├─────────────────────┤                           ║                                      ║ │                │ ║
║    │    ║ │ ist im Wartezustand │                           ║                                      ║ │                │ ║
║    │    ║ │         ...         │                           ║                                      ║ │                │ ║
║    │    ║ │                     │                           ║                                      ║ │                │ ║
║    │    ║ │                     │                           ║                                      ║ │                │ ║
║    │    ║ └─────────────────────┘   ┌─────────────────────┬◄╫──────────────────────────────────────╫─┼────────────────┤ ║
║    │    ║                           │führt eine Rückkehr- │ ║                                      ║ │ wartet untätig │ ║
║    │    ║                           │     routine aus     │ ║                                      ║ │   auf Arbeit   │ ║
║    │    ║ ┌─────────────────────┬◄──┴─────────────────────┘ ║                                      ║ │      ...       │ ║
║    │    ║ │      gibt eine      │                           ║                                      ║ │                │ ║
║    │    ║ │   Nachbereitungs-   │                           ║                                      ║ │                │ ║
║    │    ║ │      Anweisung      │                           ║                                      ║ │                │ ║
║    │    ║ └─────────────────────┴───────────────────────────╫►┬──────────────────────────────────┐ ║ │                │ ║
║    │    ║                                                   ║ │            nimmt die             │ ║ │                │ ║
║    │    ║                                                   ║ │Nachbereitungs-Anweisung entgegen │ ║ │                │ ║
║    │    ║                                                   ║ ├──────────────────────────────────┤ ║ │                │ ║
║    │    ║                                                   ║ │  bereitet alles notwendige nach  │ ║ │                │ ║
║    │    ║                                                   ║ ├──────────────────────────────────┼─╫►┴────────────────┘ ║
║    │    ║                                                   ║ │      gibt eine Rückmeldung       │ ║                    ║
║    │    ║ ┌─────────────────────┬◄──────────────────────────╫─┴──────────────────────────────────┘ ║                    ║
║    │    ║ │nimmt die Rückmeldung│                           ║                                      ║                    ║
║    │    ║ │      entgegen       │                           ║                                      ║                    ║
║    ▼    ║ └─────────────────────┘                           ║                                      ║                    ║
╚═════════╩═══════════════════════════════════════════════════╩══════════════════════════════════════╩════════════════════╝


weiteres Material zu diesem Thema

Dokumente

über Funktionen von einem Betriebssystem

Name vom Sprache: Umfang vom Inhalt: Weblink:
Autor: Dokument:
Betriebssystem-spezifische - Linux - Funktionen vom Betriebssystem deutsch
  • beschreibt Funktionen von Linux
  • zeigt, wie Funktionen von Linux genutzt werden können
OnTheServer.de/Downloads/
Betriebssystem-spezifische - Windows - Funktionen vom Betriebssystem
  • nennt Bibliotheken von Windows
  • beschreibt Funktionen von den Bibliotheken
  • zeigt, wie Datensätze und Funktionen von den Bibliotheken genutzt werden können

über Lade-Programme

Name vom Sprache: Umfang vom Inhalt: Weblink:
Autor: Dokument:
Betriebssystem-spezifische - Linux - Lade-Programme - für das Dateiformat "executable and linking" ("elf") deutsch
  • zeigt, wie das Lade-Programm angeforderte Funktionen aus Bibliotheken bereit stellt
  • zeigt, mit welchen Inhalten der Arbeitsspeicher von einer Anwendung beim Programmstart gefüllt wird und wo diese in diesem Speicher platziert werden
OnTheServer.de/Downloads/
Betriebssystem-spezifische - Windows - Lade-Programme - für das Dateiformat "portable executable" ("pe")

Aufnahme von weiteren Materialien

Wenn dann
Sie dürfen durchaus auch Ihre eigenen Materialien zuschicken.

Bei den zugesendeten Materialien werde ich beurteilen, ob sie sich für die Auflistung eignen. Manche Materialien werden nicht aufgenommen, weil beispielsweise ein Hinweis enthalten ist, dass Es besteht kein Anspruch darauf, dass zugesendete Materialien aufgenommen werden.

Link zum Kapitel "wie man den Autor kontaktiert".