Systemnahe Programmierung in C/C++

Größe: px
Ab Seite anzeigen:

Download "Systemnahe Programmierung in C/C++"

Transkript

1 Systemnahe Programmierung in C/C++ Signalbehandlung & MMap Knut Stolze Lehrstuhl für Datenbanken und Informationssysteme Fakultät für Mathematik und Informatik Knut Stolze (DBIS) C/C++ Programmierung / 27

2 Agenda 1 Signale 2 Memory Mapped I/O 3 Aufgaben Knut Stolze (DBIS) C/C++ Programmierung / 27

3 Outline 1 Signale 2 Memory Mapped I/O 3 Aufgaben Knut Stolze (DBIS) C/C++ Programmierung / 27

4 Signale Asynchrone Benachrichtigung von Prozessen über Ereignisse Software Interrupt Ursachen (Beispiele) Tastendruck <ctrl>+<c> SIGINT Hardware-Exceptions Division durch 0 Zugriff auf invaliden Speicher (SIGSEGV) Prozesse senden Signale direkt Betriebssystem sendet Signale Z. B. zum Aufwecken eines Prozesses SIGPIPE beim Schreiben auf eine Pipe, die vom Leser bereits geschlossen wurde Keine weiteren Informationen (außer Signal selbst) übermittelt Knut Stolze (DBIS) C/C++ Programmierung / 27

5 Signale Asynchrone Benachrichtigung von Prozessen über Ereignisse Software Interrupt Ursachen (Beispiele) Tastendruck <ctrl>+<c> SIGINT Hardware-Exceptions Division durch 0 Zugriff auf invaliden Speicher (SIGSEGV) Prozesse senden Signale direkt Betriebssystem sendet Signale Z. B. zum Aufwecken eines Prozesses SIGPIPE beim Schreiben auf eine Pipe, die vom Leser bereits geschlossen wurde Keine weiteren Informationen (außer Signal selbst) übermittelt Knut Stolze (DBIS) C/C++ Programmierung / 27

6 Signale Asynchrone Benachrichtigung von Prozessen über Ereignisse Software Interrupt Ursachen (Beispiele) Tastendruck <ctrl>+<c> SIGINT Hardware-Exceptions Division durch 0 Zugriff auf invaliden Speicher (SIGSEGV) Prozesse senden Signale direkt Betriebssystem sendet Signale Z. B. zum Aufwecken eines Prozesses SIGPIPE beim Schreiben auf eine Pipe, die vom Leser bereits geschlossen wurde Keine weiteren Informationen (außer Signal selbst) übermittelt Knut Stolze (DBIS) C/C++ Programmierung / 27

7 Typen von Signalen 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGIO... man kill bzw. info kill Knut Stolze (DBIS) C/C++ Programmierung / 27

8 Typen von Signalen 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGIO... man kill bzw. info kill Knut Stolze (DBIS) C/C++ Programmierung / 27

9 Signal Handler Funktion, die Signal verarbeitet Aktueller Programmfluss wird unterbrochen Signal Handler wird aufgerufen Sollte nur kurze Zeit dauern Signal Handler kann potentiell wieder unterbrochen werden Programm muss transparente (reentrant) Abarbeitung der Signale gewährleisten Signal Handler muss registriert werden Mittels Funktionszeiger Knut Stolze (DBIS) C/C++ Programmierung / 27

10 Signal Handler Funktion, die Signal verarbeitet Aktueller Programmfluss wird unterbrochen Signal Handler wird aufgerufen Sollte nur kurze Zeit dauern Signal Handler kann potentiell wieder unterbrochen werden Programm muss transparente (reentrant) Abarbeitung der Signale gewährleisten Signal Handler muss registriert werden Mittels Funktionszeiger Knut Stolze (DBIS) C/C++ Programmierung / 27

11 Signal Handler Funktion, die Signal verarbeitet Aktueller Programmfluss wird unterbrochen Signal Handler wird aufgerufen Sollte nur kurze Zeit dauern Signal Handler kann potentiell wieder unterbrochen werden Programm muss transparente (reentrant) Abarbeitung der Signale gewährleisten Signal Handler muss registriert werden Mittels Funktionszeiger Knut Stolze (DBIS) C/C++ Programmierung / 27

12 Signal Handler Funktion, die Signal verarbeitet Aktueller Programmfluss wird unterbrochen Signal Handler wird aufgerufen Sollte nur kurze Zeit dauern Signal Handler kann potentiell wieder unterbrochen werden Programm muss transparente (reentrant) Abarbeitung der Signale gewährleisten Signal Handler muss registriert werden Mittels Funktionszeiger Knut Stolze (DBIS) C/C++ Programmierung / 27

13 Veraltete Schnittstelle #include <signal.h> typedef void (*sighandler_t)(int); sighandler_t signal(int signum, sighandler_t handler); Vordefinierte Signal Handler SIG_DFL Standardfunktion (Abbruch, Coredump,... ) SIG_IGN Ignoriere Signal Probleme mit signal 1 Wie oft wird Signal Handler ausgeführt? (1x vs. immer) 2 Was passiert, wenn während der Bearbeitung eines Signals ein anderes Signal auftritt? 3 Was passiert, wenn während der Bearbeitung eines Signals dasselbe Signal nochmal auftritt? Knut Stolze (DBIS) C/C++ Programmierung / 27

14 Veraltete Schnittstelle #include <signal.h> typedef void (*sighandler_t)(int); sighandler_t signal(int signum, sighandler_t handler); Vordefinierte Signal Handler SIG_DFL Standardfunktion (Abbruch, Coredump,... ) SIG_IGN Ignoriere Signal Probleme mit signal 1 Wie oft wird Signal Handler ausgeführt? (1x vs. immer) 2 Was passiert, wenn während der Bearbeitung eines Signals ein anderes Signal auftritt? 3 Was passiert, wenn während der Bearbeitung eines Signals dasselbe Signal nochmal auftritt? Knut Stolze (DBIS) C/C++ Programmierung / 27

15 Signal Handler Installieren #include <signal.h> int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact) struct sigaction { void (*sa_handler)(int); sigset_t sa_mask; int sa_flags;... }; signum Zu bearbeitendes Signal (z. B. SIGINT) act Spezifikation des Handlers oldact Derzeit installierter Handler (wird zurückgegeben) Knut Stolze (DBIS) C/C++ Programmierung / 27

16 Signal Action sa_handler Zeiger auf Funktion, die Signal bearbeitet sa_mask Menge der Signal, die beim Abarbeiten des Handlers geblockt werden sollen sa_flags Flags SA_RESTART Starte unterbrochene Operation nach erfolgreicher Signalbearbeitung neu (z. B. Datei lesen, schreiben,... ) SA_ONESHOT Signal Handler nur einmal ausführen SA_NOMASK Signal Handler ist durch andere Signale unterbrechbar Knut Stolze (DBIS) C/C++ Programmierung / 27

17 Auslösen von Signalen Sende Signal an eigenen Prozess #include <signal.h> int raise(int sig); Sende Signal an anderen oder auch eigenen Prozess #include <sys/types.h> #include <signal.h> int kill(pid_t pid, int sig); Rechte beachten! Betriebssystem soll SIGALRM-Signal nach angegebener Zeit an eigenen Prozess senden #include <unistd.h> unsigned int alarm(unsigned int seconds); Knut Stolze (DBIS) C/C++ Programmierung / 27

18 Warten auf Signal Prozess hält so lange an (schläft), bis ein Signal eintrifft #include <unistd.h> int pause(void); Knut Stolze (DBIS) C/C++ Programmierung / 27

19 Signale in Threads Threads laufen in einem Prozess ab Signale operieren auf Prozessebene Laut POSIX reagieren alle Threads auf Signal Wenn durch Signalmaske nicht geblockt int pthread_kill(pthread_t thread, int sig) Führe Signal im Kontext des angegebenen Threads aus Signal Action (termination / stop) bezieht sich jedoch auf gesamten Prozess! Prozess (z. B. main thread muss Signal an entsprechenden Thread leiten Knut Stolze (DBIS) C/C++ Programmierung / 27

20 Outline 1 Signale 2 Memory Mapped I/O 3 Aufgaben Knut Stolze (DBIS) C/C++ Programmierung / 27

21 Memory Mapped I/O Bilde Datei auf Hauptspeicherbereich ab Arbeit auf Datei ist identisch mit regulären Speicheroperationen Betriebssystem sorgt transparent für das Schreiben der Änderungen auf Platte Effizienter als einzelne read/write-operationen Knut Stolze (DBIS) C/C++ Programmierung / 27

22 mmap void *mmap(void *addr, size_t len, int prot, int flg, int fd, off_t off); addr Vorschlag für Zieladresse Kann vom Betriebssystem angepasst werden Meist ist NULL geeignet len Größe des abzubildenden Bereichs prot Gibt an, ob Lese- (PROT_READ) und/oder Schreib- (PROT_WRITE)-Operationen erlaubt sind Zusätzlich PROT_NONE und PROT_EXEC flg Wie sollen Änderungen interpretiert werden? MAP_SHARED Schreibe Änderungen in Datei zurück MAP_PRIVATE Schreibe Änderungen nicht in Datei MAP_FIXED Interpretiere addr als exakte, nicht-änderbare Zieladresse fd Numerischer File-Deskriptor der abzubildenden Datei off Offset in die Datei Knut Stolze (DBIS) C/C++ Programmierung / 27

23 munmap & msync Entfernt Memory-Mapping einer Datei aus dem Adressraum des Prozesses int munmap(void *addr, size_t len) Zugriff auf Speicherbereich anschließend nicht mehr möglich msync wird aufgerufen Synchronisiere Hauptspeicherinhalt mit Datei int msync(void *addr, size_t len, int flags) flags MS_ASYNC Schreibe Änderungen asynchron MS_SYNC Schreibe Änderungen synchron MS_INVALIDATE Invalidiere Daten im Hauptspeicher Lies erneut von Datei Privater mmap-bereich wird nicht in Datei geschrieben Knut Stolze (DBIS) C/C++ Programmierung / 27

24 Outline 1 Signale 2 Memory Mapped I/O 3 Aufgaben Knut Stolze (DBIS) C/C++ Programmierung / 27

25 Aufgabe 1 Signale Schreiben Sie ein Programm, welches eine auf der Kommandozeile angegebene Datei öffnet, 3 Zeilen liest und auf die Standardausgabe schreibt, und anschließend auf ein SIGINT Signal wartet, bevor es den Rest der Zeilen der Datei liest und ausgibt. Knut Stolze (DBIS) C/C++ Programmierung / 27

26 Aufgabe 2 Signale Schreiben Sie ein Programm, welches einen Speicherzugriffsfehler erzeugt. Installieren Sie programmatisch einen Handler, der auf dieses Signal reagiert und auf die Standardausgabe ausgibt, welche Speicherblöcke aktuell auf dem Heap allokiert wurden. Knut Stolze (DBIS) C/C++ Programmierung / 27

27 Aufgabe 3 Memory Mapped I/O Schreiben Sie ein Programm, das eine angegebene Datei (A) öffnet und mittels memory mapped i/o den Inhalt einer zweiten Datei (B) über die Daten der ersten schreibt. Sie können die Größe des ge map ten Bereichs der Datei A selbst bestimmen, z. B. in Abhängigkeit von Datei B. Knut Stolze (DBIS) C/C++ Programmierung / 27

28 Aufgabe 4 Memory Mapped I/O + IPC Implementieren Sie die gleiche Funktionalität wie in Aufgabe 3. Jedoch soll diesmal ein Programm der Inhalt der Datei B in ein Shared Memory Segment schreiben, und das andere Programm liest von diesem Segment und schreibt die Daten (über mmap) in die Zieldatei. Knut Stolze (DBIS) C/C++ Programmierung / 27

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

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

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

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

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

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

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

Übungen zu Systemprogrammierung 2 (SP2)

Übungen zu Systemprogrammierung 2 (SP2) Übungen zu Systemprogrammierung 2 (SP2) Ü2 IPC mit Sockets, Signale C. Erhardt, J. Schedel, A. Ziegler, J. Kleinöder Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität

Mehr

Prozesse und Threads. Gliederung. Prozesse und Threads. Wozu Prozesse? Übersicht: 1. Einführung und Übersicht. 2. Prozesse und Threads. 3.

Prozesse und Threads. Gliederung. Prozesse und Threads. Wozu Prozesse? Übersicht: 1. Einführung und Übersicht. 2. Prozesse und Threads. 3. Gliederung 1. Einführung und Übersicht Prozesse und Threads 2. Prozesse und Threads 3. Interrupts 4. Scheduling 5. Synchronisation 6. Interprozesskommunikation 7. Speicherverwaltung Prozesse & Threads

Mehr

In diesem Teil wird das Prozesskonzept von Unix beschrieben und elementare Kommandos zum Auflisten und Unterbrechen von Prozessen.

In diesem Teil wird das Prozesskonzept von Unix beschrieben und elementare Kommandos zum Auflisten und Unterbrechen von Prozessen. Das Prozesskonzept In diesem Teil wird das Prozesskonzept von Unix beschrieben und elementare Kommandos zum Auflisten und Unterbrechen von Prozessen. Inhalt 1. Das Prozesssystem... 2 2. Prozessgenerierung

Mehr

Beispiel 3. Shared Memory und Explizite Synchronisation. Daniel Prokesch. 27. April 2015. Überblick. Shared Memory. Semaphore. Ressourcenverwaltung

Beispiel 3. Shared Memory und Explizite Synchronisation. Daniel Prokesch. 27. April 2015. Überblick. Shared Memory. Semaphore. Ressourcenverwaltung 3 e 3 und Explizite Synchronisation Daniel Prokesch Institut für Technische Informatik Technische Universität Wien 27. April 2015 1 2 3 e Bisher betrachtet... Implizite Synchronisation Blockierende Lese-

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

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

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

Hardwarenahe Programmierung. Eine Einführung

Hardwarenahe Programmierung. Eine Einführung Hardwarenahe Programmierung Eine Einführung Jürgen Plate, 22. September 2012 Inhaltsverzeichnis 1 E/A-Programmierung unter Linux 5 1.1 Prozesse und Signale....................................... 6 1.1.1

Mehr

(a) Wie unterscheiden sich synchrone und asynchrone Unterbrechungen? (b) In welchen drei Schritten wird auf Unterbrechungen reagiert?

(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

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

Systemnahe Programmierung in C/C++

Systemnahe Programmierung in C/C++ Systemnahe Programmierung in C/C++ Modularisierung, Makefiles und Debugging Knut Stolze stolze@informatik.uni-jena.de Lehrstuhl für Datenbanken und Informationssysteme Fakultät für Mathematik und Informatik

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

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

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

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

Was machen wir heute? Betriebssysteme Tutorium 2. Organisatorisches. Frage 2.1.a. Theorieblätter Abgabe. Antwort. Probleme mit OS/161?

Was machen wir heute? Betriebssysteme Tutorium 2. Organisatorisches. Frage 2.1.a. Theorieblätter Abgabe. Antwort. Probleme mit OS/161? Was machen wir heute? Betriebssysteme Tutorium 2 Philipp Kirchhofer philipp.kirchhofer@student.kit.edu http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität Karlsruhe (TH) 1

Mehr

Übung zu Grundlagen der Betriebssysteme. 13. Übung 22.01.2012

Übung zu Grundlagen der Betriebssysteme. 13. Übung 22.01.2012 Übung zu Grundlagen der Betriebssysteme 13. Übung 22.01.2012 Aufgabe 1 Fragmentierung Erläutern Sie den Unterschied zwischen interner und externer Fragmentierung! Als interne Fragmentierung oder Verschnitt

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

2 UNIX Interprozesskommunikation

2 UNIX Interprozesskommunikation Parallelverarbeitung Folie 2-1 2 UNIX Interprozesskommunikation Austausch von Informationen zwischen kooperierenden Prozessen Synchronisation kooperierender Prozesse Kommunikationsmechanismen gemeinsame

Mehr

unix process interfaces HOWTO.txt

unix process interfaces HOWTO.txt HOWTO zu UNIX Prozess Schnittstellen (C) 2007 2015 T.Birnthaler/H.Gottschalk OSTC Open Source Training and Consulting GmbH http://www.ostc.de Version 1.21 (16.08.2015) Dieses Dokument

Mehr

Interprozess- Kommunikation

Interprozess- Kommunikation Interprozess-Kommunikation Interprozess- Kommunikation Tanenbaum Kap. 2.3.8 Stallings Kap. 5.5 Glatz Kap. 5.1-5.3, 5.5, 5.6.1-5.6.2 1 1 Inhalt Lehrziele Interprozesskommunikation (IPC) Message Passing

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

Grundlagen der Informatik 3 Wintersemester 09/10. 7. Übung. Abgabe: 12.01. 18.01.2010

Grundlagen der Informatik 3 Wintersemester 09/10. 7. Übung. Abgabe: 12.01. 18.01.2010 Prof. Frederik Armknecht Sascha Müller Daniel Mäurer Grundlagen der Informatik 3 Wintersemester 09/10 7. Übung Abgabe: 12.01. 18.01.2010 1 Präsenzübungen 1.1 Schnelltest a) Ein C-Programm wird kompiliert

Mehr

ORA-600 und ORA-7445 in der Oracle- Datenbank. Referent: Volker Mach, Systemadministrator MT AG

ORA-600 und ORA-7445 in der Oracle- Datenbank. Referent: Volker Mach, Systemadministrator MT AG ORA-600 und ORA-7445 in der Oracle- Referent: Volker Mach, Systemadministrator MT AG Übersicht Motivation Definition ORA-600 Definition ORA-7445 Lösungsfindung Lookup-Tool unter Metalink Live-Demo Fazit

Mehr

Systemnahe Programmierung in C/C++

Systemnahe Programmierung in C/C++ Systemnahe Programmierung in C/C++ Fehlerbehandlung, Internationalisierung und Programmende Knut Stolze stolze@informatik.uni-jena.de Lehrstuhl für Datenbanken und Informationssysteme Fakultät für Mathematik

Mehr

d) Welche Aussage zum Thema Adressraumschutz ist richtig?

d) Welche Aussage zum Thema Adressraumschutz ist richtig? Aufgabe 1.1: Einfachauswahl-Fragen (18 Punkte) Bei den Multiple-Choice-Fragen in dieser Aufgabe ist jeweils nur eine richtige Antwort eindeutig anzukreuzen. Auf die richtige Antwort gibt es die angegebene

Mehr

Nachname:... Vorname:... MatrNr.:... Klausur PR2. Erstellen Sie eine Struktur für eine Komplexe Zahl mit den Elementen real und imag vom Typ double.

Nachname:... Vorname:... MatrNr.:... Klausur PR2. Erstellen Sie eine Struktur für eine Komplexe Zahl mit den Elementen real und imag vom Typ double. Nachname:... Vorname:... MatrNr.:... Klausur PR2 HAW-Hamburg, Fakultät Technik und Informatik, Department Informations- und Elektrotechnik Dr. Robert Heß, 4.7.2008 Bearbeitungsdauer: 90 min Hilfsmittel:

Mehr

Name: ES2 Klausur Thema: ARM 25.6.07. Name: Punkte: Note:

Name: ES2 Klausur Thema: ARM 25.6.07. Name: Punkte: Note: Name: Punkte: Note: Hinweise für das Lösen der Aufgaben: Zeit: 95 min. Name nicht vergessen! Geben Sie alle Blätter ab. Die Reihenfolge der Aufgaben ist unabhängig vom Schwierigkeitsgrad. Erlaubte Hilfsmittel

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

Systemnahe Programmierung in C/C++

Systemnahe Programmierung in C/C++ Systemnahe Programmierung in C/C++ Peter Piehler peter.piehler@symetrion.com Lehrstuhl für Datenbanken und Informationssysteme Fakultät für Mathematik und Informatik 2006 12 13 Peter Piehler (DBIS) C/C++

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

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

Virtueller 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

Benutzerprogramme und Benutzer-Adressraum

Benutzerprogramme und Benutzer-Adressraum Benutzerprogramme und Benutzer-Adressraum Prof. Dr. Margarita Esponda Freie Universität Berlin WS 2011/2012 1 Benutzerprogramme Prozess src1.c Compiler cc src1.s Assembler as src1.o ELF Executable and

Mehr

System Monitoring mit strace. Systemcall tracing

System Monitoring mit strace. Systemcall tracing System Monitoring mit strace Systemcall tracing 1 Gliederung Einleitung: Was ist strace Grundlagen zu strace Kernel Kernelspace vs. Userspace Systemcalls ptrace Simple strace (Demo) strace die wichtigsten

Mehr

Linker: Adreßräume verknüpfen. Informationen über einen Prozeß. Prozeß-Erzeugung: Verwandtschaft

Linker: Adreßräume verknüpfen. Informationen über einen Prozeß. Prozeß-Erzeugung: Verwandtschaft Prozeß: drei häufigste Zustände Prozeß: anatomische Betrachtung jeder Prozeß verfügt über seinen eigenen Adreßraum Sourcecode enthält Anweisungen und Variablen Compiler überträgt in Assembler bzw. Binärcode

Mehr

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige

Mehr

2 UNIX Interprozeßkommunikation. 2.1 Prozesse erzeugen und beenden

2 UNIX Interprozeßkommunikation. 2.1 Prozesse erzeugen und beenden Parallelverarbeitung Folie 2-1 2 UNIX Interprozeßkommunikation 2.1 Prozesse erzeugen und beenden Programm: Sammlung von Anweisungen und Daten befindet sich i.a. auf der Festplatte ist im i-node als ausführbar

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

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

Assembler - Einleitung

Assembler - Einleitung Assembler - Einleitung Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Einleitung 1/19 2008-04-01 Teil 1: Hochsprache

Mehr

Architekturbeschreibung Koala Editor

Architekturbeschreibung Koala Editor Architekturbeschreibung Koala Editor Package: de.hsos.koala Enthält die Main Klasse. Klasse: Main Wird beim Start des Programms ausgeführt und öffnet ein neues Editor-Fenster. Package: de.hsos.koala.actions

Mehr

Theoretische Aspekte

Theoretische Aspekte Webserver mit Win32 API Datum: 04.02.03 Autor: Michael Hielscher Homepage: www.genesis-x7.de Theoretische Aspekte Aufbau eines Webservers Als erstes sollte man im Abschnitt Multithreaded SocketServer nachlesen

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

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

POSIX Echtzeit: Kernel 2.6 und Preempt-RT

POSIX Echtzeit: Kernel 2.6 und Preempt-RT POSIX Echtzeit: Kernel 2.6 und Preempt-RT Slide 1 - http://www.pengutronix.de - 21.01.2007 Echtzeit-Systemplanung Wenn das zeitliche Verhalten spezifiziert ist, kann auch spezifiziert werden, welche Applikationsteile

Mehr

Wie groß ist die Page Table?

Wie 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

Mehr

Ausnahmebehandlung in C++, Windows und Linux

Ausnahmebehandlung in C++, Windows und Linux Dr. E.Huckert 12-2006 Ausnahmebehandlung in C++, Windows und Linux Inhaltsverzeichnis 1 Überblick...1 2 Ausnahmebehandlung in Standard C++...2 3 Ausnahmebehandlung unter Windows...3 3.1 Benutzung des "Structured

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

Systemnahe Programmierung in C/C++

Systemnahe Programmierung in C/C++ Systemnahe Programmierung in C/C++ Compiler, Zeiger, Speicherverwaltung, Macros Knut Stolze stolze@informatik.uni-jena.de Lehrstuhl für Datenbanken und Informationssysteme Fakultät für Mathematik und Informatik

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

Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller

Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller Datum, Zeit, 08:00 09:30 Uhr (90 min) Aufgabenblätter 14 Seiten (einschl. Deckblatt) erreichbare Punktzahl 54 zugelassene

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

x86 Open Source Virtualisierungstechniken Thomas Glanzmann <thomas@glanzmann.de>

x86 Open Source Virtualisierungstechniken Thomas Glanzmann <thomas@glanzmann.de> x86 Open Source Virtualisierungstechniken März 2006 Zu meiner Person Informatik Student an der Universität Erlangen im 9. Semester 4 jährige Mitarbeit an dem Projekt FAUmachine der

Mehr

Parallele Sitzungen 225

Parallele Sitzungen 225 Parallele Sitzungen 225 Es gibt vier Ansätze, um parallele Sitzungen zu ermöglichen: Für jede neue Sitzung wird mit Hilfe von fork() ein neuer Prozess erzeugt, der sich um die Verbindung zu genau einem

Mehr

Speicherverwaltung. Foliensatz 7: Speicherverwaltung Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2013

Speicherverwaltung. Foliensatz 7: Speicherverwaltung Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2013 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)

Mehr

Operating System Kernels

Operating 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

Mehr

Rechnernutzung in der Physik. Betriebssysteme

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

Mehr

Linux Paging, Caching und Swapping

Linux Paging, Caching und Swapping Linux Paging, Caching und Swapping Inhalte Paging Das Virtuelle Speichermodell Die Page Table im Detail Page Allocation und Page Deallocation Memory Mapping & Demand Paging Caching Die verschiedenen Caches

Mehr

CORBA. Systemprogrammierung WS 2006-2007

CORBA. Systemprogrammierung WS 2006-2007 CORBA Systemprogrammierung WS 2006-2007 Teilnehmer: Bahareh Akherattalab Babak Akherattalab Inhaltsverzeichnis: Verteilte Systeme Vergleich zwischen lokale und verteilte Systeme Verteilte Anwendungen CORBA

Mehr

Java Fehlerbehandlung

Java Fehlerbehandlung Java Fehlerbehandlung 1 Fehlerbehandlung In jedem nicht-trivialen Programm kann es während der Laufzeit zu Fehlersituationen kommen. Dabei handelt es sich nicht unbedingt um Programmierfehler: z. B.: Programm

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

C# Programmierung. Eine Einführung in das.net Framework. C# Programmierung - Tag 4: Kombination OOP/.NET

C# Programmierung. Eine Einführung in das.net Framework. C# Programmierung - Tag 4: Kombination OOP/.NET C# Programmierung Eine Einführung in das.net Framework C# Programmierung - Tag 4: Kombination OOP/.NET 1/27/2012 1 Do Events Delegates Operatoren Exceptions Namespaces Bibliotheken.NET Klassen Serialisierung

Mehr

b) Gegeben sei folgende Enumeration: enum SPRACHE {Deutsch, Englisch, Russisch};

b) Gegeben sei folgende Enumeration: enum SPRACHE {Deutsch, Englisch, Russisch}; Aufgabe 1: (15 Punkte) Bei den Multiple-Choice-Fragen ist jeweils nur eine richtige Antwort eindeutig anzukreuzen. Auf die richtige Antwort gibt es die angegebene Punktzahl. Wollen Sie eine Multiple-Choice-Antwort

Mehr

Programmierung mit C Zeiger

Programmierung mit C Zeiger Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch

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

Übungspaket 29 Dynamische Speicherverwaltung: malloc() und free()

Übungspaket 29 Dynamische Speicherverwaltung: malloc() und free() Übungspaket 29 Dynamische Speicherverwaltung malloc() und free() Übungsziele Skript In diesem Übungspaket üben wir das dynamische Alloziieren 1. und Freigeben von Speicherbereichen 2. von Zeichenketten

Mehr

LeJOS: Mindstorms in Java programmieren

LeJOS: Mindstorms in Java programmieren LeJOS: Mindstorms in Java programmieren Alexander Koller Softwareprojekt "Sprechende Roboter" 30. April 2004 Überblick Warum Java? Was ist LeJOS? Motoren steuern Auf Sensoreingaben reagieren Wie geht's

Mehr

Was machen wir heute? Betriebssysteme Tutorium 12. Organisatorisches. Frage 12.1.a. Programmieraufgaben Vorstellung. Antwort

Was machen wir heute? Betriebssysteme Tutorium 12. Organisatorisches. Frage 12.1.a. Programmieraufgaben Vorstellung. Antwort Was machen wir heute? Betriebssysteme Tutorium 12 1 Organisatorisches Philipp Kirchhofer philipp.kirchhofer@student.kit.edu http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität

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

I/O-Hardware Grundlagen. Ein- und Ausgabe. Memory-Mapped I/O. Device Controller

I/O-Hardware Grundlagen. Ein- und Ausgabe. Memory-Mapped I/O. Device Controller I/O-Hardware Grundlagen Grundlagen von Ein-/Ausgabe-Hardware und Software I/O-Software-Schichten Wir betrachten I/O-Hardware wie Hard Disks, Bildschirme, Drucker etc. hier eigentlich als Blackbox, die

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

Microcontroller Kurs Programmieren. 09.10.11 Microcontroller Kurs/Johannes Fuchs 1

Microcontroller Kurs Programmieren. 09.10.11 Microcontroller Kurs/Johannes Fuchs 1 Microcontroller Kurs Programmieren 9.1.11 Microcontroller Kurs/Johannes Fuchs 1 General Purpose Input Output (GPIO) Jeder der Pins der vier I/O Ports kann als Eingabe- oder Ausgabe-leitung benutzt werden.

Mehr

Übungen zu Systemprogrammierung 1 (SP1)

Übungen zu Systemprogrammierung 1 (SP1) Übungen zu Systemprogrammierung 1 (SP1) B1 Debugging Jens Schedel, Christoph Erhardt, Jürgen Kleinöder Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme 03-B1_handout Friedrich-Alexander-Universität

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

CA Übung 30.01.2006. Christian kann heute nicht kommen => ich bin heute da, Christian das nächste Mal wieder

CA Übung 30.01.2006. Christian kann heute nicht kommen => ich bin heute da, Christian das nächste Mal wieder CA Übung 30.01.2006 Hallo zusammen! Christian kann heute nicht kommen => ich bin heute da, Christian das nächste Mal wieder Adrian Schüpbach: scadrian@student.ethz.ch Christian Fischlin: cfischli@student.ethz.ch

Mehr

Lösung Übungszettel 6

Lösung Übungszettel 6 Lösungen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik SS 03 AG Betriebssysteme FB3 Kirsten Berkenkötter Lösung Übungszettel 6 1 Aufgabe 1: Parallel-Server 1.1 Client #include

Mehr

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008 Name: Matrikel-Nr: Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008 Bitte schreiben Sie leserlich und antworten Sie kurz und präzise. 1. Zeichnen Sie das Schichten-Modell eines Computersystems und markieren

Mehr

Systemprogrammierung unter UNIX System V / Linux

Systemprogrammierung unter UNIX System V / Linux Studiengang Angewandte Informatik Systemprogrammierung unter UNIX System V / Linux Systemsoftware Praktikum Prof. Dr. S. Keller Ausgabe: 19.03.2004 Anzahl der Seiten: 27 Angewandte Informatik Praktikum

Mehr

Betriebssysteme KU - Bewertung A2 - WS 15/16

Betriebssysteme KU - Bewertung A2 - WS 15/16 Betriebssysteme KU - Bewertung A2 - WS 15/16 TEAM:... Mögliche Punkte: 50 + Bonus Allgemein Design Design / PoC Implementation... Sonstiges/Abzüge +X Sonstiges / : Bewertung der einzelnen Gruppenmitglieder

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

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur Ein und Ausgabe Übersicht Grundbegriffe Hard Disks und Flash RAM Zugriff auf IO Geräte RAID Systeme SS 2012 Grundlagen der Rechnerarchitektur Ein und Ausgabe 2 Grundbegriffe

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

Übung 4 - Betriebssysteme I

Übung 4 - Betriebssysteme I Prof. Dr. Th. Letschert FB MNI 9. Juni 2002 Übung 4 - Betriebssysteme I Aufgabe 1 1. Erläutern Sie die Begriffe der transparent und der virtuell mit ihrer in der Informatik üblichen Bedeutung. 2. Wie werden

Mehr

Die elementare Ausgabe von Daten auf externe Medien, wie Dateien und das Einlesen davon wird demonstriert.

Die elementare Ausgabe von Daten auf externe Medien, wie Dateien und das Einlesen davon wird demonstriert. Ein- und Ausgabe Die elementare Ausgabe von Daten auf externe Medien, wie Dateien und das Einlesen davon wird demonstriert. Komplexe E/A-Operationen werden erst diskutiert, nachdem das Klassenkonzept erarbeitet

Mehr

Betriebssysteme. Kapitel 8. 8. Arbeitsspeicherverwaltung in LINUX. 8.1. Allgemeines. 8.2. Virtueller Arbeitsspeicher eines Prozesses

Betriebssysteme. Kapitel 8. 8. Arbeitsspeicherverwaltung in LINUX. 8.1. Allgemeines. 8.2. Virtueller Arbeitsspeicher eines Prozesses FG TECHNISCHE INFORMATIK I BS 800 00 TH 02 Betriebssysteme Kapitel 8 8. Arbeitsspeicherverwaltung in LINUX 8.1. Allgemeines 8.2. Virtueller Arbeitsspeicher eines Prozesses 8.3. Verwaltung des physikalischen

Mehr

Objektbasierte Entwicklung

Objektbasierte Entwicklung Embedded Software Objektbasierte Entwicklung Objektorientierung in C? Prof. Dr. Nikolaus Wulff Objektbasiert entwickeln Ohne C++ wird meist C im alten Stil programmiert. => Ein endlose while-schleife mit

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

Logging, Threaded Server

Logging, Threaded Server Netzwerk-Programmierung Logging, Threaded Server Alexander Sczyrba Michael Beckstette {asczyrba,mbeckste@techfak.uni-bielefeld.de 1 Übersicht Logging Varianten für concurrent server 2 current working directory

Mehr

Delegatesund Ereignisse

Delegatesund Ereignisse Delegatesund Ereignisse «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen Definition eines Ereignisses

Mehr

Effizientes Memory Debugging in C/C++

Effizientes Memory Debugging in C/C++ Effizientes Memory Debugging in C/C++ Adam Szalkowski Embedded Computing Conference 2014 Ursachen/ Symptome Debugging Tools Ursachen / Symptome Was habe ich falsch gemacht? Was kann denn passieren im schlimmsten

Mehr

Systeme 1. Kapitel 9.2. Interaktion von Hardware und Betriebssystem Linux-Kernel und x86 Systeme

Systeme 1. Kapitel 9.2. Interaktion von Hardware und Betriebssystem Linux-Kernel und x86 Systeme Systeme 1 Kapitel 9.2 Interaktion von Hardware und Betriebssystem Linux-Kernel und x86 Systeme Speicherzugriffe auf x86 Systemen Auf x86 Systemen existieren drei Arten von Speicheradressen Logische Adresse

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

Klausur zum Kurs Betriebssysteme (1802) am 19. September 2009

Klausur 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

Mehr