Prozesse und Threads. Prozesse und Threads Tanenbaum Kap. 2.1, 2.2 Stallings Kap , , 4.5 Glatz Kap
|
|
- Tobias Roth
- vor 6 Jahren
- Abrufe
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 1 Ziel: Gleichzeitiges, kontrolliertes Ausführen von Programmen auf einem Rechner Welche Mechanismen sind
MehrSysteme 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
MehrDä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
Mehr3. 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
MehrSystemsoftware (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
MehrBetriebssysteme (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
MehrKapitel 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
Mehr6.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
MehrInhaltsverzeichnis. 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
MehrArchitektur Verteilter Systeme Teil 2: Prozesse und Threads
Architektur Verteilter Systeme Teil 2: Prozesse und Threads 21.10.15 1 Übersicht Prozess Thread Scheduler Time Sharing 2 Begriff Prozess und Thread I Prozess = Sequentiell ablaufendes Programm Thread =
MehrVirtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44
Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 44 Die Idee Virtuelle Adressen Prozess 1 Speicherblock 0 Speicherblock 1 Speicherblock 2 Speicherblock 3 Speicherblock 4 Speicherblock
MehrEmbedded-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
MehrKap. 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,
MehrWas 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
MehrModerne 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
MehrARM 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
MehrEnterprise 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
MehrDie 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:
MehrRTEMS- Echtzeitbetriebssystem
RTEMS- Echtzeitbetriebssystem Name: Hussein Hammoud Matrikel- Nr.: 230768 Studiengang: Technische Informatik Fach: Projekt Eingebettete Kommunikation Technische Universität Berlin Sommersemester 2006 RTEMS-
Mehr13. Ü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
MehrBetriebssysteme. 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,
MehrBetriebssysteme 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
MehrAusarbeitung 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
MehrDatentechnik. => 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
MehrVortrag zum Seminar Konzepte und Techniken virtueller Maschinen und Emulatoren. Bruno Kleinert fuddl@gmx.de. 20. Juni 2007
User Mode Linux (UML) Vortrag zum Seminar Konzepte und Techniken virtueller Maschinen und Emulatoren Friedrich-Alexander-Universität Erlangen-Nürnberg Bruno Kleinert fuddl@gmx.de 20. Juni 2007 Überblick
MehrPrü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
MehrDie 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
MehrSystemprogramme 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
Mehrfork () 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)
MehrRechnernutzung in der Physik. Betriebssysteme
Rechnernutzung in der Physik Betriebssysteme 1 Betriebssysteme Anwendungsprogramme Betriebssystem Treiber BIOS Direkter Zugriff von Anwenderprogrammen auf Hardware nur in Ausnahmefällen sinnvoll / möglich:
MehrA Kompilieren des Kernels... 247. B Lineare Listen in Linux... 251. C Glossar... 257. Interessante WWW-Adressen... 277. Literaturverzeichnis...
1 Einführung................................................ 1 1.1 Was ist ein Betriebssystem?............................... 1 1.1.1 Betriebssystemkern................................ 2 1.1.2 Systemmodule....................................
MehrOSEK-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
Mehrbereit (oder Zombie genannt). Normales Ende (exit) und synchrone und asynchrone Signal-Ereignisse, z.b.
Prof. Dr. Michael Jäger FB MNI Lösungsvorschlag zur Klausur Betriebssysteme vom 1.10.2014 Blau gekennzeichnete Textstellen sind beispielhafte Lösungen bzw. Antworten zu den Aufgaben. Rot gekennzeichnete
MehrU6-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
MehrBetriebssysteme 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
MehrDomä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
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
MehrProgramme 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
MehrMusterlö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:
MehrBesprechung 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
MehrKapitel 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
Mehr2 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
MehrKlausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition)
Ein Prozess kann unmittelbar vom Zustand 1. Running in den Zustand Ready 2. Running in den Zustand Blocked 3. Ready in den Zustand Running Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition) Der Adressraum
MehrProzesse 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)
Mehr4 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
MehrEin 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
MehrB.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.
MehrSicheres 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
MehrProzesse 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
MehrRechnerarchitektur und Betriebssysteme (CS201): Semaphor, Monitor, Deadlocks, Re-Entrance
Rechnerarchitektur und Betriebssysteme (CS201): Semaphor, Monitor, Deadlocks, Re-Entrance 5. November 2013 Prof. Dr. Christian Tschudin Departement Mathematik und Informatik, Universität Basel Repetition
MehrWas 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
MehrTechnische 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
MehrKapitel 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:
MehrOperating System Kernels
Operating System Kernels von Patrick Bitterling 1 Themenübersicht -Eine Einleitung über Kernel -Begriffserklärung, Architekturen -Kernel Subsysteme -Prozess-Scheduling, Speichermanagement,... -Der Networking
MehrDynamic 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
Mehr5 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
MehrImplementation 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
MehrRechnerarchitekturen 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
MehrZusammenfassung 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
Mehr5.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
MehrCPU-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
MehrBetriebssysteme 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 Threads Thread (Faden des (Kontrollflusses)): ist ein sequentieller Abarbeitungsablauf (Kontrollfluss) innerhalb eines Prozesses. Umfasst ein
MehrKonzepte 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
MehrBetriebssysteme 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
MehrOSEK / 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
MehrPOSIX 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
MehrEmbedded 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
MehrConcurrent 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
MehrVon 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
MehrName: 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
MehrKonzepte 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
Mehr5.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
MehrBetriebssysteme 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
MehrBetriebssystem? Ü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?
MehrEinfü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
MehrBetriebssysteme. 4y Springer. Eine kompakte Einführung mit Linux. Albrecht Achilles. Mit 31 Abbildungen
Albrecht Achilles 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Betriebssysteme Eine kompakte Einführung mit Linux
Mehr1. 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
MehrBetriebssysteme 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
MehrBetriebssysteme (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/
MehrInhaltsverzeichnis. 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
MehrVorl. 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
MehrVerbessertes Konzept: Monitore
Verbessertes Konzept: Monitore Ein Nachteil von Semaphoren ist die Notwendigkeit zur expliziten Anforderung P und Freigabe V des kritischen Bereiches durch den Programmierer Vergißt der Entwickler z.b.
MehrÜ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
MehrWindows 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
MehrUser Level Device Driver am Beispiel von TCP
September 17, 2004 Einleitung Motivation für Userlevel Device Driver Probleme von Userlevel Device Driver Motivation für Userlevel Device Driver Modularität, leichterer Austausch/Erneuerung von Komponenten.
Mehr2.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.
MehrProjektseminar 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
MehrCA Ü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
MehrEinführung in die technische Informatik
Einführung in die technische Informatik Christopher Kruegel chris@auto.tuwien.ac.at http://www.auto.tuwien.ac.at/~chris Betriebssysteme Aufgaben Management von Ressourcen Präsentation einer einheitlichen
MehrProzesse 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
MehrHardware 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
MehrSurefireKernel Ü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
Mehr183.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
MehrC. 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
MehrGrundlagen 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)
Mehrx86 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
MehrParallelverarbeitung 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
MehrProzeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen
Seite 8 A UFGABE 11 INTERP ROZEßKOMMUNIKATION Das folgende Petrinetz zeigt zwei verkoppelte Prozesse P1 und P2. Die Transitionen a und b beschreiben Aktionen von P1, die Transitionen c und d Aktionen von
MehrOpenCL 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