2 - Dualität [ID:28161]
50 von 272 angezeigt

Moin moin liebe Leute willkommen zum nächsten Video zur Vollesungsreihe Betriebssysteme.

Hier der zweite Teil zum Thema Interprozesskommunikation. Im letzten Video hatten wir uns angeguckt und

haben gesehen es gibt eigentlich so zwei grundlegende Methoden um zu kommunizieren. Einmal über

Shared Memory und einmal über Nachrichten. In diesem Video wollen wir uns einfach mal angucken

wie unterscheiden die sich, was sind jetzt die besseren Varianten, was benutzt man in der Praxis.

Ja gucken wir uns mal in der Praxis an was da so genutzt wird oder angeboten wird von dem

Betriebssystem und da sieht man dass eigentlich beides jeweils angeboten wird. In der Unix Welt

gibt es Sockets, Pipes, Namepipes und so weiter das sind alles nachrichtenbasierte Geschichten.

Und es gibt System 5 Simrform, das sind so ein bisschen erweiterte Simrform und Shared Memory.

Also kann man sich aussuchen ob man per Nachrichten oder über Shared Memory kommunizieren will.

Windows Welt bietet an Shared Memory, Simrform die eine Seite die man nutzen kann und auch Sockets,

Pipes, Namepipes und so weiter sprich die nachrichtenbasierten Varianten. Klein bisschen

anders sieht es typischerweise in der Mikrokernwelt aus. Mikrokern, ihr erinnert euch heißt man hat

verschiedene Teile des Betriebssystems und die Teile kommunizieren untereinander per Nachrichten.

Warum per Nachrichten? Ja wir haben gesagt Shared Memory wollen wir nicht damit nicht

am erglaubene kleine Teile größere Teile des Systems kaputt machen können. Nix desto trotz

mach ist ein Mikrokern bietet aber trotzdem Shared Memory an. Allerdings in nicht direkt Simrform

bietet aber Nachrichten an. Naja wir haben ja gesehen mit Nachrichten das senden einer Nachricht

kann man auch als V-Operation interpretieren, das warten auf eine Nachricht als P-Operation.

Also in dem Sinne haben wir dann eigentlich auch Shared Memory mit Simrform beziehungsweise wir

haben Nachrichten direkt. Also auch da sucht euch aus was ihr haben wollt. Bisschen anders sieht

das aus wenn man unter die Haube guckt von den Systemen also was die Systeme innerlich brauchen.

Also ein Unix Betriebssystem bietet das für Anwendungsapplikationen an Windows entsprechend,

mach entsprechend aber was benutzt jetzt ein Unix System selber der Betriebssystem Kern.

Ja typischerweise werden immer Simrform intern benutzt. Guckt euch euer eigenes OO Stubs MP Stubs

an ihr selbst habt ja auch Simrform implementiert. Irgendwie für euren Keyboard-Driver der Interrupt

ruft irgendwie ein V auf und eine Anwendung die auf den Tastendruck wartet ruft irgendwie ein P auf.

Also das ist irgendwie sage ich mal naheliegend dass man das Simrform nennt. Klein bisschen anders

sieht das wie gesagt bei Mikrokern aus da will man ja kein Shared Memory im allgemeinen. Das heißt

bei Mikrokern da werden dann doch eher Nachrichten verwendet zur Kommunikation. Monolithische Systeme

Linux Windows und so weiter typischerweise immer gemeinsam Speicher uns immer vor einfach weil es

schneller geht. Aber logischerweise mit dem Nachteil im einsamer Speicher heißt auch man kann den die

Werte die da drin stehen aus Versehen kaputt machen. Jo nichtsdestotrotz natürlich jetzt die Frage

was ist jetzt besser. Wir haben jetzt gesehen sowohl das eine als auch das andere wird angeboten

beziehungsweise genutzt. Ja da werde ich euch zeigen dass sich das eigentlich nichts tut. Warum?

Ja es gibt eine sogenannte Dualität. Man kann nämlich mit Shared Memory und Simrform ihr seht

hier am Beispiel Nachrichten nachmachen. Wie macht man es? Naja von der Idee her man bastelt

sich eine klasse Mailbox. Mailbox ist letztendlich eine Liste von Nachrichten. Man braucht nur in

diesem Falle hier Beispiel zwei Simrformen um das ganze zu koordinieren. Nämlich einmal um den

kritischen Abschnitt nämlich das einfügen von Elementen von Nachrichten in die Liste beziehungsweise

das rausnehmen aus der Liste jeweils zu schützen. Da brauchen wir so ein ja entweder Mutex oder

eben eine P- bzw. V-Operation auf eine Simrform und ja wenn man jetzt darauf warten möchte bis

eine Nachricht da ist braucht man noch zusätzlich hier in diesem Beispiel dieses Has Element Ding

diese Simrform um auf der Simrform zu warten beziehungsweise der Sender der signalisiert

über diese Simrform dass jetzt was drin ist in der Liste. Also auf die Art und Weise mit Shared

Memory kann ich jetzt so eine Mailbox nachmachen und dementsprechend so einen Send und eine

Receive Operation. Kann man sich noch überlegen was macht man jetzt wenn vielleicht irgendwann mal

nicht genügend Speicher da ist das heißt die Liste voll ist dann müsste ja vielleicht das Senden auch

irgendwie blockieren bis wieder Platz ist in der Liste. Dann würde man eventuell zusätzlich neben

diesem Has Element noch ein Has Space oder so Teil also noch eine weitere Simrforum die einfach den

Teil einer Videoserie :
Teil eines Kapitels:
Interprozesskommunikation

Zugänglich über

Offener Zugang

Dauer

00:34:20 Min

Aufnahmedatum

2021-01-15

Hochgeladen am

2021-01-18 19:20:32

Sprache

de-DE

13. Kapitel der Vorlesung Betriebssysteme.

Folien zum Video.

Tags

betriebssysteme operating systems
Einbetten
Wordpress FAU Plugin
iFrame
Teilen