Stand: 18. September 2014
über dieses Dokumentwas es hierin gibt
wo man die neuste Version bekommt
wie man den Verfasser kontaktiert
welche gesetzlichen Einschränkungen es gibtLizenzlosigkeit
Verfasserschutz
Vorbehalt für zusätzliche Einschränkungen für zukünftige Versionen
allgemeine Informationen über die Funktionen von einem BetriebssystemHaufenZweckKommunikation mit der Schnittstelle zum Betriebssystem
Anforderungen an den NutzerAllgemeines
Übersicht
AblaufÜbergabe von der Arbeitsanweisung
Abarbeitung von der Arbeitsanweisung
Übergabe von der RückmeldungFunktionsaufruf mit einem blockierendem Funktionsdurchlaufgrafische Darstellung
Funktionsaufruf mit einem kurzem Funktionsdurchlauf; Benachrichtigung mit einer Ereignismeldung
Funktionsaufruf mit einem kurzem Funktionsdurchlauf; Benachrichtigung mit einer RückkehrroutineFunktionsaufruf 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 ThemaDokumenteüber Funktionen von einem BetriebssystemAufnahme von weiteren Materialien
über Lade-Programme
was es hierin gibt
In diesem Dokument sind
- allgemeine Informationen über die Funktionen von einem Betriebssystem enthalten, ohne dass dabei auf die Besonderheiten und Details von einem spezifischen Betriebssystem eingegangen wird.
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üraufzuerlegen. Von den Einschränkungen wären lediglich neue Versionen betroffen. Was bisher veröffentlicht wurde, erhält keine weiteren Einschränkungen.
- die Veränderung oder/und
- die Verbreitung
Von diesem Recht werde ich hoffentlich nie gebrauch machen müssen.
Haufen
Zweck
Bei manchenä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.
- Anwendungen und
- Bibliotheken
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
Damiteinen Haufen verwenden kann, muss sie gewisse Speicherverwaltungsroutinen beinhalten. Der Nutzer muss dem Betriebssystem mitteilen können, dass er nun
- eine Anwendung oder
- eine Bibliothek
- 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 Hilfemit der Schnittstelle zum Betriebssystem kommunizieren kann, sodass die Funktionen benutzt werden können. Einige Betriebssysteme unterstützten mehrere Konzepte.
- eine Anwendung oder
- eine Bibliothek
Die vorgestellten Konzepte beziehen sich lediglich auf die Komunikation zwischen
und
- einer Anwendung oder
- einer Bibliothek
- der Schnittstelle zum Betriebssystem.
In dieser Dokumentation sind nicht alle von diesen Konzepten beschrieben.
Übersicht
Geschwindigkeit: Kurzbeschreibung: Komplexität: Parallelität:
und
- die Anwendung oder
- die Bibliothek
- die Schnittstelle zum Betriebssystem
hoch Funktionsaufruf mit einem blockierendem Funktionsdurchlauf gering wechseln sich ab mittel Funktionsaufruf mit einem kurzem Funktionsdurchlauf
Benachrichtigung mit einer Ereignismeldungmittel laufen parallel mittel Funktionsaufruf mit einem kurzem Funktionsdurchlauf
Benachrichtigung mit einer Rückkehrroutinemittel laufen parallel
Ablauf
Übergabe von der Arbeitsanweisung
Beispielsweise gibtder Schnittstelle zum Betriebssystem eine Daten-Sende-Anweisung, um Daten über ein Netzwerk rauszuschicken.
- die Anwendung oder
- die Bibliothek
Beschreibung: Bezeichnung: Um die Arbeitsanweisung abzugeben, ruft mit der Hilfe von
- die Anwendung oder
- die Bibliothek
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.
- einem "call"-Befehl oder
- einer Verarbeitungsunterbrechung
Durch den Funktionsaufruf übergibtalso die Kontrolle über den CPU an die Schnittstelle zum Betriebssystem, da von dann an
- die Anwendung oder
- die Bibliothek
- nicht mehr der Maschinencode von
ausgeführt wird,
- der Anwendung oder
- der Bibliothek
- sondern der Maschinencode von der Funktion von der Schnittstelle zum Betriebssystem.
Wenndann
- für den Funktionsaufruf ein "call"-Befehl verwendet wird,
Ansonsten
- 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
benutzt wird. Dieser Maschinencode befindet sich auch im selben Segment wie sich der Maschinencode von
- der Anwendung oder
- der Bibliothek
befindet.
- der Anwendung oder
- der Bibliothek
- 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 vonunterbrochen wird, bis die Funktion von der Schnittstelle zum Betriebssystem die Arbeitsanweisung entgegen genommen hat.
- der Anwendung oder
- der Bibliothek
Wenndann
- die Funktion durchlaufen ist,
- springt sie zum Abschluss zurück.
Durch den Rücksprung wird also die Kontrolle über den CPU wieder anzurückgegeben, da von dann an
- die Anwendung oder
- die Bibliothek
- 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 EreignismeldungFunktionsaufruf 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 vonbleibt derweilst unterbrochen.
- der Anwendung oder
- der Bibliothek
Gemäß dem Beispiel mussalso warten, bis die Daten vollständig rausgeschickt wurden.
- die Anwendung oder
- die Bibliothek
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 vonbleibt während dem Funktionsdurchlauf von der Funktion, welche die Arbeitsanweisung entgegen nimmt, unterbrochen.
- der Anwendung oder
- der Bibliothek
Gemäß dem Beispiel mussalso nur kurz warten, bis die Arbeitsanweisung entgegen genommen wurde.
- die Anwendung oder
- die Bibliothek
Funktionsaufruf mit einem kurzem Funktionsdurchlauf
Benachrichtigung mit einer EreignismeldungFunktionsaufruf 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 zwischenwechseln.
- der Verarbeitung vom Maschinencode von
und
- der Anwendung oder
- der Bibliothek
- der Verarbeitung vom Maschinencode vom Hintergrund-"thread"
Übergabe von der Rückmeldung
Funktionsaufruf mit einem blockierendem Funktionsdurchlauf
Wenndann
- die Funktion zurückkehrt,
- benutzt sie Rückgabe-Parameter um die Rückmeldung zu übergeben.
Diese Rückgabe-Parameter werden mit der Hilfeübergeben.
- von Registern oder
- vom Stapel
Funktionsaufruf mit einem kurzem Funktionsdurchlauf; Benachrichtigung mit einer Ereignismeldung
Wenndann
- die Funktion, welche die Arbeitsanweisung entgegen genommen hat, zurückkehrt,
- benutzt sie Rückgabe-Parameter um eine vorläufige Rückmeldung zu übergeben.
Diese Rückgabe-Parameter werden mit der Hilfeübergeben.
- von Registern oder
- vom Stapel
Die vorläufige Rückmeldung ist meistens lediglich eine Bestätigung, dass die Arbeitsanweisung entgegen genommen werden konnte.
Wenndann
- der separate "thread" vom Betriebssystem seine Arbeit abgeschlossen hat,
- reiht er eine Ereignismeldung in das Postfach für Ereignismeldungen vom "thread" von
ein.
- der Anwendung oder
- der Bibliothek
Der "thread" vonbleibt solange mit der Ausführung von seinem Maschinencode beschäftigt, bis
- der Anwendung oder
- der Bibliothek
ihr Postfach prüft. Hierfür kann
- die Anwendung oder
- die Bibliothek
wahlweise
- die Anwendung oder
- die Bibliothek
- 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 BetriebssystemFunktionen zur Verfügung, damit
- sowohl blockierende,
- als auch nicht blockierende
den Fall wunschgemäß handhaben kann, in welchem keine Ereignismeldung vorhanden ist. In diesem Fall
- die Anwendung oder
- die Bibliothek
- 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 vonum zu verhindern, dass 2 separate "threads" parallel den Inhalt ändern und sich dabei gegenseitig stören.
- der Anwendung oder
- der Bibliothek,
Funktionsaufruf mit einem kurzem Funktionsdurchlauf; Benachrichtigung mit einer Rückkehrroutine
Wenndann
- die Funktion, welche die Arbeitsanweisung entgegen genommen hat, zurückkehrt,
- benutzt sie Rückgabe-Parameter um eine vorläufige Rückmeldung zu übergeben.
Diese Rückgabe-Parameter werden mit der Hilfeübergeben.
- von Registern oder
- vom Stapel
Die vorläufige Rückmeldung ist meistens lediglich eine Bestätigung, dass die Arbeitsanweisung entgegen genommen werden konnte.
Wenndann
- der separate "thread" vom Betriebssystem seine Arbeit abgeschlossen hat,
- reiht er den Aufruf von einer Rückkehrroutine in die Warteschlange für Rückkehrroutinen vom "thread" von
ein.
- der Anwendung oder
- der Bibliothek
Der "thread" vonbleibt solange mit der Ausführung von seinem Maschinencode beschäftigt, bis
- der Anwendung oder
- der Bibliothek
den sogenannten "Wartezustand" betritt. Wenn
- die Anwendung oder
- die Bibliothek
versucht, den Wartezustand zu betreten, und
- die Anwendung oder
- die Bibliothek
dann
- eine Rückkehrroutine in der Warteschlange von ihrem "thread" ist,
Ansonsten
- betritt sie nicht diesen Wartezustand, sondern fängt an, die Rückkehrroutine auszuführen.
- ist das Betreten erfolgreich und
fängt an zu warten.
- die Anwendung oder
- die Bibliothek
Wenndann
aus der Rückkehrroutine zurückspringt,
- die Anwendung oder
- die Bibliothek
- 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 │ ║ ║ ║
║ ▼ ║ └─────────────────────┘ ║ ║ ║
╚═════════╩═══════════════════════════════════════════════════╩══════════════════════════════════════╩════════════════════╝
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
Wenndann
- Sie weitere Materialien zu diesem Thema haben, von welchen Sie wollen, dass sie in diese Auflistungen aufgenommen werden,
- können Sie mir gerne die Materialien oder einen Link zu ihnen zusenden.
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, dassEs besteht kein Anspruch darauf, dass zugesendete Materialien aufgenommen werden.
- eine Verbreitung nicht gestattet ist oder
- nur unter Bedingungen, welche ich nicht erfüllen will.
Link zum Kapitel "wie man den Autor kontaktiert".