Systemnahe Programmierung in C/C++
|
|
|
- Frieder Lorenz
- vor 9 Jahren
- Abrufe
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
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.
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
2. Prozesssynchronisation
Tafelübung zu BSRvS1 2. Prozesssynchronisation Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund [email protected] http://ess.cs.uni-dortmund.de/teaching/ss2008/bsrvs1/exercises/
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
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
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
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-
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.,
Systemnahe Programmierung in C/C++
Systemnahe Programmierung in C/C++ Interprozesskommunikation (IPC) Knut Stolze [email protected] Lehrstuhl für Datenbanken und Informationssysteme Fakultät für Mathematik und Informatik 2006
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
(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
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
Systemnahe Programmierung in C/C++
Systemnahe Programmierung in C/C++ Modularisierung, Makefiles und Debugging Knut Stolze [email protected] Lehrstuhl für Datenbanken und Informationssysteme Fakultät für Mathematik und Informatik
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
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
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
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
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 [email protected] http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität Karlsruhe (TH) 1
Ü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
2 UNIX Interprozesskommunikation
Parallelverarbeitung Folie 2-1 2 UNIX Interprozesskommunikation Austausch von Informationen zwischen kooperierenden Prozessen Synchronisation kooperierender Prozesse Kommunikationsmechanismen gemeinsame
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
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
Systemnahe Programmierung in C/C++
Systemnahe Programmierung in C/C++ Fehlerbehandlung, Internationalisierung und Programmende Knut Stolze [email protected] Lehrstuhl für Datenbanken und Informationssysteme Fakultät für Mathematik
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
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:
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
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
Systemnahe Programmierung in C/C++
Systemnahe Programmierung in C/C++ Peter Piehler [email protected] Lehrstuhl für Datenbanken und Informationssysteme Fakultät für Mathematik und Informatik 2006 12 13 Peter Piehler (DBIS) C/C++
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
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
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
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
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
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
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
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: [email protected]
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
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
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....................................
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
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
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
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
Systemnahe Programmierung in C/C++
Systemnahe Programmierung in C/C++ Compiler, Zeiger, Speicherverwaltung, Macros Knut Stolze [email protected] Lehrstuhl für Datenbanken und Informationssysteme Fakultät für Mathematik und Informatik
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
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
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
x86 Open Source Virtualisierungstechniken Thomas Glanzmann <[email protected]>
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
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
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:
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
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
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
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
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
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
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
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
Ü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
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
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 [email protected] http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität
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
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
Tafelübung zu BS 4. Interprozesskommunikation
Tafelübung zu BS 4. Interprozesskommunikation Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund [email protected] http://ess.cs.uni-dortmund.de/~os/
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.
Ü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
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-
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
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
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
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
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
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
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
Ü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
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
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
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.
Logging, Threaded Server
Netzwerk-Programmierung Logging, Threaded Server Alexander Sczyrba Michael Beckstette {asczyrba,[email protected] 1 Übersicht Logging Varianten für concurrent server 2 current working directory
Delegatesund Ereignisse
Delegatesund Ereignisse «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen Definition eines Ereignisses
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
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
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
