Prozesse und Threads. Prozesse und Threads Tanenbaum Kap. 2.1, 2.2 Stallings Kap , , 4.5 Glatz Kap

Größe: px
Ab Seite anzeigen:

Download "Prozesse und Threads. Prozesse und Threads Tanenbaum Kap. 2.1, 2.2 Stallings Kap , , 4.5 Glatz Kap"

Transkript

1 Prozesse und Threads Prozesse und Threads Tanenbaum Kap. 2.1, 2.2 Stallings Kap , , 4.5 Glatz Kap

2 Inhalt Prozesse Was ist ein Prozess? Prozessausführung Prozessverwaltung Prozesserzeugung Wie wird das Betriebssystem ausgeführt? Threads Was ist ein Thread? Wieso Threads? Threadausführung und Thread-Typen Threads: Schutz und Synchronisation Case Study: Solaris Thread Konzept 2 2

3 Lehrziele Prozesse Sie können den Begriff Prozess erklären erklären, wie Prozesse auf einer CPU ausgeführt werden die Beschreibung der Prozessausführung erklären und skizzieren den Prozesswechsel und die Ausführungsmodi erklären erklären, wie Prozesse durch das BS verwaltet werden die Prozesserzeugung am Beispiel Unix/Linux erklären und anwenden (Praktikum) erklären und diskutieren, wie das Betriebssystem ausgeführt wird 3 3

4 Was ist ein Prozess? Prozess Programm in Ausführung nicht zwingend aktiv eigener Kontext - alle Informationen, die den Ausführungszustand beschreiben - Daten, Code, Stack, PSW, Zustandsinfo aller Ressourcen, etc. Kapselung des Programms Sandbox-Konzept Daten PID, Dateiinfo, Zugriffsrechte, Programmcode Stack Prozess CPU Register MMU Register Kernel Stack Kontext 4 Um was gehts? - Jedes Programm (siehe CT1 ) benötigt 3 Speicherbereiche Daten-Bereich (initialisierte und nicht intialisierte Daten) Code-Bereich Stack-Bereich - Annahme: zwei vollständig unabhängige Programme sollen gleichzeitig auf einer CPu laufen. - Frage: Was muss beim Wechseln (Ausfühung) zwischen den Programmen ausgetauscht resp. gespeichert werden? a) die Registerinhalte b) Informationen zum Zustand etc. des Prozesses c) die drei Speicherbereich müssen ausgetauscht werden Punkte a) und b) bilden den Kontext des Prozesses Der Prozess - zu einem Prozess gehören alle Daten, die benötigt werden, damit ein Programm auf einem Rechner ausgeführt werden kann zu einem beliebigen Zeitpunkt unterbrochen werden kann wieder dort gestartet werden kann, wo es unterbrochen wurde - d.h. sämtliche Zustandsinformation muss abgespeichert resp. wiederhergestellt werden 4

5 Prozess-Kontext Schnappschuss seiner Laufzeitumgebung P 1 aktiv blocked swapped P 2 P n virtual memory System Call Interface CPU I/O main memory computer resources t = T 0 5 Drei Prozessen - Prozess P1: besitzt CPU (läuft resp. ist aktiv) und hat Hauptspeicher alloziert - Prozess P2: ist nicht aktiv, besitzt Disk, hat Hauptspeicher alloziert und wartet auf I/O - Prozess P3: wartet bis Hauptspeicher frei wird - gestrichelte Pfeile: Prozess wartet auf Ressource Informationen zu Prozessen - wie organisiert das Betriebssystem die Informationen zu den einzelnen Prozessen? 5

6 ... was ist ein Prozess? Zweite Sichtweise: Unit of Resource Ownership eine Einheit, die Ressourcen besitzt ein virtueller Adressraum, in dem das Prozess Image steht Kontrolle über Ressourcen (Files, I/O Geräte, etc.) hat Unit of Scheduling eine Einheit, die schedulierbar ist CPU-Scheduler weist der CPU einen Prozess zu (dispatch) zum Prozess gehören der Execution State (PC, SP, Register) und eine Ausführungspriorität 6 6

7 Prozesse: Hauptaufgaben des BS? Scheduling: Zuweisung an CPU mehrere Prozesse "verschränkt" (concurrent) ausführen - Maximierung CPU-Nutzung - Antwortzeit garantieren Prozessausführung Zustands- und Warteschlangen-Diagramme Ausführungsmodi Mechanismen für Prozesserzeugung und -Terminierung Synchronisation Interprozesskommunikation Ressourcen zur Verfügung stellen jedoch Deadlocks vermeiden 7 7

8 Prozessausführung auf einer CPU Konzeptmodell 4 Prozesse in Ausführung Prozess-Interleaving auf einer CPU Process a Process b Process c Process d concurrent excution 8 Prozesse werden gleichzeitig bzw. concurrent ausgefürht: ihre Ausführung wird auf einer CPU verschränkt - Prozesse können in der Ausführung unterbrochen und später weiterverarbeitet werden - Prozesse erhalten i.a. die CPU für vorgegebenes Zeitintervall, ausser, der Prozess gibt Kontrolle an CPU zurück (warten auf I/O, etc.) abhängig von Schedulingverfahren Dispatcher bzw. Scheduler bzw. "short time scheduler" - Betriebssystemprogramm, das zwischen Prozessen bzw. Tasks wechselt - Dispatcher: teilt CPU zu - Scheduler: plant die CPU Zuteilung aufgrund eines Algorithmus - verhindert dass nur ein einziger Prozess den Prozessor für sich in Anspruch nimmt - entscheidet wer als nächstes an der Reihe ist ( Scheduling Algorithmus) - Schaltet zwischen Prozessen um Concurrent Computing - jedes Programm macht "Vortschritte" Parallel Computing - Programme arbeiten parllel bzw. echt gleichzeitig 8

9 Beschreibung Prozessausführung 2 Modelle für Beschreibung Zustandsdiagramme dispatch enter nott running running enter pause Warteschlangen-Diagramme (Queuing-Diagrams) enter Queue dispatch CPU exit pause 9 Prozessausführung - Für die Beschreibung des Ausführens von Prozessen werden zwei Modelle benötigt - Zustandsmodell beschreibt den aktuellen Zustand eines Prozesses, z.b. Running oder Not Running - Queuing-Diagram beschreibt den Ort, wo sich Prozesse aufhalten, wenn Sie sich in einem bestimmten Zustand befinden mehrere Prozesse können sich im gleichen Zustand befinden, z.b. Not Running, in diesem Fall warten sie in einer "Warteschlange" 9

10 ... Beschreibung Prozessausführung Real: Zustandsdiagramm mit 7-Zuständen new admit admit ready suspend ready dispatch timeout running release exit Event occurs blocked suspend activate suspend blocked Event occurs Event wait 10 Zustände - new (neu) der Prozess ist erzeugt, aber noch nicht gestartet - ready (bereit) der Prozess kann ausgeführt werden - running (läuft) der Prozess läuft (ist aktiv) - blocked (blockiert) der Prozess wartet auf Ereignis, z.b. I/O Operation, etc. - suspend blocked (ausgelagert, blockiert) der Prozess wurde ausgelagert und wartet auf Ereignis - suspend ready (ausgelagert, bereit) der Prozess ist ausgelagert, aber bereit für Aktivierung Wenn zu viele Prozesse im Speicher, sinkt Leistungsfähigkeit des System (siehe virtual memory) - Prozesse müssen vollständig auf Disk ausgelagert werden - Zustände blocked suspend und ready ruspend 10

11 ... Beschreibung Prozessausführung Realität: mehrere Queues Prozesse warten in verschiedenen Queues auf Events enter Ready/Run Queue dispatch CPU exit timeout (preemted) Event 1 occurs Event 2 occurs Event n occurs Event 1 Queue Event 2 Queue. Event n Queue Event 1 wait Event 2 wait Event n wait 11 Hinweis - Ready Queue wird oft auch mit Run Queue bezeichnet Für jede Ressource, die blockieren kann, gibt es eine Queue - Disk - Netzwerk - I/O Ports - USB - etc. Ereignis tritt ein, wenn - Daten verfügbar - Daten gesendet - -etc. 11

12 Wann Prozesswechsel? Wechsel wenn BS Kontrolle über CPU erhält System Call - expliziter Aufruf aus Benutzerprogramm - Prozess wird ev. blockiert, muss aber nicht Interrupt - äussere Ursache: z.b. Timer, DMA beendet, etc. - Kontrolle an Interrupt Handler, oft nur für sehr kurze Zeit Trap - die letzte Instruktion hat einen Fehler erzeugt - Prozess wird ev. Umständen abgebrochen, z.b. Division x / 0 Zwei Möglichkeiten Mode Switch: keine Prozesswechsel, nur "Unterbruch" Context Switch: Prozesswechsel, impliziert auch Mode Switch 12 Gründe für Prozesswechsel - Timer (clock) Zeitintervall abgelaufen Prozess geht in Zustand ready - I/O-Interrupt auf Interrupt wartenden Prozess in den Zustand READY oder READY SUSPEND versetzen entscheiden, ob laufender Prozess unterbrochen oder weiterverarbeitet werden soll Prozess mit höherer Priorität aktiviert werden soll - page fault (virtual memory) adressierter Datenwert steht nicht im physikalischen Speicher, entsprechender Speicherblock muss vom Disk geladen werden Prozess wird in den Zustand blocked versetzt - trap oder exception laufenden Prozess abbrechen - system call die meisten System Calls blockieren den aufrufenden Prozess 12

13 Prozessausführungs-Modi Prozessausführung in zwei Modi: User Mode: System Mode: mehr privilegiert weniger privilegiert Anwenderprogramme Betriebssystemfunktionen Die meisten modernen Prozessoren unterstützen diese beiden Modi (Hardwareunterstützung) Wieso diese Aufteilung? kritische Systemkomponenten aus Sicherheitsgründen vor unbeabsichtigten resp. unerlaubten Zugriff schützen z.b. PCB, Memory Allocation Tables, IO, etc. 13 System Mode bzw. Kernel Mode Typische Kernel Funktionen - Process Management process creation/termination, scheduling, dispatching, switching, synchronisation, ipc, PCB - Memory Management memory allocation, swapping, page/seg. mgmt - I/O Management buffer mgmt, Allozierung von I/O Kanälen und Geräten an Prozesse - Support Funktionen Interrupt Handling, Accounting, Monitoring 13

14 Ausführung: Mode Switch Prozess P 0 State Stack idle Interrupt Service Routine System Mode State Stack 14 State: Prozesszustand (Register, PSW) Mode Switch - nur der Prozessor-Zustand muss bzw. wird auf Stack gespeichert, d.h. die Prozessor Register und die Flags - wenig Overhead der Prozesskontrollblock muss nicht aufdatiert werden, wie bei Prozesswechsel - SW oder HW-Interrupt machen vorerst keinen Context Switch notwendig ISR wird im gleichen Prozesskontext, aber im System-Mode ausgeführt - Kontrolle über CPU Rückkehr in das unterbrochene Programm falls Prozess blockiert (abhängig vom System Call) Context Switch 14

15 Ausführung: Context Switch Prozess P 0 Prozess P 1 State PCB 0 idle PCB 1 State idle PCB 1 State State PCB 0 idle 15 State: Prozesszustand (Register, PSW) Context Switch (Prozesswechsel) - gesamter Prozesszustand muss abgespeichert werden Prozessorzustand und sämtliche Register (auch MMU, etc.) speichern - Prozesskontrolblock aufdatieren - Prozesskontrollblock an die entsprechende Liste hängen - neuen Prozess für Ausführung auswählen - Prozesskontrolblock aufdatieren - Prozessorzustand und Register wiederherstellen kostspielige Operation - Time Sharing Systeme: ca. 10 bis 1000 Context Switches/s. 15

16 Prozesswechsel durch Scheduler/Dispatcher Scheduler resp. Dispatcher Context Switch notwendig - Grund: blockierender System Call oder Time Slice abgelaufen - Scheduler wählt Prozess aus Ready Queue - mögliche Auswahlkriterien minimale Antwortzeit maximaler Durchsatz faire CPU Zuteilung (CPU) Auslastung CPUs kein Context Switch notwendig - Rückkehr in unterbrochenen Prozess Scheduling Verfahren später 16 16

17 Prozess- und Ressourcenmangement Betriebssystem Tabellen Verwaltung von Prozessen und Ressourcen 17 Wie organisiert das Betriebssystem Informationen zu den einzelnen Prozessen? - das BS unterhält und verwaltet verschiedenste Tabellen für die Verwaltung von Prozessen und Ressourcen: Speicher Memory Tabellen Geräte Files CPU I/O Tabellen File Tabellen Prozess Tabellen - Information in verschiedenen Tabellen gespeichert - konzeptuell werden obige Tabellen von jedem Betriebssystem benötigt, die Implementierung ist jedoch überall verschieden Anmerkung - die Tabellen müssen selbst wieder miteinander verknüpft sein, d.h. ein Prozess muss wissen welche Files er benutzt, etc. 17

18 Prozess Image im Virtual Memory Process Identification Process State Information Process Control Information Process Identification Process State Information Process Control Information Process Identification Process State Information Process Control Information Process Control Block Program / Text Program / Text Program / Text Data Data Data Heap Heap Heap Program Layout User Stack User Stack User Stack Shared Address Space Shared Address Space Shared Address Space Process 1 Process 2 Process 3 18 Prozess Image besteht aus - Benutzerprogramm (Code bzw. Text), Daten, Stack, Heap - Kontext, im Prozesskontrollblock (PCB) gespeichert PCB, eine Datenstruktur mit Zustandsinformation zum Prozess Process Images sind im virtuellen Speicher abgelegt (ab Adresse 0) - virtueller Speicher wird mit Hilfe der Memory Management Unit auf den physikalischen Speicher abgebildet nicht notwendigerweise ein kontinuierlicher Speicherbereich - privater und gemeinsam genutzter Adressraum - Teile des Prozesses können auch auf dem Sekundärspeicher abgelegt sein Primärprozesstabelle hat Einträge (Zeiger) auf die entsprechenden Prozess Images - abhängig von der Speicherorganisation Das BS hat nur Zugriff auf Prozessdaten, wenn das Prozessimage teilweise im physikalischen Speicher steht Linux-Prozessimage Map (Layout) anzeigen mit - pmap PID - cat /proc/pid/status 18

19 Der Prozesskontrollblock PCB PCB: eine der wichtigsten Datenstrukturen im BS speichert Prozesskontext ist Teil des Prozessimages Zustand des Betriebssystems "the set of the process control blocks defines the state of the operating system" Enthält alle notwendige Information zum Prozess Process Identification Process Control Information Processor State Information Zugriff auf PCB hochkritisch nur über entsprechende Handler-Routine 19 Process Identification - eindeutiger Prozessidentifikator: immer vorhanden zeigt in die primäre Prozesstabelle PID: Process Identifier - Prozessidentifikator des Elternprozesses Erzeuger des aktuellen Prozesses - Benutzeridentifikation wer ist für diesen Prozess verantwortlich UID: User Identifier, ev. GID: Group Identifier Process State Information - Inhalt der Prozessorregister für den Benutzer sichtbare Register (Daten, Adressen) Kontroll- und Statusregister Stackpointer, Programmzähler Prozessor Status Wort (PSW), Flags Process Control Information - Scheduling und Zustandsinformation - Informationen zu Queues, Prozessprivilegien, Memory Management Ressourcen: Besitzer und Benutzung 19

20 Queues: Linked List von PCBs Queues Prozesskontrollblöcke Running head tail PCB A Null Ready head tail PCB B PCB B Null Blocked head tail Null Null 20 20

21 Prozesserzeugung Eindeutigen Prozessidentifikator erzeugen Speicher für Prozess Image allozieren Prozesskontrollblock initialisieren Defaultwerte setzen, z.b. - Zustand: NEW, I/O Geräte, offene Files - etc. Verkettungen für Queues aufsetzen z.b. Prozess in die Liste mit neuen Prozessen einfügen Weitere Datenstrukturen initialisieren z.b. Accounting Informationen Prozesse oft hierarchisch organisiert Eltern- und Kindprozesse 21 21

22 Prozesserzeugung unter Unix/Linux Prozesserzeugung System Call fork() erzeugt Kindprozess System call exec() startet neues Programm fork() erstellt "Kopie" des Elternprozesses Prozesserzeugung bei Systemstart Prozess 0 (Prozess init) - zur Bootzeit erzeugt - spaltet Prozess 1 ab - wird selbst zum Swapper Prozess 1 - startet Deamonprozesse - erzeugt neuen Prozess, wenn sich ein Benutzer anmeldet - Vater aller Prozesse, sorgt auch für "Waisenkinder" 22 Alle Prozesse unter Unix haben einen Elternprozess - Ausnahme Prozess 0, der nicht nicht mehr in der Prozessliste erscheint Bezeichnungen - der Erzeuger wird parent genannt (Elternprozess, Vaterprozess, Erzeugerprozess, etc.) - der neue Prozess heisst child (Kindprozess, Kind) - das Kind ist eine "fast identische Kopie des Vaters (gleicher Code, Daten, offene Files, etc.), aber eigene PID siehe Praktikum Funktionalität / Arbeitsweise - der Elternprozess kann gleichzeitig mit dem resp. den Kindern arbeiten - der Elternprozess kann entweder auf die Beendigung eines oder mehrerer Kinder warten - Kinder, die terminieren und auf die der Elternprozess nicht wartet, werden zu Zombies - Zombies belegen Betriebssystem-Ressourcen müssen verwaltet werden: in diesem Zustand können z.b. Accounting Informationen abgefragt werden - Zombies können verhindert werden siehe Praktikum 22

23 Prozesserzeugung unter Unix/Linux main() Beispiel: Prozesserzeugung unter Unix / Linux ret=fork(); ret==pid c ret==0 #include <sys/types.h> #include <stdio.h> execl(...); int main(void) { pid_t ret; ret = fork(); // make child if (ret == 0) { // child: return value = 0 printf("i am the child\n"); if (execl(./test,null)<0) { // start program "test" printf( could not exec ); // should not come here exit(-1); } } else // parent: return value = PID c wait(null); // wait for child to terminate } 23 23

24 Prozesserzeugung unter Unix exec(...) überlagert Programm- und Datenbereich mit neuem Programm und neuem Datenbereich Prozesskontext wird von Eltern geerbt - ermöglicht Zugriff auf offene Files des Elternprozesses - etc. COW: Copy On Write (viele Unix Implementationen) fork() - Kindprozess nicht vollständige Kopie des Elternprozesses - Datenbereiche nur erzeugt, wenn Kind Daten schreibt - schneller, wenn anschliessendes exec() den Programmund Datenbereich neu erzeugt 24 Viele Unix Implementationen erstellen bei fork() zuerst keine Kopie von den Speicherbereichen - Kindprozess wird oft mit exec() überlagert - wäre deshalb ineffizient Diese Systeme verwenden das COW-Verfahren: Copy On Write - es wird keine Kopie erstellt wenn nur gelesen wird alle nur lesbaren Bereiche können problemlos gemeinsam genutzt werden - es wird eine Kopie erstellt wenn geschrieben wird schreibbare Bereich werden erst erzeugt resp. kopiert, wenn der Prozess versucht in diesen Bereich zu schreiben 24

25 Wie wird das BS ausgeführt? Das BS arbeitet wie normale Computersoftware wird als Programm vom Prozessor ausgeführt Das BS gibt oft Kontrolle ab Prozessor muss aber Kontrolle wieder an BS zurückgeben Was ist das Betriebsystem ein Programm? ein Prozess? eine Menge von Programmen und Prozessen? hängt von Implementation ab 25 25

26 Kernel mit eigenem Kontext (ältere BS) P 1 P 2 P n Kernel Kernel mit eigenen Kontext nur Benutzerprogramme sind Prozesse Betriebssystemcode - eigenständiges Programm mit eigenem Kontext - wird im System Mode ausgeführt innerhalb eines Benutzer-Prozesskontextes wird nie Betriebssystemcode ausgeführt 26 Der Kernel kann als eigenständiges Programm betrachtet werden, konzeptuell werden nur Anwenderprogramme als Prozesse betrachtet BS resp. Kernel hat eigenen Daten- und eigenen Stackbereich, also einen eigenen Kontext 26

27 BS-Funktionen im Kontext der Benutzerprozesse P 1 P 2 P n BS-Funktionen Funktionen zum Prozesswechsel BS-Funktionen im Kontext der Benutzerprozesse BS stellt "nur Funktionen" zur Verfügung - Betriebssystemcode im Kontext des Benutzerprozesses System Calls, Interrupts, Traps - CPU schaltet in System Mode, Ausführung aber im Benutzerkontext Context Switching meist ausserhalb von Prozessen 27 Wird eher von kleineren BS verwendet: PC, Workstation Konzeptuelle Sicht - BS ist Sammlung von Prozeduren, die vom Anwender aufgerufen werden BS Code, Bibliotheken und z.t. Daten in Shared Region des Benutzerprozesses abgebildet z.b. von UNIX/Linux verwendet 27

28 Prozessbasiertes Betriebssystem U 1 U 2 U n OS 1 OS 2 OS n Funktionen für Prozesswechsel und IPC Prozessbasierte Betriebssysteme kleine Anzahl von Systemfunktionen (Prozesswechsel, IPC) ausserhalb von Prozessen Microkernel das BS ist eine Sammlung von Systemprozessen grössere Kernel Funktionen sind eigenständige Prozesse gut geeignet für Multiprozessorsysteme 28 Vorteile - fördert modulare BS Implementation mit sauberen Schnittstellen - nicht kritische Funktionen problemlos als Prozesse implementierbar - implementieren z.b. Funktionen, die nicht einen speziellen Service anbieten, sondern allgemeiner sind: accounting - gut geeignet für Multiprozessorsysteme - schlanker Kernel - leicht erweiterbar Nachteil - relativ hohe Interprozesskommunikationskosten 28

29 Prozesse und Threads Threads Tanenbaum Kap. 2.2 Stallings Kap. 4 Glatz Kap

30 Lehrziele Threads Sie können den Unterschied zwischen Thread und Prozess erklären und diskutieren, sowie Anwendungen und Vorteile aufzeigen die Threadausführung erklären und diskutieren Threadtypen aufzählen und diskutieren das Solaris Prozess- und Threadkonzept erklären können 30 30

31 Threads Leightweight Prozesse Thread-Konzept starke Zunahme der Bedeutung wegen Multicore-Prozessoren unterstützt Software- und Hardware-Parallelität relativ einfache Handhabung Threads unterstützt durch Bibliotheken (Lösung auf Betriebssystemebene) - z.b. PThread Library (POSIX Standard) Programmiersprachen - Java, C#, Python, etc. - neu C++11 (C11) - OpenMP: Direktiven (C, C++, Fortran) für Multithreading - eigene Implementation oder Abbildung auf PThreads 31 31

32 slide Thread vs. Prozess Prozess: verwaltbare Einheit Prozess: unit of resource ownership Prozess: unit of scheduling Moderne Betriebssysteme trennen Eigenschaften Prozess: unit of resource ownership Thread: unit of scheduling Multithreading mehrere Threads pro Prozess Vorteile Threadwechsel weniger aufwendig bzw. billiger Aufgabenteilung unterstützt Multicore-Prozessoren 32 Prozess: "heavyweight process" - virtueller Adressraum, Programmcode, Daten, Betriebssystem-Ressourcen - single thread of exection Thread: "lightweight process" - immer an Prozess gebunden - unabhängiges Stück Code innerhalb eines Prozesses - teilt sich mit anderen Threads Adressraum, Daten, Kontext - hat eigene lokale Variablen, Register, PC, Stack, Stackpointer - hat Ausführungszustädend running, ready, etc. - speichert Threadkontext wenn inaktiv 32

33 Thread vs. Prozess Ressourcen und Scheduling Prozess Ressourcen Scheduling gemeinsame globale Daten Stack Stack PC PC offenes File output.txt Zugriff auf Drucker Thread A Thread B 33 33

34 Single- vs. Multithreading DOS ein Prozess ein Thread ecos (RedHat) ein Prozess mehrere Threads UNIX Solaris / Linux mehrere Prozesse ein Thread pro Prozess mehrere Prozesse mehrere Threads pro Prozess 34 Single Threading - das Betriebssystem kennt das Konzept des Threads nicht Multithreading - das Betriebssystem unterstützt die gleichzeitige Ausführung mehrerer Threads innerhalb eines Prozesses Beispiele - DOS unterstützt einen Benutzerprozess und einen Thread - UNIX unterstützt mehrere Prozesse, aber nur einen Thread pro Prozess - Solaris unterstützt mehrere Threads und mehrere Prozesse - ecos mehrere Threads, ein Prozess: Echtzeitbetriebssystem, von RedHat vertrieben 34

35 PThreads (POSIX): ein Beispiel #include <pthread.h> int avar = 16; // global avar void *PrintMessageFunction(void* ptr) { // print specified message printf("%s: %d\n", (char*)ptr, avar++); //!!!!! } int main (void) { pthread_t char char thread1, thread2; *message1 = "Hello"; *message2 = "World"; rv = pthread_create(&thread1, NULL, PrintMessageFunction, (void*)message1); assert(rv == 0); rv = pthread_create(&thread2, NULL, PrintMessageFunction, (void*)message2); assert(rv == 0); //...Bemerkung: 2. Param NULL entspricht "pthread_attr_default" pthread_join (thread1, NULL); pthread_join (thread2, NULL); // wait for termination of // specified threads } printf("hauptprogramm (Vater-Thread) beendet \n"); exit(0); 35 POSIX - Portable Operating System Interface Achtung - das Programm läuft nicht korrekt - "avar++" race condition 35

36 Wieso Threads? Thread ist "billig" Thread kann schnell erzeugt und beendet werden braucht nur Stack und Speicher für die Register Threadwechsel schnell nur PC, SP und Register austauschen Threads benötigen wenig Ressourcen keinen neuen Adressraum, keinen eigenen Datenbereich oder Programmcode keine zusätzlichen Betriebssystemressourcen Aber kein "Schutz" zwischen Threads 36 Anwendungen - Daten Server mehrere Anfragen "gleichzeitig" innerhalb kurzer Zeit bearbeiten pro Anfrage ein Thread ist effizienter als ein Prozess - Spreadsheet ein Thread behandelt Anzeige und Input ein Thread führt Befehle aus (im Hintergrund) - Parallelverarbeitung mit viel Kommunikation Zugriff auf gemeinsame Datenbereiche ist effizienter Matrixmultiplikation auf mehrere Threads verfteilen - Programme mit Vorder- und Hintergrundaktivitäten z.b. in regelmässigen Abständen Daten sichern Texteditor: Texteingabe - Korrektur - Datensicherung - Repetitive numerische Aufgaben in unabhängige Teilaufgaben aufteilen, ein Thread pro Teilaufgabe (z.b. Wetterberechnungen) Ungeeignete Anwendungen - wenn kein Multiprozessing notwendig ist - wenn mehrere Prozesse notwendig sind, z.b. Sicherheit, etc. 36

37 ... wieso Threads? Z.B. Serveranfrage auf Uniprozessor Prozess 1 Server 1 Server 2 t Server 1 Thread A (Process 1) Thread B (Process 1) Server 2 37 Anfrage eines Programmes an zwei Server - ohne Threading Verarbeitung durch zwei unabhängige Threads: Anfragen sequentiell die "Summe" der beiden Anfragen bestimmt die Verzögerung - mit Threading beide Anfragen fast gleichzeitig die längere Anfrage bestimmt die "Verzögerung" (falls beide Antworten für Weiterverarbeitung benötigt wird) 37

38 ... wieso Threads? Z.B. Arbeitsteilung mit SMP Single Thread CPU t Multiple Threads CPU 1 CPU 2 CPU 3 CPU 4 38 Anfrage eines Programmes an zwei Server - ohne Threading Verarbeitung durch zwei unabhängige Threads: Anfragen sequentiell die "Summe" der beiden Anfragen bestimmt die Verzögerung - mit Threading beide Anfragen fast gleichzeitig die längere Anfrage bestimmt die "Verzögerung" (falls beide Antworten für Weiterverarbeitung benötigt wird) 38

39 ... wieso Threads? Effizienzsteigerung durch Multithreading nur blockierter Thread muss warten - gilt nur für Kernel Threads schneller Threadwechsel bessere CPU-Auslastung - concurrent Ausführung mehrerer Threads Symmetrisches Multiprocessing Multicores Threads schnell erzeugbar, Thread Pool echt parallele Ausführung mehrerer Threads gemeinsame Daten in Shared Memory - einfacher und effizienter Datenzugriff - aber Achtung: Data Races 39 39

40 Threadausführung Threads: 3 resp. 5 Zustände Running, Ready und Blocked (New und Stopped) new ready running stopped blocked kein Zustand Suspend: alle Threads im gleichen Adressraum Swapping: Prozesses mit allen Threads suspendiert Prozesses terminiert alle Threads terminieren Was geschieht wenn ein Thread blockiert? user level threads der Prozess blockiert kernel level threads der Thread blockiert 40 40

41 Thread-Typen User-Level Threads(ULT) Kernel weiss nicht, dass es Threads gibt Threads laufen im Benutzerbereich realisiert mit Bibliotheken Thread Library P User Space Kernel Space Kernel-Level Threads(KLT) Kernel weiss, dass es Threads gibt Kernel stellt Systemfunktionen für Threadverwaltung zur Verfügung API zu Threadfunktionen im Kernel KLT: light weight process P User Space Kernel Space 41 41

42 User Level Threads (ULT) Der Kernelweissnicht, dass es Threadsgibt Anwendung verantwortlich für das Threadmanagement (Bibliotheksfunktionen) Threadwechsel benötigt keine Kernel Mode Privilegien Threadscheduling applikationsspezifisch wählbar Thread Bibliothek - Speichern und Rückspeichern des Threadkontextes - Threads erzeugen und beenden - Scheduling Thread Library User Space Kernel Space P 42 Was macht der Kernel bei User-Level Threads? - Kernel weiss nichts von Threadaktivitäten, kontrolliert aber nach wie vor die Prozessaktivitäten - Thread macht einen System Call ganze Prozess blockiert, auch die anderen Threads dieses Prozesses: die meisten System Calls blockieren - aus Sicht des Threadschedulers ist der Thread nach wie vor am Laufen Thread Zustände sind unabhängig von Prozesszuständen Threads können nicht unterbrochen werden, können nur freiwillig Kontrolle über CPU abgeben Vorteile von User-Level Threads Threadwechsel involviert Kernel nicht Läuft auf jedem Betriebssystem (Bibliothek notwendig) Schedulingverfahren kann anwendungsspezifisch gewählt werden, aber oft nicht preemptive Schnell und einfach Nachteile von User-Level Threads Die meisten System Calls blockieren Prozess blockiert und damit auch die anderen Threads des Prozesses Nur der Kernel kann Prozesse den Prozessoren zuweisen, d.h. Paralleverarbeitung ist nicht möglich Page Fault eines Threads blockiert ganzen Prozess 42

43 Kernel Level Threads (KLT) Thread Management durch Kernel keine Bibliothek, sondern API zu Threadfunktionen des Kernels Kernel verwaltet Kontextinformation von Prozessen und Threads Threadwechsel erfordert Intervention des Kernels Schedulierbare Einheit: Thread Threads können auf mehrere Prozessoren verteilt werden Beispiele - Solaris, Win/NT, OS/2, Linux User Space Kernel Space P 43 Threadwechsel - zwei Mode Switches Vorteile von Kernel-Level Threads - Kernel kennt alle Threads Prozess mit 10 Threads kann anders behandelt werden als Prozess mit einem Thread - Scheduling auf Thread Basis - geeignet für Anwendungen die häufig blockieren, z.b.server mit viel Interprozesskommunikation - Kernelfunktionen können selbst Multithreaded sein - geeignet für SMP Nachteile von Kernel-Level Threads - Threadwechsel innerhalb eines Prozesses durch Kernel kostet 2 Mode Switches - spürbarer Overhead und höhere Kernelkomplexität jeder Thread benötigt Thread Control Block (TCB) - spürbar langsamer bei 1 CPU 43

44 Kombination KLT/ULT Kombination Threads im User Space erzeugt Scheduling und Synchronisation hauptsächlich im User Space Programmierer kann zur Optimierung die Anzahl KLTs anpassen - kann beide Verfahren optimal kombinieren Beispiel: Solaris P Thread Library P User Space Kernel Space 44 44

45 Threads: Schutz und Synchronisation Threads nutzen gemeinsam Ressourcen Inter-Thread Kommunikation ohne Kernel-Hilfe möglich - globale Daten gemeinsam kein Schutz der Daten gegen unbeabsichtigten Zugriff Synchronisation notwendig Synchronisation Koordination der Ausführung von Threads Datenkonsistenz garantieren: keine Race-Conditions - Race-Condition gleichzeitiger Zugriff von 2 Threads davon 1 Schreibzugriff - z.b. "avar++" Race Condition 45 45

46 Solaris case study: Threads und Prozesse L L L L L L L L Threads Library L User Space Kernel Space Hardawre P P P P P User Level Thread Kernel Level Thread L Leight weight Process P Processor 46 Prozess - normaler Unix Prozess (User Address Space, Stack, PCB) - enthält einen oder mehrere Lightweight Prozesse User Level Thread (Bibliotheksfunktionen) - unsichtbar für das Betriebssystem - Schnittstelle zu Parallelität auf Applikationsebene - bound: fest an LWP angebunden - unbound: wird einem LWP zugewiesen Light-weight Process (LWP) - Bindeglied zwischen ULT und KLT - unterstützt mehrere ULTs, hat Verbindung zu einem KLT Kernel Level Threads - schedulierbare (und dispatchable) Einheiten User Level Threads werden benutzt, wenn logische Parallelität keine Unterstützung von Hardwareparallelität erfordert - Beispiel: Mehrere Fenster auf dem Display (logische Parallelität), aber nur eines ist aktiv (keine Hardwareparallelität) Mehrere LWPs für Anwendungen die blockierende Threads (I/O, etc.) enthalten - Prozess (Anwendung) blockiert nicht, wenn ein Thread blockiert - blockierende Threads einzeln an einen LWP binden - Beispiel: Matrixoperationen auf mehrere Threads abbilden: ein Thread an einen LWP binden kein Threadwechsel notwendig (im User Bereich) - Mischung bound / unboud: bound für Echzeitanwendungen (z.b. hohe Priorität), unbound für Hintergrundtasks Das Konzept erlaubt - 1:1 mapping - 1:n mapping - m:n mapping 46

47 Solaris: Threads und Prozesse Prozess normaler Unix Prozess (User Address Space, Stack, PCB) enthält einen oder mehrere Lightweight Prozesse User Level Thread (Bibliotheksfunktionen) unsichtbar für das Betriebssystem Schnittstelle zu Parallelität auf Applikationsebene bound: fest an LWP gebunden unbound: wird jeweils einem LWP zugewiesen Lightweight Process(LWP) Bindeglied zwischen ULT und KLT unterstützt mehrere ULTs, hat Verbindung zu einem KLT Kernel Level Threads schedulierbare (und dispatchable) Einheiten 47 Wann User Level Threads? - logische Parallelität benötigt keine Unterstützung durch Hardware-Parallelität - Beispiel: mehrere Fenster auf dem Display logische Parallelität nur eines ist aktiv keine HW-Parallelität Mehrere LWPs? - für Anwendungen mit blockierenden Threads (I/O, etc.) - Prozess (Anwendung) blockiert nicht, wenn ein Thread blockiert - blockierende Threads einzeln an einen LWP binden - Beispiel: Matrixoperationen auf mehrere Threads abbilden einen Thread an einen LWP binden kein Threadwechsel notwendig (im User Bereich) - Mischung bound/unboud: bound für Echzeitanwendungen (z.b. hohe Priorität) unbound für Hintergrund-Tasks 47

Prozesse und Threads. Peter Puschner Institut für Technische Informatik peter@vmars.tuwien.ac.at

Prozesse und Threads. Peter Puschner Institut für Technische Informatik peter@vmars.tuwien.ac.at Prozesse und Threads Peter Puschner Institut für Technische Informatik peter@vmars.tuwien.ac.at 1 Ziel: Gleichzeitiges, kontrolliertes Ausführen von Programmen auf einem Rechner Welche Mechanismen sind

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz Systeme I: Betriebssysteme Kapitel 4 Prozesse Maren Bennewitz Version 20.11.2013 1 Begrüßung Heute ist Tag der offenen Tür Willkommen allen Schülerinnen und Schülern! 2 Wdhlg.: Attributinformationen in

Mehr

Dämon-Prozesse ( deamon )

Dämon-Prozesse ( deamon ) Prozesse unter UNIX - Prozessarten Interaktive Prozesse Shell-Prozesse arbeiten mit stdin ( Tastatur ) und stdout ( Bildschirm ) Dämon-Prozesse ( deamon ) arbeiten im Hintergrund ohne stdin und stdout

Mehr

3. Unix Prozesse. Betriebssysteme Harald Kosch Seite 57

3. Unix Prozesse. Betriebssysteme Harald Kosch Seite 57 3. Unix Prozesse Ein Prozeß ist die Umgebung eines laufenden Programms. Ein bißchen Analogie. Wer kocht gerne? Papa möchte mit Hilfe eines Rezeptes eine Torte für seine Tochter backen. Das Rezept ist das

Mehr

Systemsoftware (SYS)

Systemsoftware (SYS) 5.Vorlesung Systemsoftware (SYS) Christian Baun cray@unix-ag.uni-kl.de Hochschule Mannheim Fakultät für Informatik Institut für Robotik 2.11.2007 Wiederholung vom letzten Mal Redundant Array of independent

Mehr

Betriebssysteme (BTS)

Betriebssysteme (BTS) 5.Vorlesung Betriebssysteme (BTS) Christian Baun cray@unix-ag.uni-kl.de Hochschule Mannheim Fakultät für Informatik Institut für Betriebssysteme 30.3.2007 Wiederholung vom letzten Mal Redundant Array of

Mehr

Kapitel III. Prozessverwaltung. VO Betriebssysteme

Kapitel III. Prozessverwaltung. VO Betriebssysteme Kapitel III Prozessverwaltung V 1 Was ist ein Prozess? Prozesse ein exekutierendes Programm (aktive Einheit) ein Prozess benötigt Ressourcen: CPU-Zeiten, Speicher, Files, I/O Systeme Betriebssystem ist

Mehr

6.Vorlesung Betriebssysteme Hochschule Mannheim

6.Vorlesung Betriebssysteme Hochschule Mannheim Christian Baun 6.Vorlesung Betriebssysteme Hochschule Mannheim SS2011 1/40 6.Vorlesung Betriebssysteme Hochschule Mannheim Christian Baun Karlsruher Institut für Technologie Steinbuch Centre for Computing

Mehr

Inhaltsverzeichnis. 2.4 Thread-Systeme. 2.1 Was ist ein Prozess? 2.2 Scheduling. 2.3 Interprozesskommunikation

Inhaltsverzeichnis. 2.4 Thread-Systeme. 2.1 Was ist ein Prozess? 2.2 Scheduling. 2.3 Interprozesskommunikation Inhaltsverzeichnis Systemprogrammierung - Kapitel 2 Prozessverwaltung 1/21 2.1 Was ist ein Prozess? Definition Prozesszustände Prozesskontrollblöcke 2.4 Thread-Systeme Sinn und Zweck Thread-Arten Thread-Management

Mehr

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Architektur Verteilter Systeme Teil 2: Prozesse und Threads Architektur Verteilter Systeme Teil 2: Prozesse und Threads 21.10.15 1 Übersicht Prozess Thread Scheduler Time Sharing 2 Begriff Prozess und Thread I Prozess = Sequentiell ablaufendes Programm Thread =

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

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

Kap. 2. Prozesse. Version vom 05.10.2009. Kap. 2 - Inhalt. Definition Prozeßzustände Threads Scheduling Beispiele. Folie 2

Kap. 2. Prozesse. Version vom 05.10.2009. Kap. 2 - Inhalt. Definition Prozeßzustände Threads Scheduling Beispiele. Folie 2 Kap. 2 Prozesse Version vom 05.10.2009 Kap. 2 - Inhalt Definition Prozeßzustände Threads Scheduling Beispiele Folie 2 Definition I - Woraus bestehen Prozesse? Prozeß ist ein Programm in seiner Ausführung,

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

Moderne Betriebssysteme. Kapitel 8. Kapitel 8. Folie: 1. Multiprozessorsysteme. Autor: Andrew S. Tanenbaum

Moderne Betriebssysteme. Kapitel 8. Kapitel 8. Folie: 1. Multiprozessorsysteme. Autor: Andrew S. Tanenbaum Moderne Betriebssysteme Kapitel 8 Multiprozessorsysteme Kapitel 8 Folie: 1 Multiprozessorsysteme Autor: Andrew S. Tanenbaum Pearson Studium 2009 2 3 4 5 6 7 Betriebssystemarten für Multiprozessoren Jede

Mehr

ARM Cortex-M Prozessoren. Referat von Peter Voser Embedded Development GmbH

ARM Cortex-M Prozessoren. Referat von Peter Voser Embedded Development GmbH ARM Cortex-M Prozessoren Referat von Peter Voser Embedded Development GmbH SoC (System-on-Chip) www.embedded-development.ch 2 Instruction Sets ARM, Thumb, Thumb-2 32-bit ARM - verbesserte Rechenleistung

Mehr

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13 UNIVERSITÄT LEIPZIG Enterprise Computing Einführung in das Betriebssystem z/os Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13 Verarbeitungsgrundlagen Teil 3 Betriebssystem Überwacher

Mehr

Die L4-Mikrokern. Mikrokern-Familie. Hauptseminar Ansätze für Betriebssysteme der Zukunft. Michael Steil. Michael Steil 18.04.2002

Die L4-Mikrokern. Mikrokern-Familie. Hauptseminar Ansätze für Betriebssysteme der Zukunft. Michael Steil. Michael Steil 18.04.2002 Die L4-Mikrokern Mikrokern-Familie Hauptseminar Ansätze für Betriebssysteme der Zukunft 18.04.2002 Folie 1 Aufbau des Vortrags 1. Mikrokerne: Idee und Geschichte 2. L4: ein schneller Mikrokern 3. L4Linux:

Mehr

RTEMS- Echtzeitbetriebssystem

RTEMS- Echtzeitbetriebssystem RTEMS- Echtzeitbetriebssystem Name: Hussein Hammoud Matrikel- Nr.: 230768 Studiengang: Technische Informatik Fach: Projekt Eingebettete Kommunikation Technische Universität Berlin Sommersemester 2006 RTEMS-

Mehr

13. Übung mit Musterlösung

13. Übung mit Musterlösung 13. Übung mit Musterlösung 1 Lösung 1 Teil 1.Multiple Choice) Bewertung: Ein Punkt für richtige Antwort, für jede falsche Antwort ein Punktabzug. a) Für die Exponentialverteilung ist die Zeit bis zum nächsten

Mehr

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper 1. Der Prozess beginnt im Zustand Erzeugt, nachdem sein Vaterprozess den Systemaufruf fork() (s.u.) abgesetzt hat. In diesem Zustand wird der Prozess-Kontext initialisiert. 2. Ist diese Aufbauphase abgeschlossen,

Mehr

Betriebssysteme it-akademie Bayern z/os und OS/390 Lehrgang 2008 Prof. Dr.-Ing. Wilhelm G. Spruth Teil 5 Prozessverwaltung

Betriebssysteme it-akademie Bayern z/os und OS/390 Lehrgang 2008 Prof. Dr.-Ing. Wilhelm G. Spruth Teil 5 Prozessverwaltung Betriebssysteme it-akademie Bayern z/os und OS/390 Lehrgang 2008 Prof. Dr.-Ing. Wilhelm G. Spruth Teil 5 Prozessverwaltung copyright W. G. Spruth, 10-2005 Hardware Extern E/A Programm System- Fehler Aufruf

Mehr

Ausarbeitung im Rahmen der PG Autolab zum Thema: OSEK 1 -OS. geschrieben von Oliver Botschkowski

Ausarbeitung im Rahmen der PG Autolab zum Thema: OSEK 1 -OS. geschrieben von Oliver Botschkowski Ausarbeitung im Rahmen der PG Autolab zum Thema: OSEK 1 -OS geschrieben von Oliver Botschkowski 1 Offene Systeme und deren Schnittstelle für die Elektronik im Kraftfahrzeug 1 Oliver Botschkowski - OSEK-OS

Mehr

Datentechnik. => Das Rechenergebnis ist nur dann sinnvoll, wenn es rechtzeitig vorliegt. Die Zeit muß daher beim Programmdesign berücksichtigt werden.

Datentechnik. => Das Rechenergebnis ist nur dann sinnvoll, wenn es rechtzeitig vorliegt. Die Zeit muß daher beim Programmdesign berücksichtigt werden. 5. Steuerung technischer Prozesse 5.1 Echtzeit (real time) Im Gegensatz zu Aufgabenstellungen aus der Büroumgebung, wo der Anwender mehr oder weniger geduldig wartet, bis der Computer ein Ergebnis liefert

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

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

Die Ausführung geschieht über die sequentielle Abarbeitung der Instruktionen.

Die Ausführung geschieht über die sequentielle Abarbeitung der Instruktionen. Kapitel 4 Prozesse Seite 1 4 Prozesse 4.1 Prozeßkonzept Prozess- ein Programm in Ausführung Die Ausführung geschieht über die sequentielle Abarbeitung der Instruktionen. Üblicher Start: über eine Kommandozeileneingabe

Mehr

Systemprogramme bezeichnen alle Programme, die bestimmte Aufgaben unterstützen, die unabhängig von einer konkreten Anwendung sind

Systemprogramme bezeichnen alle Programme, die bestimmte Aufgaben unterstützen, die unabhängig von einer konkreten Anwendung sind Betriebssysteme Systemprogramme bezeichnen alle Programme, die bestimmte Aufgaben unterstützen, die unabhängig von einer konkreten Anwendung sind Umfaßt z.b. auch Compiler, Interpreter und Dienstprogramme

Mehr

fork () Hans-Georg Eßer, Hochschule München Betriebssysteme I, SS 2008 2. Prozesse (2/2) Folie 4

fork () Hans-Georg Eßer, Hochschule München Betriebssysteme I, SS 2008 2. Prozesse (2/2) Folie 4 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]: SAS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)

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

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

OSEK-OS. Oliver Botschkowski. oliver.botschkowski@udo.edu. PG AutoLab Seminarwochenende 21.-23. Oktober 2007. AutoLab

OSEK-OS. Oliver Botschkowski. oliver.botschkowski@udo.edu. PG AutoLab Seminarwochenende 21.-23. Oktober 2007. AutoLab OSEK-OS Oliver Botschkowski oliver.botschkowski@udo.edu PG Seminarwochenende 21.-23. Oktober 2007 1 Überblick Einleitung Motivation Ziele Vorteile Einführung in OSEK-OS Architektur Task Management Interrupt

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

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

Betriebssysteme eine Einführung. Peter Puschner Institut für Technische Informatik peter@vmars.tuwien.ac.at

Betriebssysteme eine Einführung. Peter Puschner Institut für Technische Informatik peter@vmars.tuwien.ac.at Betriebssysteme eine Einführung Peter Puschner Institut für Technische Informatik peter@vmars.tuwien.ac.at 1 Betriebssystem Was ist das? Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS

Mehr

Domänenanalyse Threadverwaltung/Scheduling

Domänenanalyse Threadverwaltung/Scheduling Domänenanalyse Threadverwaltung/Scheduling Johannes Handl, Marc Rößler, Christian Strengert 15. Mai 2003 Domänenanalyse Threadverwaltung/Scheduling [1] Domänendefinition Die Erzeugung, Verwaltung, Umschaltung/Wechsel,

Mehr

... Client 1. Request. Reply. Client 2. Server. Client n. Günther Bengel Grundkurs Verteilte Systeme 3. Auflage Vieweg Verlag 2004 ISBN 3-528-25738-5

... Client 1. Request. Reply. Client 2. Server. Client n. Günther Bengel Grundkurs Verteilte Systeme 3. Auflage Vieweg Verlag 2004 ISBN 3-528-25738-5 1 2... n Abbildung 2-1: s und C + S Synchrone Kommunikation Warte auf Zurückgestellte synchrone Kommunikation Arbeite weiter Überprüfe periodisch das Vorliegen des Asynchrone Kommunikation Registriere

Mehr

Programme werden durch den Ablauf eines oder mehrerer Prozesse (engl.: process, task) von einem Rechner abgearbeitet.

Programme werden durch den Ablauf eines oder mehrerer Prozesse (engl.: process, task) von einem Rechner abgearbeitet. Prozessverwaltung Prozesse Programme werden durch den Ablauf eines oder mehrerer Prozesse (engl.: process, task) von einem Rechner abgearbeitet. Prozesse sind Abfolgen von Aktionen, die unter Kontrolle

Mehr

Musterlösung Prüfung SS 2002

Musterlösung Prüfung SS 2002 Musterlösung Prüfung SS 2002 Fach: I4neu (SEE, KOS, GRS, BTS) Teilprüfung: Betriebssystem Tag: 2.7.2002 8:15 12:15 Raum 1006 Bearbeitungszeit: 72 Minuten Name:... Matr.Nr.:... Punkte:... Note:... Hilfsmittel:

Mehr

Besprechung Aufgabe 5 (crawl) POSIX-Threads. Problem: UNIX-Prozesskonzept ist für viele heutige Anwendungen unzureichend

Besprechung Aufgabe 5 (crawl) POSIX-Threads. Problem: UNIX-Prozesskonzept ist für viele heutige Anwendungen unzureichend U7 6. Übung U7 6. Übung U7-1 Motivation von Threads U7-1 Motivation von Threads Besprechung Aufgabe 5 (crawl) OSIX-Threads Motivation Thread-Konzepte pthread-ai Koordinierung UNIX-rozesskonzept: eine Ausführungsumgebung

Mehr

Kapitel III. Prozesse. Prozessverwaltung. Was ist ein Prozess?

Kapitel III. Prozesse. Prozessverwaltung. Was ist ein Prozess? Kapitel III Prozessverwaltung 1 Was ist ein Prozess? Prozesse ein exekutierendes Programm (aktive Einheit) ein Prozess benötigt Ressourcen: CPU-Zeiten, Speicher, Files, I/O Systeme Betriebssystem ist verantwortlich

Mehr

2 Funktionen für die Verwaltung von Kontexten

2 Funktionen für die Verwaltung von Kontexten Übungen zur Vorlesung Betriebssysteme Projekt 2 Nicht-präemptive User-Level-Thread-Bibliothek (Version 1.10) 1 Einführung In diesem Projekt sollen Sie eine einfache, nicht-präemptive User-Level-Thread-Bibliothek

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

Prozesse und Logs Linux-Kurs der Unix-AG

Prozesse und Logs Linux-Kurs der Unix-AG Prozesse und Logs Linux-Kurs der Unix-AG Andreas Teuchert 27./28. Juni 2012 Prozesse unter Linux gestartete Programme laufen unter Linux als Prozesse jeder Prozess hat eine eindeutige Prozess-ID (PID)

Mehr

4 Threads. FH Regensburg BT/SS04 Betriebssysteme Wirtschaftsinformatik. 4.1 Allgemein

4 Threads. FH Regensburg BT/SS04 Betriebssysteme Wirtschaftsinformatik. 4.1 Allgemein 4 Threads 4.1 Allgemein Prozessmodell: Zwei unabhängige Eigenschaften eines Prozesses: Er hat Resourcen: Adressen, Daten, geöffnete Dateien und ist ausführbar Thread: hat keine eigenen Resourcen (ausser

Mehr

Ein Laufzeitsystem für hochgradig parallele Simulationen

Ein Laufzeitsystem für hochgradig parallele Simulationen Ein Laufzeitsystem für hochgradig parallele Simulationen Luc Bläser ETH Zürich / LBC Informatik Seminar für Verkehrssimulation TU Berlin, 6. Juni 2008 Motivation Parallele Simulation Selbstaktive Agenten

Mehr

B.5 Prozessverwaltung B.5. Prozessverwaltung. 2002 Prof. Dr. Rainer Manthey Informatik II 1

B.5 Prozessverwaltung B.5. Prozessverwaltung. 2002 Prof. Dr. Rainer Manthey Informatik II 1 Prozessverwaltung Prozessverwaltung 2002 Prof. Dr. Rainer Manthey Informatik II 1 Prozesse Programme werden durch den Ablauf eines oder mehrerer Prozesse (engl.: process, task) ) von einem Rechner abgearbeitet.

Mehr

Sicheres C Programmieren in Embedded Systemen ARM II (ARM7TMDI [1] ) Wintersemester 2010-2011

Sicheres C Programmieren in Embedded Systemen ARM II (ARM7TMDI [1] ) Wintersemester 2010-2011 Sicheres C in Embedded Systemen ARM II (ARM7TMDI [1] ) Wintersemester 2010-2011 Dipl. Ing. (FH) Ebrecht Roland, Infineon Technologies AG M.Eng (Electronic Systems) Güller Markus, Infineon Technologies

Mehr

Prozesse und Logs Linux-Kurs der Unix-AG

Prozesse und Logs Linux-Kurs der Unix-AG Prozesse und Logs Linux-Kurs der Unix-AG Benjamin Eberle 22. Januar 2015 Prozesse unter Linux gestartete Programme laufen unter Linux als Prozesse jeder Prozess hat eine eindeutige Prozess-ID (PID) jeder

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

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

Technische Informatik II

Technische Informatik II Institut für Technische Informatik und Kommunikationsnetze Technische Informatik II Übung 1: Prozesse und Threads Aufgabe 1: Prozesse und Threads a) Wie verhält sich eine Applikation die aus mehreren Prozessen

Mehr

Kapitel 2: Betriebssysteme

Kapitel 2: Betriebssysteme LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Skript zur Vorlesung: Einführung in die Informatik: Systeme und Anwendungen Sommersemester 2013 Kapitel 2: Betriebssysteme Vorlesung:

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

Dynamic Ressource Management

Dynamic Ressource Management best Open Systems Day Fall 2006 Dynamic Ressource Management Unterföhring Marco Kühn best Systeme GmbH kuehn@best.de Agenda Überblick Dynamic Resource Pools und FSS Dynamic Resource Memory RCAP Oracle

Mehr

5 Speicherverwaltung. bs-5.1 1

5 Speicherverwaltung. bs-5.1 1 5 Speicherverwaltung bs-5.1 1 Pufferspeicher (cache) realer Speicher Primärspeicher/Arbeitsspeicher (memory) Sekundärspeicher/Hintergrundspeicher (backing store) (Tertiärspeicher/Archivspeicher) versus

Mehr

Implementation of a Framework Component for Processing Tasks within Threads on the Application Level

Implementation of a Framework Component for Processing Tasks within Threads on the Application Level Implementation of a Framework Component for Processing Tasks within Threads on the Application Level Deutsches Krebsforschungszentrum, for Processing Task within Threads on the Application Level Motivation

Mehr

Rechnerarchitekturen und Betriebssysteme (CS201): Intro Betriebssysteme, SW Interrupts, Supervisory Call

Rechnerarchitekturen und Betriebssysteme (CS201): Intro Betriebssysteme, SW Interrupts, Supervisory Call Rechnerarchitekturen und Betriebssysteme (CS201): Intro Betriebssysteme, SW Interrupts, Supervisory Call 4. November 2014 Prof. Dr. Christian Tschudin Departement Mathematik und Informatik, Universität

Mehr

Zusammenfassung Modul 223

Zusammenfassung Modul 223 Zusammenfassung Modul 223 von Christian Roth Powered by Schuschu Bison Schweiz AG, Surentalstrasse 10, CH-6210 Sursee, www.bison-group.com Inhaltsverzeichnis 1 Entwurfmuster... 3 1.1 Singleton... 3 1.1.1

Mehr

5.3 Prozessumlagerung (process) swapping

5.3 Prozessumlagerung (process) swapping 5.3 Prozessumlagerung (process) swapping = Umlagerung des Adressraums eines Prozesses zwischen Arbeitsspeicher und Hintergrundspeicher, falls Arbeitsspeicher zu klein für alle Prozesse (aber groß genug

Mehr

CPU-Scheduling - Grundkonzepte

CPU-Scheduling - Grundkonzepte CPU-Scheduling - Grundkonzepte Sommersemester 2015 Seite 1 Gesamtüberblick 1. Einführung in Computersysteme 2. Entwicklung von Betriebssystemen 3. Architekturansätze 4. Interruptverarbeitung in Betriebssystemen

Mehr

Betriebssysteme KU - Einführungstutorium

Betriebssysteme KU - Einführungstutorium Betriebssysteme KU - Einführungstutorium SWEB-Tutoren irc://irc.at.euirc.net/bs Teamwork Arbeitsaufteilung? Zeiteinteilung? Codeeinteilung? Kommunikation! Kommunikation Kommunikation mit dem Team Gruppentreffen

Mehr

Übung zu Grundlagen der Betriebssysteme. 7. Übung 27.11.2012

Übung zu Grundlagen der Betriebssysteme. 7. Übung 27.11.2012 Übung zu Grundlagen der Betriebssysteme 7. Übung 27.11.2012 Threads Thread (Faden des (Kontrollflusses)): ist ein sequentieller Abarbeitungsablauf (Kontrollfluss) innerhalb eines Prozesses. Umfasst ein

Mehr

Konzepte von Betriebssystem Komponenten. Aufbau eines Modernen Betriebssystems (Windows NT 5.0)

Konzepte von Betriebssystem Komponenten. Aufbau eines Modernen Betriebssystems (Windows NT 5.0) Konzepte von Betriebssystem Komponenten Aufbau eines rnen Betriebssystems (Windows NT 5.0) Moritz Mühlenthaler 14.6.2004 1.Das Designproblem a) Überblick b) Design Goals c) Möglichkeiten der Strukturierung

Mehr

Betriebssysteme BS-V SS 2015. Hans-Georg Eßer. Foliensatz V: Ulix: Interrupts und Faults Ulix: System Calls. Dipl.-Math., Dipl.-Inform.

Betriebssysteme BS-V SS 2015. Hans-Georg Eßer. Foliensatz V: Ulix: Interrupts und Faults Ulix: System Calls. Dipl.-Math., Dipl.-Inform. BS-V Betriebssysteme SS 2015 Dipl.-Math., Dipl.-Inform. Foliensatz V: Ulix: Interrupts und Faults Ulix: System Calls v1.0, 2015/05/28 (klassische Dokumentation) Folie V-1 Übersicht: BS Praxis und BS Theorie

Mehr

OSEK / OSEKtime Ausgewählte Kapitel eingebetteter Systeme

OSEK / OSEKtime Ausgewählte Kapitel eingebetteter Systeme OSEK / OSEKtime Ausgewählte Kapitel eingebetteter Systeme Wilhelm Haas Wilhelm.Haas@informatik.stud.uni-erlangen.de Friedrich-Alexander-Universität Erlangen-Nürnberg Institut für Informatik Lehrstuhl 4

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

Embedded OS für ARM Cortex Microcontroller

Embedded OS für ARM Cortex Microcontroller Embedded OS für ARM Cortex Microcontroller RTOS Design, Timinganalyse und Test mit Core Simulation und Hardware Debugger Entscheidende Fragen für oder gegen RTOS Lohnt sich der Einsatz eines RTOS auch

Mehr

Concurrent programming Prinzipien und Einführung in Prozesse

Concurrent programming Prinzipien und Einführung in Prozesse LinuxFocus article number 272 http://linuxfocus.org Concurrent programming Prinzipien und Einführung in Prozesse by Leonardo Giordani About the author: Student an der Fakultät

Mehr

Von der Platte zur Anwendung (Platte, Treiber, Dateisystem)

Von der Platte zur Anwendung (Platte, Treiber, Dateisystem) (Platte, Treiber, Dateisystem) 1. Einleitung 2. Dateisysteme 2.1. Logisches Dateisystem 2.2. Dateiorganisationsmodul 2.3. Basis Dateisystem 3. Festplattentreiber 3.1. Funktionsweise 3.2. Scheduling Verfahren

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

Konzepte von Betriebssystemkomponenten (KVBK) Schwerpunkt Linux

Konzepte von Betriebssystemkomponenten (KVBK) Schwerpunkt Linux Konzepte von Betriebssystemkomponenten (KVBK) Schwerpunkt Linux Adressräume, Page Faults, Demand Paging, Copy on Write Seminar am 24.11.2003, Referent: Johannes Werner Speicherverwaltung ist bei heutigen

Mehr

5.Vorlesung Betriebssysteme Hochschule Mannheim

5.Vorlesung Betriebssysteme Hochschule Mannheim Christian Baun 5.Vorlesung Betriebssysteme Hochschule Mannheim SS2011 1/41 5.Vorlesung Betriebssysteme Hochschule Mannheim Christian Baun Karlsruher Institut für Technologie Steinbuch Centre for Computing

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

Betriebssystem? Übersicht. Ziele. Grundlagen. Das ist nur die Oberfläche... Wissen, was man unter einem Betriebssystem versteht

Betriebssystem? Übersicht. Ziele. Grundlagen. Das ist nur die Oberfläche... Wissen, was man unter einem Betriebssystem versteht Betriebssysteme Grundlagen Quellen: InSy Folien zum Thema Unix/Linux Wikipedia Das ist nur die Oberfläche... 1 Ziele 2 Übersicht Wissen, was man unter einem Betriebssystem versteht Was Was ist istein einbetriebssystem?

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

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

1. Prozesse & Threads (10 Punkte)

1. Prozesse & Threads (10 Punkte) Fachbereich Informatik/Mathematik Seite 1/9 1. Prozesse & Threads (10 Punkte) a) Erklären Sie den Unterschied zwischen Prozessen und Threads. [4 P.] Der wesentliche Unterschied ist, dass Prozesse über

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

Betriebssysteme (BS)

Betriebssysteme (BS) Betriebssysteme (BS) Prozesse 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/ss2011/bs/

Mehr

Inhaltsverzeichnis. 1.1 Der Begriff des Betriebssystems 1.2 Zur Geschichte der Betriebssysteme 1.3 Aufbau eines Rechners

Inhaltsverzeichnis. 1.1 Der Begriff des Betriebssystems 1.2 Zur Geschichte der Betriebssysteme 1.3 Aufbau eines Rechners Inhaltsverzeichnis Systemprogrammierung - Kapitel 1 Einführung 1/19 1.1 Der Begriff des Betriebssystems 1.2 Zur Geschichte der Betriebssysteme 1.3 Aufbau eines Rechners E/A-Operationen, Speicherstrukturen

Mehr

Vorl. 6: Single- und Multitasking

Vorl. 6: Single- und Multitasking Universität Bielefeld Technische Fakultät AG Rechnernetze und verteilte Systeme Vorl. 6: Single- und Multitasking Peter B. Ladkin Single Tasking Command Interpreter (ComInt) läuft wartet auf Tastatur-Eingabe

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

Übersicht. Virtueller Speicher CPU-Modi Virtuelle Maschinen. ISM SS 2015 - Teil 4/ProtectionI

Übersicht. Virtueller Speicher CPU-Modi Virtuelle Maschinen. ISM SS 2015 - Teil 4/ProtectionI Übersicht Virtueller Speicher CPU-Modi Virtuelle Maschinen 2 Behandelter Bereich: Virtualisierung Syscall-Schnittstelle Ports Server Apps Server Apps Betriebssystem Protokolle Betriebssystem Medien Hardware

Mehr

Windows CE. Process Control and Robotics. Fabian Garagnon

Windows CE. Process Control and Robotics. Fabian Garagnon Windows CE Process Control and Robotics Fabian Garagnon 14.01.2009 Agenda 3 Geschichte & Timeline Echtzeit & Multithreading Architektur Memory Management & Context Switch Entwicklung unter CE Interrupts

Mehr

User Level Device Driver am Beispiel von TCP

User Level Device Driver am Beispiel von TCP September 17, 2004 Einleitung Motivation für Userlevel Device Driver Probleme von Userlevel Device Driver Motivation für Userlevel Device Driver Modularität, leichterer Austausch/Erneuerung von Komponenten.

Mehr

2.2 Prozesse in Java

2.2 Prozesse in Java 2.2 Prozesse in Java! Java sieht kein Schlüsselwort für Prozesse vor, sondern bestimmte Klassen und Schnittstellen. Mit anderen Worten: der Prozessbegriff wird mit Mitteln der Objektorientierung eingeführt.

Mehr

Projektseminar Parallele Programmierung

Projektseminar Parallele Programmierung HTW Dresden WS 2014/2015 Organisatorisches Praktikum, 4 SWS Do. 15:00-18:20 Uhr, Z136c, 2 Doppelstunden o.g. Termin ist als Treffpunkt zu verstehen Labore Z 136c / Z 355 sind Montag und Donnerstag 15:00-18:20

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

Einführung in die technische Informatik

Einführung in die technische Informatik Einführung in die technische Informatik Christopher Kruegel chris@auto.tuwien.ac.at http://www.auto.tuwien.ac.at/~chris Betriebssysteme Aufgaben Management von Ressourcen Präsentation einer einheitlichen

Mehr

Prozesse und Scheduling

Prozesse und Scheduling Betriebssysteme für Wirtschaftsinformatiker SS04 KLAUSUR Vorbereitung mit Lösungen / Blatt 1 Prozesse und Scheduling Aufgabe 1 : Scheduling Gegeben seien die folgenden Prozesse und die Längen des jeweiligen

Mehr

Hardware Virtualisierungs Support für PikeOS

Hardware Virtualisierungs Support für PikeOS Virtualisierungs Support für PikeOS Design eines Virtual Machine Monitors auf Basis eines Mikrokernels Tobias Stumpf SYSGO AG, Am Pfaenstein 14, 55270 Klein-Winternheim HS Furtwangen, Fakultät Computer

Mehr

SurefireKernel ÜBERSICHT SPEZIFIKATION. www.triadem.ch. Sicherheitskernel DATASHEET

SurefireKernel ÜBERSICHT SPEZIFIKATION. www.triadem.ch. Sicherheitskernel DATASHEET Sicherheitskernel ÜBERSICHT SurefireKernel ist ein schlanker skalierbarer nicht preemptiver Echtzeit-Kernel der für den Einsatz auf Kontrollersysteme optimiert ist. Er verfügt über eine Realtime-Überwachung

Mehr

183.579, SS2012 Übungsgruppen: Do., 14.6. Mi., 20.6.2012

183.579, SS2012 Übungsgruppen: Do., 14.6. Mi., 20.6.2012 VU Technische Grundlagen der Informatik Übung 8: Systemsoftware und Netzwerke 183.579, SS2012 Übungsgruppen: o., 14.6. Mi., 20.6.2012 ufgabe 1: Virtual Memory Zeichnen Sie ein System das Paging zur Speicherverwaltung

Mehr

C. Betriebssystem-Strukturen C.1 Monolithische Betriebssysteme

C. Betriebssystem-Strukturen C.1 Monolithische Betriebssysteme C. Betriebssystem-Strukturen C.1 Monolithische Betriebssysteme Sammlung von Routinen, ohne Hierarchie, Kapselung und Schichtung. Jede Prozedur kann beliebige andere Prozeduren aufrufen und Datenstrukturen

Mehr

Grundlagen verteilter Systeme

Grundlagen verteilter Systeme Universität Augsburg Insitut für Informatik Prof. Dr. Bernhard Bauer Wolf Fischer Christian Saad Wintersemester 08/09 Übungsblatt 3 12.11.08 Grundlagen verteilter Systeme Lösungsvorschlag Aufgabe 1: a)

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

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

Prozeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen

Prozeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen Seite 8 A UFGABE 11 INTERP ROZEßKOMMUNIKATION Das folgende Petrinetz zeigt zwei verkoppelte Prozesse P1 und P2. Die Transitionen a und b beschreiben Aktionen von P1, die Transitionen c und d Aktionen von

Mehr

OpenCL Implementierung von OpenCV Funktionen

OpenCL Implementierung von OpenCV Funktionen Multi-Core Architectures and Programming OpenCL Implementierung von OpenCV Funktionen julian.mueller@e-technik.stud.uni-erlangen.de Hardware/Software Co-Design August 18, 2011 1 Table of content 1 OpenCL

Mehr