Betriebssysteme I WS 2017/18. Prof. Dr. Dirk Müller. 10 Kommunikation

Größe: px
Ab Seite anzeigen:

Download "Betriebssysteme I WS 2017/18. Prof. Dr. Dirk Müller. 10 Kommunikation"

Transkript

1 Betriebssysteme I 10 Kommunikation WS 2017/18 Prof. Dr. Dirk Müller

2 WS 2017/18 2/35 Überblick Einführung Klassifikation Kommunikation über eine Datei Kommunikation über eine Pipe Synchronisation durch Signale ausgewählte weitere Ansätze Zusammenfassung

3 WS 2017/18 3/35 Einführung Def.: Kommunikation ist die Übertragung von Daten zwischen Aktivitäten. meist mit Synchronisation (zeitlicher Koordination) Fachbegriff: Interprozesskommunikation (engl. interprocess communication, IPC) viele verschiedene Mechanismen, historisch gewachsen Teilnehmer (mindestens zwei Aktivitäten) benötigen gemeinsam genutzte Ressource Identifikation (Teilnehmer ist da und lebt) bzw. Authentisierung (Nachrichten stammen von diesem Teilnehmer und wurden nicht verändert) der Teilnehmer erforderlich

4 WS 2017/18 4/35 Dateien, Signale, Pipes Sockets, Mailslots Beispiele gemeinsam genutzter Speicher (Shared Memory) Nachrichten, Mailboxen speichereingeblendete Dateien (Memory-mapped File) Semaphore entfernter Prozeduraufruf (Remote Procedure Call, RPC) Clipboard dynamischer Datenaustausch (Dynamic Data Exchange, DDE) Component Object Model (COM)

5 WS 2017/18 5/35 Fragen zur Einteilung und Ziele nur lokal oder verteilt homogen oder heterogen bzgl. der beteiligten Betriebssysteme explizite Auswahl der Teilnehmer durch die Nutzer der Aktivitäten oder implizite Auswahl durch die Aktivitäten selbst allgemein oder spezifisch bzgl. der unterstützten Anwendungen (z. B. Copy & Paste als sehr allgemeine Form) zeitkritisch oder nicht (Overhead) GUI- oder Konsolenanwendung Quelle: [1]

6 WS 2017/18 6/35 Klassifikation Interprozesskommunikation (IPC) Synchronisation Kommunikation speicherbasiert strombasiert nachrichtenbasiert Semaphore Mutexe Monitore Signale Shared Memory Dateien Pipes Stream Sockets Message Passing Message Queues Datagram Sockets

7 WS 2017/18 7/35 Kommunikationsbeziehungen Anzahl der Teilnehmer auf Sender- und Empfängerseite 1-zu-1 1-zu-m n-zu-1 n-zu-m Richtung (Gleichzeitigkeit von Hin- und Rückkanal) unidirektional bidirektional weitere Aspekte lokale vs. entfernte Kommunikation direkte vs. indirekte Kommunikation synchrone vs. asynchrone Kommunikation

8 WS 2017/18 8/35 Synchrone und asynchrone Kommunikation Sendeoperation (send) synchron: Der Sender wartet (blockiert), bis der Empfänger das Datum entgegengenommen hat (implizite Quittung). asynchron: Der Sender setzt nach dem Senden einer Nachricht sofort seine Arbeit fort ( No-Wait-Send, Fire and Forget ). Beispiel: Telegramm Empfangsoperation (receive) synchron: Die Empfangsoperation blockiert den Empfänger so lange, bis das Datum eintrifft. blocking read, synchronous receive asynchron: Der Empfänger liest das Datum, falls etwas empfangen wurde und arbeitet anschließend weiter, auch wenn nichts empfangen wurde. non-blocking read, asynchronous receive beide Seiten synchron: Rendezvous

9 WS 2017/18 9/35 Synchrone vs. asynchrone Operationen synchrone Operationen direkte Zustellung der Daten (ohne Zwischenspeicher) implizite Empfangsbestätigung i. Allg. einfacher zu programmieren standardmäßig arbeiten Kommunikationsoperationen in UNIX/Linux synchron asynchrone Operationen Daten müssen zwischengespeichert werden Vorteil: wenn ein kommunizierender Prozess abbricht, dann wird der Partner nicht unendlich blockiert kein Deadlock (gegenseitige Blockierung infolge fehlerhafter Programmierung) möglich Benachrichtigung des Empfängers u. U. kompliziert; explizite Bestätigung (Acknowledgment) nötig

10 WS 2017/18 10/35 Verbindungsorientierte und verbindungslose Kommunikation verbindungslos nur 1 Phase: Datenübertragung z. B.: Telegramm, User Datagram Protocol (UDP), Internet Protocol (IP), Signal verbindungsorientiert 3 Phasen Aufbau der Verbindung Datenübertragung Abbau der Verbindung Beispiele (analoges) Telefon Transmission Control Protocol (TCP) Pipe

11 WS 2017/18 11/35 Verbindungsarten Unicast 1-zu-1-, also Punkt-zu-Punkt-Verbindung Direktverbindung genau 2 Teilnehmer Multicast 1-zu-m-Verbindung genau 1 Sender mehrere Empfänger, aber nicht alle: Gruppenruf Broadcast 1-zu-m-Verbindung genau 1 Sender alle Empfänger, z. B. eines Subnetzes

12 WS 2017/18 12/35 Kommunikation über eine Datei ältester IPC-Mechanismus Sender schreibt Daten in Datei Empfänger liest Daten aus Datei nachteilig: zweimaliger Zugriff auf Massenspeicher Aber es gibt auch Dateisysteme im RAM. nachteilig: überlappender Zugriff durch Sender und Empfänger, also Synchronisation nötig Lösung: Sperren der Datei (file locking), z. B. mittels lockf() als Schnittstelle zu fcntl() Problem: Sperren setzt Wohlverhalten voraus Gefahr des Aussperrens anderer Interessenten

13 Kommunikation über eine Pipe ( Röhre ) int pipe(int filedes[2]); liefert Feld von zwei Dateideskriptoren zurück (jeweils einer zum Lesen und zum Schreiben) Zugriff wie auf eine Datei: read(), write(), close() kein open(): implizit in pipe() mit enthalten kein lseek(): führt zur Fehlermeldung ESPIPE fd is associated with a pipe, socket, or FIFO. Kommunikationskanal: Byte-Strom kein Konzept von Nachrichtengrenzen Datenübertragung innerhalb eines Prozesses sinnlos?! Woher weiß der Empfänger, dass die Pipe existiert? benannte Pipe aka FIFO (First In First Out) mkfifo() und open() statt pipe() Dirk Müller: Betriebssysteme I WS 2017/18 13/35

14 WS 2017/18 14/35 Erstellung einer Pipe close() close()

15 Eigenschaften einer Pipe unter Linux stets unidirektional für bidirektionale Übertragung unter Linux zwei Pipes nötig manche Systeme unterstützen bidirektionale Pipes, aber kein Verlass darauf (Portabilität, POSIX verlangt nur unidirektionale) keine Synchronisation beim Schreiben Daten werden im Kern gepuffert Schreiboperationen, die weniger als PIPE_BUF (aktuell 4096 B unter Linux, vgl. /usr/include/limits.h) Daten umfassen, müssen atomar erfolgen. Kapazität früher 4096 B, seit sogar B seit Standardgröße 64 KB, flexibel bis 1 MB keine persistente Ressource, verschwindet nach dem letzten close() nur zwischen verwandten Prozessen möglich aber: benannte Pipe (FIFO) zwischen beliebigen Prozessen Dirk Müller: Betriebssysteme I WS 2017/18 15/35

16 Pipe: problematische Situationen Lesen von einer eröffneten Pipe, die keine Daten enthält, blockiert. Wird danach die Schreibseite geschlossen, kehrt read() mit dem Resultat 0 zurück. Leseoperation aus Pipe mit ungültigem Dateideskriptor liefert Fehler: EBADF fd is not a valid file descriptor or is not open for reading. Leseoperation aus Pipe, die nach Schreibvorgang geschlossen wurde: liefert zunächst Daten, dann 0 als Resultat, also EOF Schreiboperation auf Pipe, deren Leseseite geschlossen ist, liefert Signal SIGPIPE an den schreibenden Prozess Prozess(e) enden mit eröffneter Pipe: Dateideskriptoren werden bei Prozessbeendigung automatisch geschlossen Dirk Müller: Betriebssysteme I WS 2017/18 16/35

17 WS 2017/18 17/35 Anwendung: Pipe-Operator in der Shell Syntax: <Sender> <Empfänger> häufig Leerzeichen davor und danach zur besseren Lesbarkeit Semantik: Verknüpfung der stdout des Senders mit der stdin des Empfängers Beispiel ls -la head -n10 zeigt die (alphabetisch, da Std.-Sortierung bei ls) ersten 7 Dateien im akt. Verzeichnis an (und insgesamt <Blöcke>,. und..) äquivalente IPC über eine (temporäre) Datei ls -la > mytmp head -n10 < mytmp rm mytmp Löschen der temporären Datei als Abschluss head -n10 mytmp würde auch funktionieren eigentlich vorher noch Test auf Existenz der Datei, um nichts zu überschreiben

18 Signale einfaches Mittel zur Synchronisation zwischen Prozessen bzw. BS und Prozessen Übermittlung einer Ganzzahl, ohne dass ein Prozess aktiv beteiligt ist (Betriebssystem als Postbote) typische verfügbare Anzahl: 32 oder 64 in etwa als ein Software-Interrupt anzusehen auf der BS-Kernel-Ebene, nicht auf der CPU-Ebene Generierung Zustellung Behandlung jedes Signal mit Nummer, Name, Default-Aktion nur symbolischer Wert (Name) sichert Portabilität Liste mittels kill -l anzeigen lassen meist (aber nicht immer) keine Nutzdatenübertragung Verwandtschaft der Partner ist nicht nötig, aber Rechte Dirk Müller: Betriebssysteme I WS 2017/18 18/35

19 WS 2017/18 19/35 Signale: Prinzipieller Ablauf 1. Sende-Prozess generiert ein Signal 2. System stellt das Signal dem Empfänger-Prozess zu 3. falls Empfänger Signalhandler installiert hat: Aufruf des Signalhandlers (asynchron zur Programmausführung) 4. falls kein Signalhandler installiert: Ausführung der Default-Aktion

20 WS 2017/18 20/35 Default-Aktionen Term Abbruch des Prozesses Ign Ignorieren des Signals Core Abbruch des Prozesses und schreiben eines Coredumps (Speicherauszugs) auf die Festplatte Stop Anhalten des Prozesses Cont Fortsetzen des Prozesses nachdem er angehalten wurde Quelle: [2]

21 POSIX-Signale (Auswahl) Name Wert Default-Aktion Semantik bzw. Trigger SIGHUP 1 Abbruch Beenden aller Proz. im Terminal (Hangup) SIGINT 2 Abbruch <Ctrl>+<C> SIGILL 4 Coredump illegale Instruktion SIGKILL 9 Abbruch sofortiges (unsauberes) Beenden SIGSEGV 11 Coredump Segmentierungsfehler SIGPIPE 13 Abbruch Schreiben in eine ungeöffnete Pipe SIGTERM 15 Abbruch sauberes Beenden SIGCHLD 20,17,18 Ignorieren Statusänderung eines Sohn-Prozesses SIGSTOP 17,19,23 Stopp Anhalten des Prozesses SIGTSTP 18,20,24 Stopp <Ctrl>+<Z> SIGCONT 19,18,25 Fortsetzen Fortsetzen eines angehaltenen Prozesses Quelle: [2] Dirk Müller: Betriebssysteme I WS 2017/18 21/35

22 WS 2017/18 22/35 Senden von Signalen: von der Kommandozeile und per Tastatur Bash-Beispiele kill -9 $$ Selbstmord kill -9 $! Kindermord SIGTERM wird bei fehlender Angabe eines Signals angenommen Tastatur SIGINT <Ctrl>+<C> SIGQUIT <Ctrl>+<4> oder <Ctrl>+<\> SIGTSTP <Ctrl>+<Z>

23 WS 2017/18 23/35 signalhandler.sh #!/bin/bash trap 'echo "<Ctrl>+<C> gedrückt. Na fein."' SIGINT trap 'echo "<Ctrl>+<Z> gedrückt. Mach ruhig weiter so..."' SIGTSTP trap 'echo "Auch SIGQUIT kann mir nichts anhaben."' SIGQUIT echo "Entering loop" while true do echo -n done exit 0 Handler wird asynchron angesprungen, ausgeführt, und es wird am Unterbrechungspunkt fortgesetzt. Handler darf nur (externe) Kommandos enthalten, keine Bash-Instruktionen.

24 WS 2017/18 24/35 Signale in C: Senden und Auslösen #include <signal.h> int kill(pid_t pid, int sig); Senden eines Signals an einen Prozess vor dem Senden Prüfung, ob Rechte für die Signalübermittlung vorliegen Spezifikation des Signals über Name oder Nummer pid == -1 bedeutet, dass das Signal an alle Prozesse geschickt wird, für die der Benutzer das entsprechende Recht hat. Vorsicht! künstliche Signalauslösung im eigenen Prozess raise(sig); als Kurzform für kill(getpid(), sig); kill(-1, 9) ist zwar kurz, aber gefährlich.

25 WS 2017/18 25/35 Behandlung eines Signals beim Empfänger nichtabfangbares Signal (SIGKILL, SIGSTOP) Die zugeordnete Aktion, also Abbruch bzw. Stopp, wird ausgeführt. abfangbares Signal: falls kein Signalhandler installiert: zugeordnete Default-Aktion aus der Menge {Abbruch, Stopp, Ignorieren, Coredump, Fortsetzen} ausführen falls entsprechender Handler installiert: Handler wird (asynchron zur Programmausführung) aufgerufen. Anmerkung Ein abfangbares Signal kann auch ignoriert werden, entspricht dann einem leeren Handler.

26 WS 2017/18 26/35 Signale in C: Handler installieren #include <signal.h> typedef void (*sighandler_t)(int); sighandler_t signal(int signum, sighandler_t handler); Signal und Handler werden (als Funktionszeiger) übergeben anstelle eines konkreten Handlers auch möglich SIG_IGN Signal wird ignoriert SIG_DFL Default-Aktion wird (wieder) eingerichtet Rückgabe SIG_ERR im Fehlerfall ansonsten Zeiger auf den Handler SIGKILL und SIGSTOP nicht abfangbar, Verhalten bleibt also immer bei entsprechender Default-Aktion

27 signalhandler.c #include <signal.h> #include <stdio.h> #include <stdlib.h> long inc = 1; static void ctrl_c_handler(int c) { inc *= -1; } Trigger ist <Ctrl>+<C> auf der Tastatur, da das Signal SIGINT abgefangen wird. sehr kurzer Handler int main() { long count; } if (signal(sigint, ctrl_c_handler) == SIG_ERR) { perror("signal"); exit(exit_failure); } // output count continuously for (count=0;;count+=inc) { printf("%08li\n", count); } return EXIT_SUCCESS; ändert nur das Vorzeichen des Inkrements Wechsel zwischen Inkrement und Dekrement Effekt: Wechsel zwischen Hoch- und Runterzählen Dirk Müller: Betriebssysteme I WS 2017/18 27/35

28 #include <signal.h> #include <unistd.h> #include <stdio.h> #include <stdlib.h> static void alarm_handler(int c) { printf("alarm!\n"); } alarm() und pause() int main() { if (signal(sigalrm, alarm_handler) == SIG_ERR) { perror("signal"); exit(exit_failure); } alarm(10); pause(); return EXIT_SUCCESS; } Merke: Erst Wecker stellen, dann sich schlafen legen! #include <unistd.h> unsigned int alarm(unsigned int seconds); int pause(void); alarm() stellt Kurzzeitwecker so, dass er in seconds s das Signal SIGALRM im Prozess auslöst. pause() kehrt erst zurück, wenn Signal empfangen. Dirk Müller: Betriebssysteme I WS 2017/18 28/35

29 Timing-Problem mit traditionellen Signalen (Race Condition) #include <unistd.h> #include <stdio.h> #include <stdlib.h> #include <signal.h> int flag = 0; static void handler(int c) { flag = 1; } int main() { signal(sigint, handler); while (flag == 0) { } raise(sigint); pause(); <Ctrl>+<C> simuliert printf("flag = %d\n", flag); return EXIT_SUCCESS; Ziel: Signal soll ignoriert, aber mittels flag protokolliert werden läuft fast immer korrekt bei Signalzustellung nach (flag == 0), aber vor pause(): Warten auf weiteres Signal => verlorenes Signal! Grund: nicht atomar sigsuspend() nutzen! Quellen: } [2][3][4] trotzdem nicht erreicht Dirk Müller: Betriebssysteme I WS 2017/18 29/35

30 WS 2017/18 30/35 Nachteile traditioneller Signale unzuverlässig, auch die neueren POSIX reliable signals bei Einrichtung mit signal() können verloren gehen (Timing-Probleme) können nicht verzögert (blockiert) werden also keine vollständige Kontrolle keine Nutzdatenübertragung keine Priorisierung keine Speicherung (in Warteschlangen) POSIX real-time signals können dies alles. modernere, aber kompliziertere Signalbehandlung mit sigaction(), sigprocmask(), sigsuspend(), sigqueue() etc. Quellen: [2][3]

31 Gemeinsam genutzter Speicher (Shared Memory) Idee: Kommunikation über gemeinsamen Speicher keine implizite Synchronisation (!) ohne Adressräume problemlos implementierbar bei virtuellem Speicher Funktionen des BS nötig Anlegen des Segmentes Einblenden in beide Adressräume (Datenübertragung) Ausblenden aus allen Adressräumen Zerstören des Segments Zugriff auf gemeinsam genutzten Speicher über Zeiger und überlagerte Datenstrukturen (=> effizient) kein Systemruf nötig UNIX: shmget(), shmat(), shmdt(), shmctl(), ipcrm() Segmente i. d. R. persistent (überleben den Prozess) Dirk Müller: Betriebssysteme I WS 2017/18 31/35

32 WS 2017/18 32/35 Nachrichtenaustausch (Message Passing) Prinzip 1. Sender konstruiert Nachricht und trägt diese in einen Puffer ein 2. Sender ruft Funktion send() 3. Nachricht wird durch das System transportiert 4. Empfänger ruft Funktion receive(), der er einen Puffer übergibt, in den die Nachricht kopiert wird Analogie: Briefsendung

33 WS 2017/18 33/35 Nachrichtenaustausch (Message Passing) Diskussion notwendig, wenn kein gemeinsamer Speicher existiert (z. B. in verteilten Systemen) jedoch auch mit gemeinsamem Speicher möglich (z. B. lokal unter UNIX/Linux) zwei grundlegende Operationen: send(), receive() synchrone und asynchrone Operation möglich Beispiele Message Passing Interface (MPI) Nachrichtenwarteschlangen POSIX: msgrcv(), msgsnd() etc. Mailboxes Mailslots

34 WS 2017/18 34/35 Zusammenfassung Kommunikation als Übertragung von Daten zwischen Aktivitäten, meist mit Synchronisation verbunden Dateien speicherbasiert: einfach, aber langsam und Synchronisation mittels Sperren nötig, Wohlverhalten nötig Pipes strombasiert: schnell und flexibel, atomares Schreiben möglich; nur zwischen verwandten Prozessen Signale zur Synchronisation Verwandtschaft nicht nötig, aber Rechte müssen vorliegen in traditioneller Form keine Nutzdaten in traditioneller Form mit signal() unzuverlässig auch Zeitsignale (Wecker) mit alarm() und pause() möglich fast alle Signale (außer SIGKILL und SIGSTOP) abfangbar Handler über das Setzen von Funktionspointern einzurichten

35 WS 2017/18 35/35 Literatur [1] Microsoft MSDN, > Develop > Desktop technologies > System Services > Interprocess Communications (Windows), 2016, Download am , [2] SIGNAL(7), Linux Programmer's Manual, Download am , [3] Baris Simsek: Signale, 2005, Download am , [4] Damian Pietras: Linux Programming Blog, All about Linux signals, , Download am ,

Vorlesung Betriebssysteme I

Vorlesung 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

Mehr

Einige Gedanken. Vorlesung Betriebssysteme I. Kategorisierung von IPC-Mechanismen. Beispiele für IPC-Mechanismen (Auswahl)

Einige Gedanken. Vorlesung Betriebssysteme I. Kategorisierung von IPC-Mechanismen. Beispiele für IPC-Mechanismen (Auswahl) Einige Gedanken Vorlesung Betriebssysteme I Thema 6: Kommunikation Robert Baumgartl 1. Dezember 2015 Kommunikation = Übertragung von Informationen zwischen Aktivitäten meist mit Synchronisation (d. h.,

Mehr

Kommunikation von Prozessen und Threads

Kommunikation 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

Mehr

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN UNIX/Linux-Interprozesskommunikation 8. UNIX/Linux-Signale Wintersemester 2015/16 UNIX/Linux-IPC-Mechanismen Nachrichtenbasierter Informationsaustausch: 5. 1.

Mehr

Verbessertes Konzept: Monitore

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

Mehr

A Kompilieren des Kernels... 247. B Lineare Listen in Linux... 251. C Glossar... 257. Interessante WWW-Adressen... 277. Literaturverzeichnis...

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

Mehr

Architektur Verteilter Systeme Teil 6: Interprozess-Kommunikation

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

Mehr

Linux Prinzipien und Programmierung

Linux Prinzipien und Programmierung Linux Prinzipien und Programmierung Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2014 1 / 28 2 / 28 Motivation für Betrachten Sie folgendes Programm: #include #include

Mehr

Kernel. G.2 Rechenzeiterfassung (2) G.2 Rechenzeiterfassung. G.1 Überblick. 1 Kommunikation zwischen Prozessen. Prototyp. Besprechung 3.

Kernel. G.2 Rechenzeiterfassung (2) G.2 Rechenzeiterfassung. G.1 Überblick. 1 Kommunikation zwischen Prozessen. Prototyp. Besprechung 3. G 5. Übung G 5. Übung G.2 Rechenzeiterfassung (2) G.2 Rechenzeiterfassung G.1 Überblick Besprechung 3. Aufgabe Rechenzeiterfassung #include clock_t times(struct tms *buf); POSIX-Signale tms

Mehr

Systemprogrammierung I - Aufgaben zur Erlangung der Klausurzulassung für Informatiker und Wirtschaftsinformatiker

Systemprogrammierung I - Aufgaben zur Erlangung der Klausurzulassung für Informatiker und Wirtschaftsinformatiker Systemprogrammierung I - Aufgaben zur Erlangung der Klausurzulassung für Informatiker und Nachfolgend finden Sie die drei Aufgaben, die Sie als Zulassungsvoraussetzung für die Scheinklausur am 18.7.2001

Mehr

2. Prozesssynchronisation

2. Prozesssynchronisation Tafelübung zu BSRvS1 2. Prozesssynchronisation Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/teaching/ss2008/bsrvs1/exercises/

Mehr

Kernel. Prototyp. Besprechung 3. Aufgabe (printdir) Rechenzeiterfassung von Prozessen. POSIX-Signale. tms Datenstruktur

Kernel. Prototyp. Besprechung 3. Aufgabe (printdir) Rechenzeiterfassung von Prozessen. POSIX-Signale. tms Datenstruktur 35 Überblick über die 7. Übung Überblick über die 7. Übung 36 Rechenzeiterfassung (2) Rechenzeiterfassung Besprechung 3. Aufgabe (printdir) Rechenzeiterfassung von Prozessen POSIX-!!! Änderung von Aufgabe

Mehr

Betriebssysteme. 4y Springer. Eine kompakte Einführung mit Linux. Albrecht Achilles. Mit 31 Abbildungen

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

Mehr

Inhaltsverzeichnis. 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: 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

Mehr

Rechnerarchitektur und Betriebssysteme (CS201): Semaphor, Monitor, Deadlocks, Re-Entrance

Rechnerarchitektur 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

Mehr

Interprozesskommunikation

Interprozesskommunikation Interprozesskommunikation Inhalt 1. Überblick... 2 2. Pipes... 5 3. Fifo...22 3.1. Übung IPC-2...39 Unix für Entwickler: Interprozesskommunikation Prof Dr. Alois Schütte 1/40 1. Überblick Hier werden die

Mehr

Systemprogrammierung.: unter Linux :.

Systemprogrammierung.: unter Linux :. Systemprogrammierung.: unter Linux :. Einführung in Linux 1. Das Filesystem 2. Prozesse 3. Unix Tools 4. Die Shell 1. Das Filesystem 1.1 Dateien 1.2 Ordner 1.3 Links 1.1 Dateien Alles im Filesystem sind

Mehr

Interprozesskommunikation IPC

Interprozesskommunikation 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

Mehr

PROGRAMMIEREN MIT UNIX/Linux-SYSTEMAUFRUFEN

PROGRAMMIEREN MIT UNIX/Linux-SYSTEMAUFRUFEN PROGRAMMIEREN MIT UNIX/Linux-SYSTEMAUFRUFEN UNIX/Linux-Interprozesskommunikation, zugehörige Systemaufrufe und Kommandos 7. UNIX/Linux-Shared Memory 8. (Benannte) Pipes UNIX/Linux-IPC-Mechanismen Nachrichtenbasierter

Mehr

Vorlesung Betriebssysteme I

Vorlesung 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

Betriebssysteme Kap A: Grundlagen

Betriebssysteme Kap A: Grundlagen Betriebssysteme Kap A: Grundlagen 1 Betriebssystem Definition DIN 44300 Die Programme eines digitalen Rechensystems, die zusammen mit den Eigenschaften dieser Rechenanlage die Basis der möglichen Betriebsarten

Mehr

Speicherbasierte Kommunikation (T) Realisierung von Semaphoren (T) Shared Memory (P) Synchronisation mittels Semaphoren (P)

Speicherbasierte 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

Mehr

Domänenmodell: Fadenkommunikation und -synchronisation

Domä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

Mehr

Programmieren von UNIX-Netzen

Programmieren von UNIX-Netzen W. R. Stevens Programmieren von UNIX-Netzen Grundlagen, Programmierung, Anwendung aus dem Englischen übersetzt von Michael Frese, Werner Maisch, Eberhard Trautwein Eine Coedition der Verlage Carl Hanser

Mehr

Betriebssysteme (BTS)

Betriebssysteme (BTS) 4. Übungsstunde Betriebssysteme (BTS) Christian Baun cray@unix-ag.uni-kl.de Hochschule Mannheim Fakultät für Informatik Institut für Betriebssysteme 27.+28.4.2007 Wiederholung vom letzten Mal Prozesse

Mehr

Betriebssysteme (BTS)

Betriebssysteme (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

Mehr

Interprozesskommunikation (IPC)

Interprozesskommunikation (IPC) Gliederung 1. Einführung und Übersicht 2. Prozesse und Threads 3. Interrupts Interprozesskommunikation (IPC) 4. Scheduling 5. Synchronisation 6. Interprozesskommunikation 7. Speicherverwaltung IPC Cl.

Mehr

Nebenläufigkeit. Fakultät für Informatik der Technischen Universität München. Echtzeitsysteme Lehrstuhl Informatik VI Robotics and Embedded Systems

Nebenläufigkeit. Fakultät für Informatik der Technischen Universität München. Echtzeitsysteme Lehrstuhl Informatik VI Robotics and Embedded Systems Nebenläufigkeit Interprozesskommunikation (IPC) 197 Interprozesskommunikation Notwendigkeit der Interprozesskommunikation Prozesse arbeiten in unterschiedlichen Prozessräumen oder sogar auf unterschiedlichen

Mehr

DBUS Interprozess-Kommunikation für Embedded-Plattformen

DBUS 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

Mehr

Tafelübung zu BS 4. Interprozesskommunikation

Tafelübung zu BS 4. Interprozesskommunikation Tafelübung zu BS 4. Interprozesskommunikation Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/

Mehr

Netzwerkprogrammierung

Netzwerkprogrammierung Seminarvortrag Netzwerkprogrammierung Referent: Stefan Renner E-Mail: rennersn@studi.informatik.uni-stuttgart.de Motivation Einsatz von Netzwerken: Physikalische Ressourcen gemeinsam nutzen Daten unabhängig

Mehr

Aufgabe 1: Interprozesskommunikation In der Vorlesung wurden zentrale Aspekte von grundlegenden Kommunikationsmustern vorgestellt.

Aufgabe 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

Mehr

Konzepte von Betriebssystemkomponenten. Gerätetreiber. Mario Körner

Konzepte 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

Mehr

Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition)

Klausurvorbereitung 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

Mehr

Inhaltsverzeichnis XII

Inhaltsverzeichnis 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

Mehr

Einführung in die Systemprogrammierung unter Linux

Einführung in die Systemprogrammierung unter Linux Einführung in die Systemprogrammierung unter Linux Systemsoftware Praktikum Inhalt Übersicht über benötigte Systemfunktionen Programmieren unter Linux Grundlegendes Message-Queue Shared Memory Semaphore

Mehr

3. Grundlagen der Systemprogrammierung

3. Grundlagen der Systemprogrammierung 3.1 Betriebssysteme Zum täglichen Umgang des Systemprogrammierers gehört in erster Linie das Betriebssystem des Rechners, mit dem er arbeitet. Es ist daher selbstverständlich, daß er sich einen guten Einblick

Mehr

Geräte Treiber unter Unix/Linux

Geräte Treiber unter Unix/Linux Geräte Treiber unter Unix/Linux Martin Schäf 7. Oktober 2004 1 Einleitung Die Programmierung von Geräte Treibern unter Linux ist ein sehr populäres Thema, da für viele Geräte keine, oder nur sehr primitive

Mehr

^ Springer Vi eweg. Grundkurs Betriebssysteme. Synchronisation, Prozesskommunikation, Virtualisierung. Architekturen, Betriebsmittelverwaltung,

^ 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

Mehr

Grundkurs Betriebssysteme

Grundkurs 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

Mehr

Linux-Kernel- Programmierung

Linux-Kernel- Programmierung Michael Beck, Harald Böhme, Mirko Dziadzka, Ulrich Kunitz, Robert Magnus, Dirk Verworner Linux-Kernel- Programmierung Algorithmen und Strukturen der Version 1.0 ADDISON-WESLEY PUBLISHING COMPANY Bonn Paris

Mehr

Parallele Prozesse. Prozeß wartet

Parallele 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:

Mehr

Systemprogrammierung unter Linux eine Einführung S. 1

Systemprogrammierung unter Linux eine Einführung S. 1 Systemprogrammierung unter Linux eine Einführung S. 1 Inhaltsverzeichnis 1 Übersicht der Systemfunktionen ( system calls )...2 1.1 Grundliegende Systemcalls...2 Erfragen der PID des laufenden Prozesses...2

Mehr

Echtzeitprogrammierung und Echtzeitverhalten von Keil RTX. Frank Erdrich Semester AI 7

Echtzeitprogrammierung und Echtzeitverhalten von Keil RTX. Frank Erdrich Semester AI 7 Echtzeitprogrammierung und Echtzeitverhalten von Frank Erdrich Semester AI 7 Inhalt Einleitung Echtzeit und Echtzeitsysteme Echtzeitprogrammierung Real-Time Operating System Keil RTOS RTX Zusammenfassung

Mehr

bereit (oder Zombie genannt). Normales Ende (exit) und synchrone und asynchrone Signal-Ereignisse, z.b.

bereit (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

Mehr

1.) Nennen Sie Aufgaben und mögliche Dienste der Transportschicht (Transport Layer) des ISO/OSI-Schichtenmodells.

1.) Nennen Sie Aufgaben und mögliche Dienste der Transportschicht (Transport Layer) des ISO/OSI-Schichtenmodells. Übung 7 1.) Nennen Sie Aufgaben und mögliche Dienste der Transportschicht (Transport Layer) des ISO/OSI-Schichtenmodells. 2.) Charakterisieren Sie kurz das User Datagram Protokoll (UDP) aus der Internetprotokollfamilie

Mehr

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/2013. WebSphere MQ Teil 3

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/2013. WebSphere MQ Teil 3 UNIVERSITÄT LEIPZIG Enterprise Computing Einführung in das Betriebssystem z/os Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/2013 WebSphere MQ Teil 3 Trigger el0100 Copyright W. G. Spruth,

Mehr

Linux Prinzipien und Programmierung

Linux Prinzipien und Programmierung Linux Prinzipien und Programmierung Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2014 1 / 25 2 / 25 Pipes Die Bash kennt drei Standard-Dateideskriptoren: Standard In (stdin) Standard-Eingabe,

Mehr

Robotersteuerung. VL Mikrorechentechnik 2. SS 2013 Professur für Prozessleittechnik

Robotersteuerung. VL Mikrorechentechnik 2. SS 2013 Professur für Prozessleittechnik Robotersteuerung VL Mikrorechentechnik 2 SS 2013 Professur für Prozessleittechnik Übersicht Design eines endlichen Zustandsautomaten für die Steuerung eines Roboters C++ Konzepte: shared memory boost::interprocess

Mehr

USB I2C Spy V1.0 Manual

USB I2C Spy V1.0 Manual USB I2C Spy V1.0 Manual (Preliminary) Coptonix GmbH Luxemburger Str. 31 D 13353 Berlin Phone: +49 (0)30 61 74 12 48 Fax: +49 (0)30 61 74 12 47 www.coptonix.com support@coptonix.com 2 Installation des USB

Mehr

Was ist ein Prozess?

Was ist ein Prozess? Prozesse unter UNIX Definition Was ist ein Prozess? Zeitliche Abfolge von Aktionen Ein Programm, das ausgeführt wird Prozesshierachie Baumstruktur INIT-Prozess ist die Wurzel (pid=1) und wird beim Booten

Mehr

Systemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun. Übungsklausur

Systemsoftware (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

Mehr

Shell-Scripting Linux-Kurs der Unix-AG

Shell-Scripting Linux-Kurs der Unix-AG Shell-Scripting Linux-Kurs der Unix-AG Andreas Teuchert 8. Juli 2014 Was ist ein Shell-Script? Aneinanderreihung von Befehlen, die ausgeführt werden Bedingte und wiederholende Ausführung möglich Nützlich

Mehr

UNIX - LINUX. Prozesse. Überblick. Prozesse: Start. Prozesszustände. Prozesskontrollblock (Prozesssteuerblock) Prozesszustände

UNIX - LINUX. Prozesse. Überblick. Prozesse: Start. Prozesszustände. Prozesskontrollblock (Prozesssteuerblock) Prozesszustände Überblick UNIX - LINUX Prozesse Prozesse sind neben Dateien das zweite wichtige Grundkonzept von UNIX Definition: Ein Prozess ist ein Programm in Ausführung Prozesse und Dateien Prozesse werden aus Programm-Dateien

Mehr

Netzwerke. Netzwerk-Programmierung. Sven Hartmeier.

Netzwerke. Netzwerk-Programmierung. Sven Hartmeier. Netzwerk-Programmierung Netzwerke Sven Hartmeier shartmei@techfak.uni-bielefeld.de Übersicht Netzwerk-Protokolle Protokollfamilie TCP/IP Transmission Control Protocol (TCP) erste Schritte mit sockets Netzwerk-Programmierung

Mehr

Vortrag zum Seminar Konzepte und Techniken virtueller Maschinen und Emulatoren. Bruno Kleinert fuddl@gmx.de. 20. Juni 2007

Vortrag 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

Mehr

Advanced Programming in C

Advanced Programming in C Advanced Programming in C Pointer und Listen Institut für Numerische Simulation Rheinische Friedrich-Wilhelms-Universität Bonn Oktober 2013 Überblick 1 Variablen vs. Pointer - Statischer und dynamischer

Mehr

Dienstspezifikation nach RFC 2396 193

Dienstspezifikation nach RFC 2396 193 Dienstspezifikation nach RFC 2396 193 Für die Kombination aus Rechnernamen (oder alternativ einer IP-Adresse) und einer Portnummer gibt es mit RFC 2396 einen Standard: hostport host [ : port ] host hostname

Mehr

Die Architektur von UNIX/Linux- Betriebssystemen. Mag. Lukas Feiler, SSCP lukas.feiler@lukasfeiler.com http://www.lukasfeiler.

Die Architektur von UNIX/Linux- Betriebssystemen. Mag. Lukas Feiler, SSCP lukas.feiler@lukasfeiler.com http://www.lukasfeiler. Die Architektur von UNIX/Linux- Betriebssystemen Mag. Lukas Feiler, SSCP lukas.feiler@lukasfeiler.com http://www.lukasfeiler.com/lectures_brg9 1977: Berkeley Software Distribution/BSD (U.C. Berkeley) 1986:

Mehr

Systemnahe Programmierung in C/C++

Systemnahe Programmierung in C/C++ Systemnahe Programmierung in C/C++ Interprozesskommunikation (IPC) Knut Stolze stolze@informatik.uni-jena.de Lehrstuhl für Datenbanken und Informationssysteme Fakultät für Mathematik und Informatik 2006

Mehr

Was machen wir heute? Betriebssysteme Tutorium 10. Frage 10.1.a. Frage 10.1.a

Was machen wir heute? Betriebssysteme Tutorium 10. Frage 10.1.a. Frage 10.1.a Was machen wir heute? Betriebssysteme Tutorium 10 Philipp Kirchhofer philipp.kirchhofer@student.kit.edu http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität Karlsruhe (TH) 1

Mehr

Transmission Control Protocol (TCP)

Transmission Control Protocol (TCP) Transmission Control Protocol (TCP) Verbindungsorientiertes Protokoll, zuverlässig, paketvermittelt stream-orientiert bidirektional gehört zur Transportschicht, OSI-Layer 4 spezifiziert in RFC 793 Mobile

Mehr

Tafelübung zu BS 1. Prozesse verwalten

Tafelübung zu BS 1. Prozesse verwalten Tafelübung zu BS 1. Prozesse verwalten Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/ http://ess.cs.tu-dortmund.de/de/teaching/ss2013/bs/

Mehr

Programmieren in C Signale, Bitfelder, Unionen Fehler, Debugging, Profiling

Programmieren in C Signale, Bitfelder, Unionen Fehler, Debugging, Profiling Programmieren in C Signale, Bitfelder, Unionen Fehler, Debugging, Profiling Hochschule Fulda FB AI Wintersemester 2014/15 http://c-ai.rz.hs-fulda.de Peter Klingebiel, HS Fulda, DVZ Signale 1 Signal Systemnachricht

Mehr

TCP/UDP. Transport Layer

TCP/UDP. Transport Layer TCP/UDP Transport Layer Lernziele 1. Wozu dient die Transportschicht? 2. Was passiert in der Transportschicht? 3. Was sind die wichtigsten Protkolle der Transportschicht? 4. Wofür wird TCP eingesetzt?

Mehr

RTOS Einführung. Version: Datum: Autor: Werner Dichler

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

Mehr

PThreads. Pthreads. Jeder Hersteller hatte eine eigene Implementierung von Threads oder light weight processes

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

Linux - a bit advanced

Linux - a bit advanced Linux - a bit advanced Überblick Rechteverwaltung Dateisystem Shell-Programmierung Remote login Paketsystem Alternativen-System Rechte Drei Benutzerklassen Owner/User Group Others Drei Rechte Ausführen

Mehr

WS Parallele Prozesse. Prof. Hannelore Frank. Parallele Prozesse. PetriNetze. Synchronisation UNIX. Wettbewerb PC Krit.Abschnitt Spinlocks

WS 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

Mehr

Linux Prinzipien und Programmierung

Linux Prinzipien und Programmierung Linux Prinzipien und Programmierung Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2010/2011 1 / 18 2 / 18 fork und Daten Nach dem fork teilen sich Eltern- und Kindprozess zwar den Programmbereich

Mehr

stattdessen: geräteunabhängiges, abstraktes Format für Speicherung und Transfer von Daten Datei

stattdessen: geräteunabhängiges, abstraktes Format für Speicherung und Transfer von Daten Datei Dateiverwaltung Dateiverwaltung 2002 Prof. Dr. Rainer Manthey Informatik II 1 Dateien weitere zentrale Aufgabe des Betriebssystems: "Verbergen" der Details der Struktur von und der Zugriffe auf Sekundärspeicher-Medien

Mehr

Betriebssysteme 1. Thomas Kolarz. Folie 1

Betriebssysteme 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

Mehr

FILE *fp; char fname[100];... fp = fopen (fname, rb ); if( fp == NULL ) { perror( fopen );... } // Fehlernachricht auf letzten Fehler, der aufkam

FILE *fp; char fname[100];... fp = fopen (fname, rb ); if( fp == NULL ) { perror( fopen );... } // Fehlernachricht auf letzten Fehler, der aufkam Aktuelle Fileposition ermitteln long pos; pos=ftell(fp); //aktuelle Bytenummer Filelaenge in Bytes fseek(fp,0,seek_end); pos=ftell(fp); Fileendeerkennung int rc; rc = feof (fp) //!= 0 bei Fileende // ==

Mehr

Einführung in UNIX 1. Das Betriebssystem UNIX ist fähig, mehrere Aufgaben scheinbar gleichzeitig zu erledigen. Dies wird mit Multitasking bezeichnet.

Einführung in UNIX 1. Das Betriebssystem UNIX ist fähig, mehrere Aufgaben scheinbar gleichzeitig zu erledigen. Dies wird mit Multitasking bezeichnet. Einführung in UNIX 1 7 Prozesse Das Betriebssystem UNIX ist fähig, mehrere Aufgaben scheinbar gleichzeitig zu erledigen. Dies wird mit Multitasking bezeichnet. Auf einem UNIX-Rechner können hundert oder

Mehr

SHELL WE BEGIN? EINE EINFÜHRUNG IN DIE SHELL. Max Rosin - ANKÜNDIGUNGEN

SHELL WE BEGIN? EINE EINFÜHRUNG IN DIE SHELL. Max Rosin - ANKÜNDIGUNGEN SHELL WE BEGIN? EINE EINFÜHRUNG IN DIE SHELL Max Rosin - mrosin@freitagsrunde.org ANKÜNDIGUNGEN lists.freitagsrunde.org/mailman/listinfo/fopen freitagsrunde.org/techtalks 1 WAS MACHEN WIR HEUTE? Was ist

Mehr

2. Hintergrundverarbeitung in Android: Services und Notifications

2. Hintergrundverarbeitung in Android: Services und Notifications 2. Hintergrundverarbeitung in Android: Services und Notifications Übersicht 2. Hintergrundverarbeitung in Android: Services und Notifications Übersicht: In Mobis 1: Threads; hier genauerer Blick auf Services

Mehr

Übung zu Grundlagen der Betriebssysteme. 10. Übung 18.12.2012

Ü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)

Mehr

Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming

Betriebssysteme Ü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

Mehr

U6-1 Organisatories. U6-2 Motivation von Threads. U6-3 Vergleich von Thread-Konzepten. Organisatorisches

U6-1 Organisatories. U6-2 Motivation von Threads. U6-3 Vergleich von Thread-Konzepten. Organisatorisches U6 6. Übung U6 6. Übung U6-1 Organisatories U6-1 Organisatories Organisatorisches Zusätzliche Tafelübung zur S1-Klaurvorbereitung Besprechung Aufgabe 5 (crawl) OSIX-Threads Motivation Thread-Konzepte am

Mehr

Parallelverarbeitung mit Ruby

Parallelverarbeitung mit Ruby Fachhochschule Wiesbaden - Fachbereich DCSM Parallelverarbeitung mit Ruby Prozess-Ebene Multithreading 04.12.2008 2003, 2008 H. Werntges, FB Design Informatik Medien (DCSM), FH Wiesbaden 1 Fachhochschule

Mehr

Systemnahe Software WS 2006/2007

Systemnahe Software WS 2006/2007 Systemnahe Software WS 2006/2007 Andreas F. Borchert Universität Ulm 5. Februar 2007 Konkurrierende Zugriffe Prinzipiell erlaubt Unix den konkurrierenden Zugriff mehrerer Prozesse auf die gleiche Datei.

Mehr

Themen. Dienste der Transportschicht. 3-Wege-Handshake. TCP-Protokoll-Header. Real-Time-Protocol

Themen. Dienste der Transportschicht. 3-Wege-Handshake. TCP-Protokoll-Header. Real-Time-Protocol Themen Dienste der 3-Wege-Handshake TCP-Protokoll-Header Real-Time-Protocol Dienste der Fehlerüberwachung Steuerung der Reihenfolge Wie kann eine korrekte Paket-Übertragung garantiert werden? Wie kann

Mehr

Multiuser Client/Server Systeme

Multiuser Client/Server Systeme Multiuser /Server Systeme Christoph Nießner Seminar: 3D im Web Universität Paderborn Wintersemester 02/03 Übersicht Was sind /Server Systeme Wie sehen Architekturen aus Verteilung der Anwendung Protokolle

Mehr

Einführung in die Angewandte Bioinformatik

Einführung in die Angewandte Bioinformatik Einführung in die Angewandte Bioinformatik Kurzeinführung in Unix und verwandte Betriebssysteme Webseite zur Vorlesung http://bioinfo.wikidot.com/ Sprechstunde Mo 16-17 in OH14, R214 Sven.Rahmann -at-

Mehr

Embedded-Linux-Seminare. Linux als Betriebssystem

Embedded-Linux-Seminare. Linux als Betriebssystem Embedded-Linux-Seminare Linux als Betriebssystem http://www.embedded-linux-seminare.de Diplom-Physiker Peter Börner Spandauer Weg 4 37085 Göttingen Tel.: 0551-7703465 Mail: info@embedded-linux-seminare.de

Mehr

OpenMP - Threading- Spracherweiterung für C/C++ Matthias Klein, Michael Pötz Systemprogrammierung 15. Juni 2009

OpenMP - Threading- Spracherweiterung für C/C++ Matthias Klein, Michael Pötz Systemprogrammierung 15. Juni 2009 - Threading- Spracherweiterung für C/C++ Matthias Klein, Michael Pötz Systemprogrammierung 15. Juni 2009 Grundlagen der Parallelen Programmierung Hardware Threads vs. Prozesse Kritische Abschnitte Lange

Mehr

Test (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme

Test (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

Shell-Scripting Linux-Kurs der Unix-AG

Shell-Scripting Linux-Kurs der Unix-AG Shell-Scripting Linux-Kurs der Unix-AG Andreas Teuchert 31. Januar 2014 Was ist ein Shell-Script? Aneinanderreihung von Befehlen, die ausgeführt werden Bedingte und wiederholende Ausführung möglich Nützlich

Mehr

Integer Integer Integer (Voreinstellung) Integer Gleitkomma Gleitkomma leer/unbestimmt Integer ohne Vorzeichen Integer (explizit) mit Vorzeichen

Integer Integer Integer (Voreinstellung) Integer Gleitkomma Gleitkomma leer/unbestimmt Integer ohne Vorzeichen Integer (explizit) mit Vorzeichen 1 C-Schlüsselwörter Schlüsselwörter sind in allen Programmiersprachen reservierte Wörter. In C sind auch alle Namen _[A-Z]... und... reserviert, auch _... bereichsweise. Weiterhin durch die Standard-

Mehr

Verteilte Systeme Kapitel 4: Realisierung von Netzwerkdiensten

Verteilte Systeme Kapitel 4: Realisierung von Netzwerkdiensten Verteilte Systeme Kapitel 4: Realisierung von Netzwerkdiensten Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Inhaltsüberblick der Vorlesung

Mehr

Suggestion for an extension of the VLBI field system

Suggestion for an extension of the VLBI field system Suggestion for an extension of the VLBI field system Dr. (FESG) neidhardt@fs.wettzell.de Martin Ettl (FESG), Christian Plötz (BKG), Walter Alef (MPIfR), Helge Rottmann (MPIfR) 1 The idea remote control

Mehr

Protokoll-Spezifikationen

Protokoll-Spezifikationen Protokoll-Spezifikationen Steven Müller 1. Einleitung 2. Protokolle 3. Kompatibilität von Protokollen 4. Subprotokolle 5. Realisierung 6. Zusammenfassung 1. Einleitung Worum geht es in diesem Vortrag?

Mehr

Rapid I/O Toolkit. http://projects.spamt.net/riot. Alexander Bernauer alex@copton.net 08.12.08

Rapid I/O Toolkit. http://projects.spamt.net/riot. Alexander Bernauer alex@copton.net 08.12.08 Rapid I/O Toolkit http://projects.spamt.net/riot Alexander Bernauer alex@copton.net 08.12.08 Inhalt Motivation Architektur Beispiel I/O Features Ausblick Motivation Problemstellung Vorgaben Datenverarbeitung

Mehr

Parastation3. Design und Implementierung. ALiCE-Seminar 13. November 2001. Thomas Moschny

Parastation3. Design und Implementierung. ALiCE-Seminar 13. November 2001. Thomas Moschny Parastation3 Design und Implementierung ALiCE-Seminar 13. November 2001 Thomas Moschny Inst. f. Programmstrukturen und Datenorganisation, Universität Karlsruhe Parastation Cluster Host Host Host Host Myrinet

Mehr

Einführung in das parallele Programmieren mit MPI und Java

Einführung in das parallele Programmieren mit MPI und Java Einführung in das parallele Programmieren mit und Java Seite 1 Übersicht Parallele Prozesse und Erste Schritte mit Kollektive Kommunikation Weitere Möglichkeiten Seite 2 Literatur (1) Homepage des 2-Forums

Mehr

Die Transportprotokolle UDP und TCP

Die Transportprotokolle UDP und TCP Die Transportprotokolle UDP und TCP! UDP (User Datagram Protocol) " Ist wie IP verbindungslos (Zustellung und Reihenfolge werden nicht garantiert) " Erweitert die Funktionalität von IP um die Möglichkeit,

Mehr

U9-1 Prozesse: Überblick. U9-1 UNIX-Prozesshierarchie. U9-2 POSIX Prozess-Systemfunktionen. Prozesse sind eine Ausführumgebung für Programme

U9-1 Prozesse: Überblick. U9-1 UNIX-Prozesshierarchie. U9-2 POSIX Prozess-Systemfunktionen. Prozesse sind eine Ausführumgebung für Programme U9 POSIX-Prozesse und Signale U9 POSIX-Prozesse und Signale U9-1 Prozesse: Überblick U9-1 Prozesse: Überblick Besprechung Aufgabe 6 Prozesse POSIX-Prozess-Systemfunktionen POSIX-Signale Prozesse sind eine

Mehr

Verteilte Systeme - 1. Übung

Verteilte Systeme - 1. Übung Verteilte Systeme - 1. Übung Dr. Jens Brandt Sommersemester 2011 1. Rechnerverbünde Kommunikationsverbund: Beispiele: E-Mail (SMTP, POP/IMAP), Instant Messaging (XMPP, IRC, ICQ,...), Newsgroups (NNTP)

Mehr

Sequentielle Programm- / Funktionsausführung innerhalb eines Prozesses ( thread = Ausführungsfaden )

Sequentielle 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

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 11 Dynamische Feldvereinbarung... 11-2 11.1 Dynamische Vereinbarung von Vektoren... 11-3 11.2 Dynamische Vereinbarung von Matrizen... 11-5 11.3 Die Kommandozeile... 11-8 Propädeutikum 11-1/8 11

Mehr