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
Presenters
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.