Betriebssysteme Teil 11: Interprozess-Kommunikation
|
|
- Carsten Hoch
- vor 6 Jahren
- Abrufe
Transkript
1 Betriebssysteme Teil 11: Interprozess-Kommunikation
2 Übersicht Grundbegriffe Shared Memory Pipelines Messages Ports Sockets 2
3 Grundbegriffe Interprocess-Kommunikation = Austausch von Daten über einen Kanal zwischen Prozessen bzw. Threads innerhalb eines Systems Ein Kanal realisiert in der Regel einen Datenstrom in einer Richtung, so dass für eine bidirektionale Verbindung zwei Kanäle erforderlich sind. Schema: T 1 T 2 write() read() T 1 T 2 D 4 D 3 D 2 D 1 Queue 3
4 Einteilung I Interprozess-Kommunikation speicherbasiert strombasiert nachrichtenbasiert Shared Memory Pipe Named Pipe Sockets Messages Signale Exceptions 4
5 Einteilung II Anzahl der Teilnehmer Unicast Multicast Richtung Unidirektional Bidirektional Entfernung der Teilnehmer Im selben Virtuellen Speicher Im selben System Zwischen Systemen 5
6 Shared Memory I Beide Kommunikationspartner befinden sich im selben RAM. Unterscheidung zwischen: (a) Zwei Threads innerhalb eines Prozesses (b) Zwei Prozesse VM = Virtueller per MMU realisierter Adressraum Thread1 Thread2 Prozess1 VM VM Prozess2 Prozess VM 6
7 Shared Memory II mit MMU Prozess1 Prozess2 Code Heap Stack Code Heap Stack Virtueller Speicher Abbildung durch MMU Realer Speicher 7
8 Bemerkungen Die Segmente der Prozesse werden in gleichgroße Seiten (Pages) meist 4 KByte lang aufgeteilt. Die Memory Management Unit (MMU) bildet diese Seiten in beliebiger Anordnung in den RAM ab. Mehrere virtuelle Seiten werden gemeinsam auf denselben Bereich abgebildet; das ist der gemeinsam benutzte Speicher (Shared RAM). 8
9 Producer/Consumer mit Monitoren I Producer Consumer Zirkulärer Puffer Die Producer/Consumer-Mechanismen gehören zu den Standard-Verfahren der Kommunikation zwischen Threads bzw. Prozessen. Producer: In einen freien Bereich werden Daten geschrieben. Dann werden diese vom Producer für den Consumer frei gegeben. Consumer: Die vom Producer geschriebenen Daten werden entnommen. Der nun ausgelesene Bereich wird für den Producer frei gegeben. AVS WS 2015/16 - Teil 6/IPC 9
10 Idee des Zirkulären Puffers I Producer: Der Index in zeigt auf das nächste zu beschreibende Element. Der Producer schreibt dort und erhöht modulo der Größe in. Consumer: Der Index out zeigt auf das nächste zu lesende Element. Der Consumer liest dort und erhöht modulo der Größe out. 10
11 Idee des Zirkulären Puffers II MOD ist der Modulo-Operator, dessen Anwendung dafür sorgt, dass die beiden Indices in und out sich immer innerhalb der erlaubten Array-Grenzen bewegen. Es gibt folgende Bedingungen: 1)Der Puffer ist dann leer, wenn gilt: in = out 2)Der Puffer ist dann voll, wenn gilt: in+1 MOD size = out 3) Wenn beide Bedingungen nicht gelten ist der Puffer gefüllt. Um die Implementierung zu vereinfachen, wird in der Variablen count die Anzahl der belegten Elemente vermerkt. Wenn nur mit in und out gearbeitet wird, dann muss in auf das letzte in die Queue gebrachte Element zeigen und unmittelbar vor dem Hineinbringen eines weiteren Elements erhöht und auf die zweite Bedingung geprüft werden. Statt eines Array mit den langsamen Indizierungen wird häufig mit Pointern in ein Array gearbeitet. 11
12 Producer/Consumer mit Monitoren II Teil 1 MONITOR Buffer { elem[0..size-1] buffer; int count:= 0; int in:= 0, out:= 0; condition NotEmpty, NotFull; PROC write(elem what) { IF count = size THEN waitcond(notfull); FI buffer[in]:= what; in:= (in+1) MOD size; count++; signalcond(notempty); } 12
13 Producer/Consumer mit Monitoren III Teil 2 } elem FUNC read(){ } IF count = 0 THEN waitcond(notempty); FI what:= buffer[out]; out:= (out+1) MOD size; count--; signalcond(notfull); return(what); Dies ist eine typische Ring-Puffer-Lösung zur Interprozesskommunikation. 13
14 Bemerkungen I Es gibt zwei Bedingungsvariablen: NotEmpty symbolisiert die Bedingung, dass der Puffer nicht leer ist, d.h. es ist irgendetwas enthalten NotFull symbolisiert die Bedingung, dass der Puffer nicht vollständig gefüllt ist, d.h. es gibt noch Platz Wenn nun ein Thread etwas in den Puffer schreiben will, muss vorher Platz da sein. Ist der Puffer voll, legt er sich auf das Ereignis, dass mindestens für ein Element Platz ist, schlafen: waitcond(notfull) Wenn ein Thread etwas aus dem Puffer lesen will, muss mindestens ein geschriebener Eintrag vorhanden sein. Wenn nicht, so legt er sich auf das Ereignis schlafen, dass etwas in den Puffer geschrieben wurde: waitcond(notempty) Die entsprechenden Threads, die lesen bzw. schreiben, wecken die wartenden Threads auf: signalcond(notfull) und signalcond(notempty) 14
15 Bemerkungen II Monitore werden mit den vorgestellten Mitteln: p(), v() etc. implementiert. Regeln Kein Thread sollte sich lange in einem Monitor aufhalten. Ein Ausschluss sollte nicht zu lange erfolgen. Schachteln von Monitoren kann zu Deadlocks führen. Threads, die sich in geschachtelten Monitore befinden, sollten höher priorisiert werden, damit sie schneller die Monitore frei geben. 15
16 Dasselbe noch einmal ohne Monitore I CLASS Buffer { elem[0..size-1] buffer; int in:= 0, out:= 0; Semaphore mutex:= 1; Semaphore empty:= size; Semaphore full:= 0; KA PROC write(elem what) { p(empty); p(mutex); buffer[in]:= what; in:= (in+1) MOD size; v(mutex); v(full); } KA= kritischer Abschnitt KA } elem FUNC read(){ p(full); p(mutex); what:= buffer[out]; out:= (out+1) MOD size; v(mutex); v(empty); return(what); } 16
17 Erklärungen Hier werden Integer-Semaphoren verwendet. Die initiale Zahl gibt die Anzahl der Threads an, die den kritischen Abschnitt gleichzeitig betreten dürfen. Bisher hatten wir binäre Semaphoren mit dem initialen Wert von 1 bzw. True. Die eine Semaphore (empty) zählt die freien Bereiche, die andere (full) die belegten Bereiche. Zwei der Semaphoren werden hier zum Zählen der freien Ressourcen benutzt. P() erniedrigt de Zähler, v() erhöht ihn. Ein Prozess wird schlafen gelegt, wenn der Zähler vor dem Erniedrigen 0 ist. Die dritte Semaphore (mutex = mutual exclusion) ist eine binäre Semaphore und erlaubt nur einem Thread die Manipulation der Queue. 17
18 Bewertung Shared Memory Standard-Methode bei der Kommunikation zwischen Threads Sehr effizient (kein Kopieren) Synchronisation liegt in der Hand der Programmier(innen) Quelle vieler Fehler Kein/Kaum Unterstützung durch Compiler/Programmiersprachen Ein falscher Pointer: Tod für alle Threads 18
19 Zusammenfassung des Bisherigen T 1 T 2 write() read() Abstraktion Queue D 4 D 3 D 2 D 1 Die Realisierung wird in einem Abstrakten Datentyp, z.b. einer Klasse, versteckt. Die Queue liegt aber immer noch innerhalb des Virtuellen Speichers der Beteiligten. 19
20 Über das Betriebssystem I T 1 T 2 Prozesse/Threads pipe() write() read() Manager create() destroy() D 4 Queue D 3 D 2 D 1 Betriebssystem Derartige Queues werden Pipes (Pipelines) genannt. In Unix werden diese im Shell mit einem senkrechten Strich ausgedrückt, z.b. "ls more". 20
21 Über das Betriebssystem II Der pipe-syscall erzeugt eine Queue, die mit dem Schließen der Enden (close) wieder zerstört wird. In die Queue wird mit write() geschrieben, aus ihr mit read() gelesen. Beide Operationen sind wartend, in dem Sinne, dass beim read() gewartet wird bis etwas in der Pipe ist, beim write() gewartet wird bis Platz in der Pipe ist. Über Pipes wird üblicherweise zwischen Prozessen kommuniziert, es geht aber auch zwischen Threads eines Prozesses. 21
22 Pipelines über das Dateisystem I T 1 T 2 Prozesse/Threads open() Write write() read() open() Read Manager create() destroy() Queue Queue Queue Betriebssystem Im Dateisystem werden die Queues angelegt und im Kernel realisiert: named pipe genannt 22
23 Pipelines über das Dateisystem II Die Enden einer Pipe haben nun einen Namen, der in die Namen des Dateisystems integriert ist. Damit ist die Existenz einer Pipe unabhängig von der Ausführung eines Prozesses. Pipes liegen im RAM und werden mit Terminieren bzw. Schließen der Verbindung zerstört. Named Pipes werden im Dateisystem angelegt und erst dann zerstört, wenn sie gelöscht werden. Damit realisieren sie allgemeine Schnittstellen zu Prozessen. Die Semantik von Pipes und Named Pipes ist so in Unix- Systemen realisiert. 23
24 Pipelines über das Dateisystem III Client 1 Client 2 write() write() read() Server 1 Client N write() Dateiname pipe Server werden über den Namen einer Queue angesprochen. Aber: die Verbindung zwischen Queue (Pipe) und Server ist lose, d.h. es können ein oder mehrere Server an den Pipe-Ausgang anschließen. Der (Datei-)Name der Pipe ist daher kein Service-Name. 24
25 Feste Verbindung: Port I Client 1 Server 1 Client 2 send() receive() send() Client N send() Portname Port Queue Wenn eine feste Verbindung zwischen Schnittstelle und Server als Schnittstelle zum Server besteht, wird von Ports gesprochen. Das Schreiben in ein Port wird send() und das Lesen receive() genannt. Die ausgetauschten Daten werden Messages (Nachrichten) genannt. 25
26 Feste Verbindung: Port II Dies ist die höchste Abstraktion. Für die Prozesse/Threads ist nicht erkennbar, ob der Partner im selben System oder in einem anderen System liegt. Unter Unix gibt es das Message-Konzept für Kommunikation innerhalb eines Systems in den Varianten der synchronen und asynchronen Kommunikation gibt es das Socket-Konzept für Kommunikation zwischen Systemen, dies geht auch im Spezialfall innerhalb eines Systems 26
27 Sockets Socket = Sockel = Begriff aus dem UNIX-Kernel für Schnittstellen zu anderen Prozessen auf demselben oder fremden Systemen (über ein Netz) Client 1 Server 1 send() receive() Socket TCP/IP-Verbindung Socket Betriebssystem Betriebssystem 27
28 Bewertung Nachrichtenbasierte Kommunikation Standardverfahren bei Kommunikation zwischen Systemen; Alternative Sockets mit offenen Strom Hoher Abstraktionsgrad Passt ins Konzept von Objekt-Orientierten Sprachen wird aber von denen nicht/kaum unterstützt Ineffizient, da fast immer mit Kopieren gearbeitet wird wenn innerhalb des Systems kommuniziert wird Das Beste ist wohl eine nachrichtenbasierte Kommunikation mit Hilfe von Shared Memory, da bei hoher Abstraktion eine hohe Effizienz realisiert wird. 28
29 Synchron und Asynchron I send() Synchron: der Sender wartet solange, bis der Empfänger empfangen hat Asynchron: der Sender setzt seine Nachricht ab und arbeitet weiter; diese wird in einer Queue zwischengespeichert receive() Synchron: der Empfänger wartet solange, bis eine Nachricht für ihn vorhanden ist Asynchron: der Empfänger empfängt eine Nachricht, falls sie da ist, ansonsten arbeitet er weiter. Prinzipiell sind alle vier Kombinationen möglich. Implementiert werden aber nicht unbedingt alle: Meistens ist send() blockierend oder nicht blockierend (no-wait-send), während receive() immer blockierend ist. Bei den asynchronen Varianten ist eine Queue als Zwischenspeicher erforderlich. Synchron und Asynchron betreffen die (zeitliche) Entkopplung. 29
30 Synchron und Asynchron II Synchrone Operationen und blockierend send() und receive() blockieren bis der Partner bereit ist Direkte Kommunikation Keine Zwischenspeicherung der Nachricht notwendig falls innerhalb desselben Systems sich der Partner befindet Implizite Empfangsbestätigung Einfach und schnell Dieses Verfahren wird auch Rendezvous genannt. Blockierend betrifft die Möglichkeit eines Wartens. 30
31 Synchron und Asynchron II Asynchrone Operationen und möglichst nicht blockierend Queue erforderlich Wenn Sender terminiert, entsteht beim Empfänger kein Deadlock Empfangsbestätigung kompliziert Aber! Wenn die Queue voll ist oder kein Speicher für die Nachricht verfügbar ist, ist das asynchrone Senden blockierend. Asynchrone Operationen und nie blockierend Aber! Wenn die Queue voll ist oder kein Speicher für die Nachricht verfügbar ist, scheitert das asynchronen Senden; es könnte dann eine Exception geworfen werden. 31
32 Send-receive-reply I Sender Empfänger receive() send() reply() Rendezvous mit Antwort durch reply(). 32
33 Send-receive-reply II reply() ist die Operation, mit der der Empfänger eine Rückantwort aufgrund einer Nachricht zurückschickt. Da der Speicher für die Nachricht vorhanden ist, kann er auch zur Antwort benutzt werden. Das bedeutet, dass der reply()- Aufrufer bei der Speicher-Allokation meist nicht blockiert. Wenn die Rückantwort dagegen durch ein eigenes send() realisiert wird, dann kann der send()-aufrufer bei der Speicher- Allokation blockieren. 33
34 Nach dieser Anstrengung etwas Entspannung... Schnee, nichts als Schnee soweit das Auge reicht 34
Architektur Verteilter Systeme Teil 6: Interprozess-Kommunikation
Architektur Verteilter Systeme Teil 6: Interprozess-Kommunikation 09.05.15 1 Literatur [6-1] http://php.net/manual/de/book.sockets.php [6-2] http://de.wikipedia.org/wiki/socket_(software) [6-3] http://php.net/manual/de/book.network.php
MehrKommunikation von Prozessen und Threads
Kommunikation von Prozessen und Threads Sommersemester 2015 Prof. Dr. Peter Mandl Prof. Dr. Peter Mandl Seite 1 Gesamtüberblick 1. Einführung in Computersysteme 2. Entwicklung von Betriebssystemen 3. Architekturansätze
Mehrleave: mov flag, 0 ; 0 in flag speichern: Lock freigeben ret
Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: STATS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)
MehrDomänenmodell: Fadenkommunikation und -synchronisation
Domänenmodell: Fadenkommunikation und -synchronisation Alexander Humphreys, Reinhard Rösch, Fabian Scheler 15. Mai 2003 Inhaltsverzeichnis 1 Domänendefinition 1 2 Domänenlexikon 1 3 Konzeptmodelle 4 4
MehrSynchronisation und Kommunikation über Nachrichten
Synchronisation und Kommunikation über Nachrichten meist bei verteiltem Speicher, kein gemeinsamer Speicher -> keine globalen Variablen keine zu schützenden Datenbereiche Kommunikation über Kanäle und
MehrBetriebssysteme (BTS)
13.Vorlesung Betriebssysteme (BTS) Christian Baun cray@unix-ag.uni-kl.de Hochschule Mannheim Fakultät für Informatik Institut für Betriebssysteme 31.5.2007 Wiederholung vom letzten Mal Deadlocks und Verhungern
MehrInterprozesskommunikation IPC
Interprozesskommunikation IPC Seminar Konzepte von Betriebsystem-Komponenten Denis Koslowski koslowski.d@web.de 04.07.2005-1 - Interprozesskommunikation Gliederung 1. Was ist IPC? 2. IPC: Datentransfer
MehrVerbessertes Konzept: Monitore
Verbessertes Konzept: Monitore Ein Nachteil von Semaphoren ist die Notwendigkeit zur expliziten Anforderung P und Freigabe V des kritischen Bereiches durch den Programmierer Vergißt der Entwickler z.b.
MehrRechnerarchitektur und Betriebssysteme (CS201): Semaphor, Monitor, Deadlocks, Re-Entrance
Rechnerarchitektur und Betriebssysteme (CS201): Semaphor, Monitor, Deadlocks, Re-Entrance 5. November 2013 Prof. Dr. Christian Tschudin Departement Mathematik und Informatik, Universität Basel Repetition
MehrPThreads. Pthreads. Jeder Hersteller hatte eine eigene Implementierung von Threads oder light weight processes
PThreads Prozesse und Threads Ein Unix-Prozess hat IDs (process,user,group) Umgebungsvariablen Verzeichnis Programmcode Register, Stack, Heap Dateideskriptoren, Signale message queues, pipes, shared memory
MehrÜbersicht. Virtuelle Maschinen Erlaubnisse (Permission, Rechte) Ringe. AVS SS Teil 12/Protection
Übersicht Virtuelle Maschinen Erlaubnisse (Permission, Rechte) Ringe 2 Behandelter Bereich: Virtualisierung Syscall-Schnittstelle Ports Server Apps Server Apps Betriebssystem Protokolle Betriebssystem
MehrCS2101 Nebenläufige und Verteilte Programme Bachelor of Science (Informatik)
Prof. Dr. Th. Letschert CS2101 Nebenläufige und Verteilte Programme Bachelor of Science (Informatik) Vorlesung 7 Th Letschert FH Gießen-Friedberg Ressourcen Verwaltung passive Ressourcen aktive Ressourcen
MehrSystemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun. Übungsklausur
Hochschule Mannheim Systemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun Übungsklausur Aufgabe 1: Definieren Sie den Begriff der Systemsoftware. Nennen Sie die Aufgaben und Komponenten
MehrInhaltsverzeichnis. Carsten Vogt. Nebenläufige Programmierung. Ein Arbeitsbuch mit UNIX/Linux und Java ISBN:
Inhaltsverzeichnis Carsten Vogt Nebenläufige Programmierung Ein Arbeitsbuch mit UNIX/Linux und Java ISBN: 978-3-446-42755-6 Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-42755-6
MehrKlausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition)
Ein Prozess kann unmittelbar vom Zustand 1. Running in den Zustand Ready 2. Running in den Zustand Blocked 3. Ready in den Zustand Running Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition) Der Adressraum
MehrParallele Prozesse. Prozeß wartet
Parallele Prozesse B-66 Prozeß: Ausführung eines Programmes in seinem Adressraum (zugeordneter Speicher) Parallele Prozesse: gleichzeitig auf mehreren Prozessoren laufende Prozesse p1 p2 verzahnte Prozesse:
Mehr2. Aufgabenblatt Threads
Fakultät Informatik Institut für Systemarchitektur, Professur für Betriebssysteme Betriebssysteme und Sicherheit, WS 2016/17 2. Aufgabenblatt Threads Geplante Bearbeitungszeit: drei Wochen TEIL A THREADS
Mehr#define N 5 // Anzahl der Philosophen. while (TRUE) { // Der Philosoph denkt
Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: STATS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)
MehrTest (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme
Seite 1 Test (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme 1 11.07.2007 Hinweise: Bevor Sie mit der Bearbeitung der Aufgaben beginnen, müssen Sie auf allen Blättern Ihren Namen und Ihre
MehrÜbung zu Grundlagen der Betriebssysteme. 10. Übung 18.12.2012
Übung zu Grundlagen der Betriebssysteme 10. Übung 18.12.2012 Aufgabe 1 a) Was versteht man unter einem kritischen Abschnitt oder kritischen Gebiet (critical area)? b) Welche Aufgabe hat ein Semaphor? c)
MehrProzeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen
Seite 8 A UFGABE 11 INTERP ROZEßKOMMUNIKATION Das folgende Petrinetz zeigt zwei verkoppelte Prozesse P1 und P2. Die Transitionen a und b beschreiben Aktionen von P1, die Transitionen c und d Aktionen von
MehrKommunikationsmodelle
Kommunikationsmodelle Dr. Victor Pankratius David J. Meder IPD Tichy Lehrstuhl für Programmiersysteme KIT die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe (TH) Grundlegende
MehrGeräteverwaltung: Einführung
Geräteverwaltung: Einführung Die Ziele einer Geräteverwaltung sind: Einfache Softwareschnittstelle Gleiche Software Schnittstellen für alle Geräte eines Gerätetyps z.b.: unabhängig vom Soundkartenhersteller
MehrWS Parallele Prozesse. Prof. Hannelore Frank. Parallele Prozesse. PetriNetze. Synchronisation UNIX. Wettbewerb PC Krit.Abschnitt Spinlocks
WS 2007 Überblick 1 2 Petri-Netze als Entwurfshilfsmittel 3 nebenläufiger 4 -Systemfunktionen Literatur Eduard Glatz: Betriebssysteme. Grundlagen, Konzepte, Systemprogrammierung dpunkt.verlag, 2006, ISBN
MehrKosten der Abschirmung von Code und Daten
Kosten der Abschirmung von Code und Daten Alexander Züpke, Kai Beckmann, Andreas Zoor, Reinhold Kröger vorname.nachname@hs-rm.de Motivation Internet der Dinge STM32F4 Mikrocontroller 2 Motivation Internet
MehrRTOS Einführung. Version: Datum: Autor: Werner Dichler
RTOS Einführung Version: 0.0.1 Datum: 20.07.2013 Autor: Werner Dichler Inhalt Inhalt... 2 RTOS... 3 Definition... 3 Anforderungen... 3 Aufgaben... 3 Eigenschaften... 4 Einteilung der Betriebssysteme...
MehrSequentielle Programm- / Funktionsausführung innerhalb eines Prozesses ( thread = Ausführungsfaden )
Threads Sequentielle Programm- / Funktionsausführung innerhalb eines Prozesses ( thread = Ausführungsfaden ) Ein thread bearbeitet eine sequentielle Teilaufgabe innerhalb eines Prozesses Mehrere nebenläufige
MehrSoftwarelösungen: Versuch 4
Softwarelösungen: Versuch 4 Nichtstun in Schleife wird ersetzt durch zeitweilige Zurücknahme der Anforderung, um es anderen Prozessen zu erlauben, die Ressource zu belegen: /* Prozess 0 */ wiederhole flag[0]
MehrNebenläufige und verteilte Programme CS2301
Nebenläufige und verteilte Programme CS2301 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Netze mit aktiven und reaktiven Knoten Produzent Konsument: aktiv / passiv / reaktiv
MehrEchtzeitbetriebssysteme
Speicherverwaltung (Memory Management) Aufgaben der Memory-Management-Unit ist l der Speicherschutz und l die Adressumsetzung Wird durch Hardware unterstützt l Memory Management Unit (MMU) l MMU wird vom
MehrMonitore. Klicken bearbeiten
Sascha Kretzschmann Institut für Informatik Monitore Formatvorlage und deren Umsetzung des Untertitelmasters durch Klicken bearbeiten Inhalt 1. Monitore und Concurrent Pascal 1.1 Warum Monitore? 1.2 Monitordefinition
MehrA Kompilieren des Kernels... 247. B Lineare Listen in Linux... 251. C Glossar... 257. Interessante WWW-Adressen... 277. Literaturverzeichnis...
1 Einführung................................................ 1 1.1 Was ist ein Betriebssystem?............................... 1 1.1.1 Betriebssystemkern................................ 2 1.1.2 Systemmodule....................................
MehrSysteme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard
Systeme I: Betriebssysteme Kapitel 4 Prozesse Wolfram Burgard Version 18.11.2015 1 Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, Historische Entwicklung, unterschiedliche Arten von Betriebssystemen
MehrOperating System Kernels
Operating System Kernels von Patrick Bitterling 1 Themenübersicht -Eine Einleitung über Kernel -Begriffserklärung, Architekturen -Kernel Subsysteme -Prozess-Scheduling, Speichermanagement,... -Der Networking
MehrMutual Exclusion und Synchronisation. Peter Puschner Institut für Technische Informatik peter@vmars.tuwien.ac.at
Mutual Exclusion und Synchronisation Peter Puschner Institut für Technische Informatik peter@vmars.tuwien.ac.at 1 Gemeinsame Ressourcen BS und Prozesse, parallel laufende Prozesse verwenden die selben
MehrVersuchsziele Konzepte der parallelen Programmierung am Beispiel von Threads anwenden können. Einbau von Kontrollmechanismen mittels Semaphore.
Hochschule Harz Versuch: fcopy Mit Java FB Automatisierung und Informatik Betriebssysteme Thema: Kopieren einer Datei unter der Kontrolle von Semaphoren Versuchsziele Konzepte der parallelen Programmierung
MehrDie Anweisungen zweier Prozesse werden parallel bearbeitet, wenn die Anweisungen unabhängig voneinander zur gleichen Zeit ausgeführt werden.
7 Parallelität und Nebenläufigkeit Mehrere Prozessen oder Threads Parallelität Die Anweisungen zweier Prozesse werden parallel bearbeitet, wenn die Anweisungen unabhängig voneinander zur gleichen Zeit
MehrVorlesung "Verteilte Systeme" Sommersemester 1999. Verteilte Systeme. Adreßraum. Rechner. Verteilte Systeme, Sommersemester 1999 Folie 19.
Verteilte Systeme 19. Distributed Shared Memory Sharing!! No Sharing! Sharing? Evolution der Berechnungsmodelle Vergangenheit Gemeinsamer Speicher Einzelrechner Gegenwart Nachrichtenkommunikation Verteilte
MehrKonzepte von Betriebssystemkomponenten. Gerätetreiber. Mario Körner
Konzepte von Betriebssystemkomponenten Gerätetreiber Mario Körner 26.01.2004 Übersicht Einordnung in die Betriebssystemarchitektur Schnittstelle zur Hardware Schnittstelle zum Betriebssystem am Beispiel
MehrSoftwaresysteme I Übungen Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2007 U9.fm
U9 9. Übung U9 9. Übung U9-1 Überblick Besprechung Aufgabe 6 (printdir) Posix-Threads U9.1 U9-2 Motivation von Threads U9-2 Motivation von Threads UNIX-Prozesskonzept: eine Ausführungsumgebung (virtueller
MehrProzeßverwaltung. die Prozeßtabelle enthält die Prozeßleitblöcke
Prozeßverwaltung Komponente eines Betriebssystems, die für die Zuteilung von Betriebsmitteln an wartende Prozesse zuständig ist alle für die Prozeßverwaltung ( process management ) wichtigen Informationen
MehrBetriebssysteme Wintersemester 2005/06
Betriebssysteme Wintersemester 2005/06 Vorlesung 3 Prozesse und Threads Dr. Oliver Waldhorst Rechnernetze und verteilte Systeme Universität Leipzig http://www.informatik.uni-leipzig.de/rnvs Fahrplan Nr.
MehrÜbersicht. UNIX-Dateisystem (ext2) Super-User unter Linux werden MSDOS: FAT16 und FAT32
Übersicht UNIX-Dateisystem (ext2) Super-User unter Linux werden MSDOS: FAT16 und FAT32 Die in diesem Teil vorgestellten Informationen stellen lediglich das Prinzip dar - im Detail ist alles etwas komplizierter...
MehrRechnernutzung in der Physik. Betriebssysteme
Rechnernutzung in der Physik Betriebssysteme 1 Betriebssysteme Anwendungsprogramme Betriebssystem Treiber BIOS Direkter Zugriff von Anwenderprogrammen auf Hardware nur in Ausnahmefällen sinnvoll / möglich:
MehrKlausur zur Vorlesung Grundlagen der Betriebssysteme WS 2011 / 2012
Name: Matrikelnummer: Studiengang: INF CV IM Lehramt BSc MSc BEd MEd Diplom Klausur zur Vorlesung Grundlagen der Betriebssysteme WS 0 / 0 Montag, den. Februar 0, 09: Uhr 0: Uhr Prof. Dr. D. Zöbel, Dipl.
Mehr(a) Wie unterscheiden sich synchrone und asynchrone Unterbrechungen? (b) In welchen drei Schritten wird auf Unterbrechungen reagiert?
SoSe 2014 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Präsenzübung 2 2014-04-28 bis 2014-05-02 Aufgabe 1: Unterbrechungen (a) Wie unterscheiden sich synchrone
MehrU9-3 Vergleich von Thread-Konzepten. U9-2 Motivation von Threads. U9-3 Vergleich von Thread-Konzepten (2) U9-1 Überblick
U9 9. Übung U9 9. Übung U9-1 Überblick Besprechung Aufgabe 6 (printdir) Posix-Threads U9.1 User-Level Threads: Federgewichtige Prozesse Realisierung von Threads auf Anwendungsebene innerhalb eines Prozesses
MehrVorlesung Betriebssysteme I
1 / 38 Vorlesung Betriebssysteme I Thema 6: Kommunikation Robert Baumgartl 14. Dezember 2015 2 / 38 Einige Gedanken Kommunikation = Übertragung von Informationen zwischen Aktivitäten meist mit Synchronisation
MehrInhaltsverzeichnis Übersicht Prozesse
1 Übersicht... 1 1.1 Einleitung: Was ist ein Betriebssystem?... 1 1.2 Betriebssystemschichten... 2 1.3 Schnittstellen und virtuelle Maschinen... 3 1.4 Betriebssystemaufbau... 5 1.4.1 Systemaufrufe... 6
MehrVerteilte Systeme CS5001
Verteilte Systeme CS5001 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Client-Server-Anwendungen: Vom passiven (shared state) Monitor zum aktiven Monitor Monitor (Hoare, Brinch-Hansen,
MehrBetriebssysteme 1. Thomas Kolarz. Folie 1
Folie 1 Betriebssysteme I - Inhalt 0. Einführung, Geschichte und Überblick 1. Prozesse und Threads (die AbstrakFon der CPU) 2. Speicherverwaltung (die AbstrakFon des Arbeitsspeichers) 3. Dateisysteme (die
MehrSysteme I: Betriebssysteme Kapitel 5 Nebenläufigkeit und wechselseitiger Ausschluss. Maren Bennewitz
Systeme I: Betriebssysteme Kapitel 5 Nebenläufigkeit und wechselseitiger Ausschluss Maren Bennewitz Version 12.12.2012 1 Nachtrag zu letzter Vorlesung Hauptspeicher reicht nur für begrenzte Anzahl von
MehrÜbung Betriebssysteme 11
Übung Betriebssysteme 11 Christian Motika Christian-Albrechts-Universität zu Kiel Institut für Informatik AG Echtzeitsysteme / Eingebettete Systeme Kiel, Germany 29-JAN-2013 CAU - WS 2012/13 Übung Betriebssysteme
Mehr(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl
Übung zur Vorlesung Grundlagen Betriebssysteme und Systemsoftware (Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl (gbs-ws11@mailschlichter.informatik.tu-muenchen.de) http://www11.in.tum.de/veranstaltungen/grundlagenbetriebssystemeundsystemsoftwarews1112
MehrArchitektur Verteilter Systeme Teil 2: Prozesse und Threads
Architektur Verteilter Systeme Teil 2: Prozesse und Threads 21.10.15 1 Übersicht Prozess Thread Scheduler Time Sharing 2 Begriff Prozess und Thread I Prozess = Sequentiell ablaufendes Programm Thread =
MehrInfrastruktur und Betriebssysteme III. Martin Plümicke
Infrastruktur und Betriebssysteme III Martin Plümicke 25. Februar 2002 Inhaltsverzeichnis 1 Einführung in Betriebssysteme 3 2 Überblick 7 2.1 Systemkomponenten.................................. 7 2.1.1
MehrSpeicherverwaltung (Swapping und Paging)
Speicherverwaltung (Swapping und Paging) Rückblick: Segmentierung Feste Einteilung des Speichers in einzelne Segmente 750k 0 Rückblick: Segmentierung Feste Einteilung des Speichers in einzelne Segmente
MehrDas Monitorkonzept Brinch-Hansen
Das Monitorkonzept (nach Hoare/Brinch Brinch-Hansen 1974) Nur ein Prozess bzw. Thread kann zu einem bestimmten Zeitpunkt im Monitor aktiv sein => gegenseitiger Ausschluss, mutual exclusion. Geschützte
MehrWie groß ist die Page Table?
Wie groß ist die Page Table? Im vorigen (typischen) Beispiel verwenden wir 20 Bits zum indizieren der Page Table. Typischerweise spendiert man 32 Bits pro Tabellen Zeile (im Vorigen Beispiel brauchten
MehrDBUS Interprozess-Kommunikation für Embedded-Plattformen
DBUS Interprozess-Kommunikation für Embedded-Plattformen Andreas Schwarz Neratec Solutions AG Firmenprofil Neratec Solutions AG Produkt-Entwicklungen für kundenspezifische elektronische Produkte Produkte
MehrSS 08. Systemprogrammierung unter Linux. Client Server Projekt. Elektronische Tafel. Seite 1 05.03.2008
Fakultät Elektrotechnik und Informatik Studiengang Angewandte Informatik Prof. Dr.-Ing. S. Keller 05.03.2008 Hochschule Ravensburg-Weingarten Systemprogrammierung unter Linux Client Server Projekt Elektronische
Mehr1.3 Architektur von Betriebssystemen
1.3 Architektur von Betriebssystemen Zentrale Aspekte: Schichtenstruktur Monolithischer Kern oder Mikrokern aufrufbasiert oder auftragsbasiert Objektorientierung bs-1.2 1 1.3.1 Schichtenstruktur Eine Schicht
MehrVortrag zum Seminar Konzepte und Techniken virtueller Maschinen und Emulatoren. Bruno Kleinert fuddl@gmx.de. 20. Juni 2007
User Mode Linux (UML) Vortrag zum Seminar Konzepte und Techniken virtueller Maschinen und Emulatoren Friedrich-Alexander-Universität Erlangen-Nürnberg Bruno Kleinert fuddl@gmx.de 20. Juni 2007 Überblick
MehrBetriebssystembau (BSB)
Betriebssystembau (BSB) 6. Übung http://ess.cs.tu-.de/de/teaching/ws2013/bsb/ Olaf Spinczyk olaf.spinczyk@tu-.de http://ess.cs.tu-.de/~os AG Eingebettete System Informatik 12, TU Dortmund Agenda Vorstellung
MehrInhaltsverzeichnis XII
1 Einführung... 1 1.1 Computersysteme... 1 1.1.1 Einführung... 2 1.1.2 Aufgabe von Betriebssystemen... 3 1.1.3 Grundlegende Hardwaremodelle... 3 1.1.4 CPU-Registersatz... 7 1.1.5 Multicore-Prozessoren
MehrThread-Synchronisation in in Java. Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen
Thread-Synchronisation in in Java Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen Die Klasse Thread Die Die Klasse Thread gehört zur zur Standardbibliothek von von
MehrÜbersicht Shell-Scripten
!!!! Wichtig: Bei Shell-Scripten enden die Zeilen nicht mit einem Strichpunkt!!!! Erste Zeile eines Shell-Scripts: #! /bin/bash Variablen in Shell-Scripts: Variablennamen müssen mit einem Buchstaben beginnen,
MehrBetriebssysteme. 4y Springer. Eine kompakte Einführung mit Linux. Albrecht Achilles. Mit 31 Abbildungen
Albrecht Achilles 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Betriebssysteme Eine kompakte Einführung mit Linux
MehrAufgabe 1: Interprozesskommunikation In der Vorlesung wurden zentrale Aspekte von grundlegenden Kommunikationsmustern vorgestellt.
Sommersemester 211 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Präsenzübung 11 vom 2.6.211 bis 24.6.211 Aufgabe 1: Interprozesskommunikation In der Vorlesung
MehrBetriebssysteme Übung 2. Tutorium System Calls & Multiprogramming
Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming Task Wiederholung 1 System SysCalls (1) Wozu? Sicherheit Stabilität Erfordert verschiedene modes of execution: user mode privileged mode
Mehr9 Multithreading. 1 Idee des Multithreading
9 Multithreading Jörn Loviscach Versionsstand: 21. Juli 2015, 11:50 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work is licensed
MehrSmartphone Entwicklung mit Android und Java
Smartphone Entwicklung mit Android und Java predic8 GmbH Moltkestr. 40 53173 Bonn Tel: (0228)5552576-0 www.predic8.de info@predic8.de Was ist Android Offene Plattform für mobile Geräte Software Kompletter
Mehr^ Springer Vi eweg. Grundkurs Betriebssysteme. Synchronisation, Prozesskommunikation, Virtualisierung. Architekturen, Betriebsmittelverwaltung,
Peter Mandl Grundkurs Betriebssysteme Architekturen, Betriebsmittelverwaltung, Synchronisation, Prozesskommunikation, Virtualisierung 4. Auflage ^ Springer Vi eweg 1 Einführung 1 1.1 Computersysteme 1
MehrKlausur zum Kurs Betriebssysteme (1802) am 19. September 2009
Fakultät für Mathematik und Informatik Lehrgebiet Kooperative Systeme Prof. Dr. Jörg M. Haake FernUniversität in Hagen 58084 Hagen Vorname Name Straße Hausnr. Informatikzentrum Universitätsstr. 1 58084
MehrSpeicherbasierte Kommunikation (T) Realisierung von Semaphoren (T) Shared Memory (P) Synchronisation mittels Semaphoren (P)
Systempraktikum im Wintersemester 2009/2010 (LMU): Vorlesung vom 26.11. Foliensatz 5 Speicherbasierte Kommunikation (T) Realisierung von Semaphoren (T) Shared Memory (P) Synchronisation mittels Semaphoren
Mehr6 Speicherorganisation
Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen Speicherbereich für
MehrGliederung. Monitor (eine auf ein Modul bezogene) Klasse
Systemprogrammierung Prozesssynchronisation: Hochsprachenebene Wolfgang Schröder-Preikschat Lehrstuhl Informatik 4 04. November 2014 c wosch (Lehrstuhl Informatik 4) Systemprogrammierung SP2 # WS 2014/15
MehrSysteme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz
Systeme I: Betriebssysteme Kapitel 4 Prozesse Maren Bennewitz Version 21.11.2012 1 Begrüßung Heute ist Tag der offenen Tür Willkommen allen Schülerinnen und Schülern! 2 Testat nach Weihnachten Mittwoch
MehrComputer-Systeme Teil 15: Virtueller Speicher
Computer-Systeme Teil 15: Virtueller Speicher Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 14.01.2013 1 Übersicht Segmente Systemaufrufe Swapping Paging Computer-Systeme WS 12/13 - Teil 15/Virtueller
MehrGrundlagen Rechnerarchitektur und Betriebssysteme
Grundlagen Rechnerarchitektur und Betriebssysteme Johannes Formann Definition Computer: Eine Funktionseinheit zur Verarbeitung von Daten, wobei als Verarbeitung die Durchführung mathematischer, umformender,
MehrGrundkurs Betriebssysteme
Grundkurs Betriebssysteme Architekturen, Betriebsmittelverwaltung, Synchronisation, Prozesskommunikation von Peter Mandl 3., akt. und erw. Aufl. 2013 Springer Vieweg Wiesbaden 2012 Verlag C.H. Beck im
MehrSystemsoftware (SYS)
10.Vorlesung Systemsoftware (SYS) Christian Baun cray@unix-ag.uni-kl.de Hochschule Mannheim Fakultät für Informatik Institut für Robotik 13.6.2008 Heute Interprozesskommunikation Kritische Abschnitte Wettlaufsituationen
MehrBetriebssysteme Teil 16: Dateisysteme (Beispiele)
Betriebssysteme Teil 16: Dateisysteme (Beispiele) 21.01.16 1 Übersicht UNIX-Dateisystem (ext2) Super-User unter Linux werden MSDOS: FAT16 und FAT32 Die in diesem Teil vorgestellten Informationen stellen
MehrMusterlösung Prüfung WS 01/02
Musterlösung Prüfung WS 01/02 Fach: I3 Software-Technik (SEE, GRS, BTS) Teilprüfung: Betriebssysteme Tag: 29.01.2002 10:45 14.45 Raum: 1006 Bearbeitungszeit: 4 Stunden Name:... Matr.Nr.:... Punkte:...
MehrEinführung in die technische Informatik
Einführung in die technische Informatik Christopher Kruegel chris@auto.tuwien.ac.at http://www.auto.tuwien.ac.at/~chris Betriebssysteme Aufgaben Management von Ressourcen Präsentation einer einheitlichen
Mehr9. Vorlesung Betriebssysteme
Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 1/39 9. Vorlesung Betriebssysteme Dr. Christian Baun Hochschule Mannheim Fakultät für Informatik wolkenrechnen@gmail.com Dr. Christian
MehrTutorium Rechnerorganisation
Woche 11 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu
MehrÜbung: Algorithmen und Datenstrukturen SS 2007
Übung: Algorithmen und Datenstrukturen SS 2007 Prof. Lengauer Sven Apel, Michael Claÿen, Christoph Zengler, Christof König Blatt 4 Votierung in der Woche vom 21.05.0725.05.07 Aufgabe 9 Waggons rangieren
MehrRüdiger Brause. Betriebssysteme. Grundlagen und Konzepte. Dritte, überarbeitete Auflage Mit 170 Abbildungen. Springer
Rüdiger Brause Betriebssysteme Grundlagen und Konzepte Dritte, überarbeitete Auflage Mit 170 Abbildungen Springer In hal tsverzei c h n is 1 Übersicht...... 1 1.1 Einleitung: Was ist ein Betriebssystem?...
MehrBetriebssysteme BS-H WS 2014/15. Hans-Georg Eßer. Foliensatz H: Zusammenfassung. Dipl.-Math., Dipl.-Inform. v1.0, 2015/01/10
BS-H Betriebssysteme WS 2014/15 Hans-Georg Eßer Dipl.-Math., Dipl.-Inform. Foliensatz H: Zusammenfassung v1.0, 2015/01/10 10.01.2015 Betriebssysteme, WS 2014/15, Hans-Georg Eßer Folie H-1 Übersicht: BS
Mehrbereit (oder Zombie genannt). Normales Ende (exit) und synchrone und asynchrone Signal-Ereignisse, z.b.
Prof. Dr. Michael Jäger FB MNI Lösungsvorschlag zur Klausur Betriebssysteme vom 1.10.2014 Blau gekennzeichnete Textstellen sind beispielhafte Lösungen bzw. Antworten zu den Aufgaben. Rot gekennzeichnete
MehrProbeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
MehrSystemsoftware Praktikum
Praktikum Client-Server-Projekt : Textretrievalsystem Übungsziel: Prozesserzeugung und Interprozesskommunikation unter UNIX / Linux Softwareerstellung im Team In dem Projekt soll eine Client - Server Architektur
MehrUser Level Device Driver am Beispiel von TCP
September 17, 2004 Einleitung Motivation für Userlevel Device Driver Probleme von Userlevel Device Driver Motivation für Userlevel Device Driver Modularität, leichterer Austausch/Erneuerung von Komponenten.
MehrGrundkurs Betriebssysteme
Peter Mandl Grundkurs Betriebssysteme Architekturen, Betriebsmittelverwaltung, Synchronisation, Prozesskommunikation 2., uberarbeitete und aktualisierte Auflage Mit 164 Abbildungen und 6 Tabellen STUDIUM
MehrLinux Prinzipien und Programmierung
Linux Prinzipien und Programmierung Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2014 1 / 28 Kritische Bereiche bei Threads Deadlocks Conditions/Semaphore 2 / 28 Beispiel aus der letzten Vorlesung
MehrVorlesung Betriebssysteme I
1 / 19 Vorlesung Betriebssysteme I Thema 4: Grundlegende Begriffe, Teil 2 Robert Baumgartl 22. November 2016 2 / 19 Begriffe: Schnittstelle beschreibt den statischen Aspekt einer Kommunikationsbeziehung
MehrÜberlegungen beim Entwurf eines Betriebssystems
Überlegungen beim Entwurf eines Betriebssystems Schnelligkeit Schutz und Sicherheit Korrektheit Wartbarkeit Kommerzielle Faktoren Standards und offene Systeme Schnelligkeit Es ist schwierig, Kenngrößen
MehrVirtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44
Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 44 Die Idee Virtuelle Adressen Prozess 1 Speicherblock 0 Speicherblock 1 Speicherblock 2 Speicherblock 3 Speicherblock 4 Speicherblock
Mehr