Kapitel 7 Prozesse und Threads

Slides:



Advertisements
Ähnliche Präsentationen
Beschreibung und Verwaltung von Prozesse
Advertisements

4.5 Virtueller Speicher Problemsituation: Programme und Daten sind zu groß für den verfügbaren Arbeitsspeicher Frühere Lösung Aufspaltung der Programme.
Leistung.
Kapitel 11 Deadlocks RW-Systemarchitekur Kap. 11.
RM Optimalität RM ist bzgl. Zulässigkeit optimal unter den präemptiven Scheduling-Verfahren mit festen Prioritäten. D.h. gibt es einen zulässigen Plan,
7.3 Scheduling Zur Erinnerung:
10.2 Wechselseitiger Ausschluss in Hardware
Wiederholung Betriebssystem bietet eine Abstraktion der Hardware an:
Beim Start eines Prozesses in Windows NT, 2000 wird a der Programmtext aus der exe-Datei ab der dort angegebenen Adresse gespeichert.
Fragen 2 Werden die Funktionen des Betriebssystemkernes wie normale Funktionen aufgerufen? Einf. In die WI, DV-Infrastruktur WS 03/04.
Informatik 12 | DAES Compilerbau Wintersemester 2010 / 2011 Dr. Heiko Falk Technische Universität Dortmund Lehrstuhl Informatik 12 Entwurfsautomatisierung.
1 Was ist ein klassischer Prozess? A eine exe-Datei B log. Adressraum, Ablaufumgebung für genau einen Thread C log. Adressraum, Ablaufumgebung für eine.
Informatik Tagesprotokoll vom
CD-ROMs im Netz Direkter Zugriff auf CD-ROMs via Web-Browser Hartmut Jörg.
FU Berlin SS 2003 Klaus-Peter Löhr
Enno Rehling und Roger Butenuth, Uni-GH Paderborn: Arminius: Software für Linux-basierte SCI-Cluster Arminius: Software für Linux-basierte SCI-Cluster.
Netzwerke im Dialogmarketing
Kapitel 6.1 Nebenläufigkeit und wechselseitiger Ausschluss
Systeme 1 Kapitel 7 Deadlocks WS 2009/10.
Kapitel 7.2 Dining philosophers problem
Systeme 1 Kapitel 5.1 Unix Scheduling WS 2009/101.
Kapitel 10 Nebenläufigkeit und wechselseitiger Ausschluss
Das Halteproblem. Gibt es einen Algorithmus, mit dem man für jedes beliebig vorgegebene Programm R und für jede beliebig vorgegebene Eingabe E entscheiden.
Windows Universität zu Köln
OpenMP Präsentation im Rahmen des Seminars
Vorlesung: Betriebssysteme © 2002 Prof. Dr. G. Hellberg 1 Studiengang Informatik FHDW Vorlesung Betriebssysteme 1. Quartal 2002.
Einführung Definitionen
1 Linux Paging, Caching und Swapping. 1 Vortragsstruktur Paging – Das Virtuelle Speichermodell –Die Page Table im Detail –Page Allocation und Page Deallocation.
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
Medizinische Statistik und Informationsverarbeitung Goldschmidt, Quade, Baur Institut für Medizinische Statistik, Dokumentation und Datenverarbeitung.
Situationen Verteilte Anwendungen Wintersemester 06/07 © Wolfgang Schönfeld.
Sicherheit von mobilem Code Hauptseminar: Sicherheit in vernetzten Systemen Sicherheit von mobilem Code Oliver Grassow.
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
Entwicklung verteilter eingebetteter Systeme - Einführung
Systeme 1 Kapitel 4 Prozesse WS 2009/10.
Betriebssysteme allgemein
Grundlagen Benutzerverwaltung
Das Betriebssystem.
Betriebssysteme & BIOS
Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss
Wichtige Errungenschaften
Wer macht was beim Einschalten des Rechners?
Präsentation von Lukas Sulzer
Betriebssysteme Übung Tutorium „System Calls & Multipgrogramming“
Herbers Excel-Server - der Workshop
Systemsoftware und Betriebssysteme
Studiengang Informatik FHDW
Betriebssysteme Übung Tutorium „TLB & Virtual Memory“
Vorgeschichte:. Der Prozess X befindet sich in der CPU in Ausführung
Kommandozeile und Batch-Dateien Molekulare Phylogenetik – Praktikum
Grundlagen, Prinzipien und Aufgaben eines Betriebssystems
Berufliches Gymnasium
Autor: Timo Pagel Nutzung: Diese Lernkarten sind für die Nutzung mit OpenCards gedacht Siehe dazu
Webserver Apache & Xampp Referenten: Elena, Luziano und Sükran
2.3 Implementierung von Prozessen
Universität zu Köln WS 2012/13 Seminar: IT-Zertifikat der Phil.-Fak.: Allgemeine Informationstechnologien I Dozentin: Susanne Kurz M.A. Referenten: Irina.
User Mode Linux Sven Wölfel 1. Juni User Mode Inhalt  Was ist UML?  Wofür kann man UML benutzen?
Vs Objektpufferung (caching) = dynamische, ad-hoc-Replikation einer Primärkopie: Zugriffswilliger beschafft sich temporär eine lokale Kopie cache.
1 Vorlesung 6 Peter B. Ladkin Single- und Multitasking Peter B. Ladkin
Betriebssysteme Was ist ein BS?
Multiprocessing mit OpenMPI Marius Albath. Vorlesung Betriebssysteme, Was ist OpenMPI Was ist OpenMPI OpenMPI Standard Setup OpenMPI Standard.
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Einflußreiche Systeme Dr. Wolfgang Wörndl.
Ablauf von Daten- verarbeitungsprozessen Gliederung: ● Zeitliche Steuerung von Abläufen – Druckauftragsverarbeitung – scheinbare Gleichzeitigkeit von Prozessen.
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Prozesse Alexander Sczyrba Jan Krüger.
Netzwerk - Programmierung
Magische Wand Ein Spiel zum Thema: Betriebssysteme.
Linux.
Einführung Definitionen
Einführung Definitionen
 Präsentation transkript:

Kapitel 7 Prozesse und Threads RW-Systemarchitektur Kap. 7

Zerlegung von Aufgaben in Teilaufgaben Ein natürliches Vorgehen zur Problemlösung: Die Zerlegung einer Gesamtaufgabe in Teilaufgaben, das Realisieren von Lösungen für die Teilprobleme und das Zusammenfügungen der Teillösungen zu einer Gesamtlösung. Betriebssysteme (und Programmiersprachen) bieten Konzepte für dieses strukturierte Vorgehen an: Prozesse und Threads als aktive Komponenten von Systemen, Interprozesskommunikation für die Kooperation zwischen Prozessen/Threads. Prozesse und Threads sind elementare Komponenten einer Zerlegung. Beide haben sequentiellem Steuerfluss (control flow), sie können aber dynamisch weitere Prozesse bzw. Threads kreieren. RW-Systemarchitektur Kap. 7

Wesentlicher Unterschied zwischen Prozessen und Threads Prozesse haben einen eigenen Adressraum, Threads haben keinen eigenen Adressraum. Ein Prozess mit seinem Adressraum und drei Threads Adressräume Prozesses Benutzer Benutzer P P3 P2 P1 Kern Kern RW-Systemarchitektur Kap. 7

Beispiel für Kooperation von Prozessen cat datei1 datei2 datei3 | grep Baum Ein Prozess konkateniert die Dateien datei1, datei2 und datei3 und schickt das Ergebnis durch eine Pipe an einen zweiten Prozess, der mittels grep nach Vorkommen von „Baum“ sucht. ls -l ls -l | grep ^d ls -l | grep ^d | wc -l echo `ls -l | grep ^d | wc -l` Files RW-Systemarchitektur Kap. 7

Beispiel für Threads Textverarbeitung eines großen Dokuments: Änderungen implizieren Reformatierung Benutzer kommuniziert mit Textverarbeitung - 1 Thread viel Ein-/Ausgabe wartet häufig auf Benutzer Reformatierung des Dokuments - 1 Thread (im Hintergrund) wird angestoßen, wenn Änderung erfolgt. Kooperation verkürzt die Erstellung der Sicht auf das reformatierte Dokument. Evtl. dritter Thread, der periodisch den aktuellen Stand des Dokuments zurück schreibt. Wesentlich: alle Threads arbeiten im gleichen Adressraum! RW-Systemarchitektur Kap. 7

Drei kooperative Threads bei der Textverarbeitung Reformatierung Thread2 Thread3 Thread1 RW-Systemarchitektur Kap. 7

Beispiel für Threads Ein Webserver mit mehreren Threads Dispatcher-Thread empfängt einkommende Anfragen aus dem Netz, weckt schlafenden Worker-Thread auf, um Anfrage zu bearbeiten. Worker-Thread prüft Verfügbarkeit der verlangten Seit im Cache. Wenn nicht verfügbar, startet Leseoperation von Platte und blockiert bis zur Vollendung der Leseoperation. Bereiter Thread wird zur Ausführung ausgewählt. RW-Systemarchitektur Kap. 7

Code für Webserver-Threads (a) Dispatcher-Thread (b) Worker-Thread RW-Systemarchitektur Kap. 7

Threads und Prozesse Prozesses können in ihrem Adressraum Threads starten. Ein Thread kann per fork einen Prozess starten, der mit einer Kopie des Adressraums arbeitet. RW-Systemarchitektur Kap. 7

Zerlegung in Teilaufgaben (ctd.) Gute Zerlegung -- geringe Abhängigkeiten zwischen Teilprozessen  großer Freiheitsgrad der Ausführung der Teilprozesse (für Betriebssystem-Scheduler), Wartezeiten auf Ein- / Ausgaben werden automatisch durch andere Prozesse genutzt gute Ausnutzung der Maschinen-Ressourcen RW-Systemarchitektur Kap. 7

Prozesse Prozesse sind „Programme in Ausführung“. Verschiedene Sichten: Für das Betriebssystem: zu verwaltende Aktivität Für den Entwickler eines Systems: Strukturierungskonzept – Die Durchführung einer einzigen Aufgabe lässt sich in relativ unabhängige Teilaufgaben zerlegen - ein Prozess für jede Teilaufgabe Für den Rechnerbetreiber: Pseudo-parallele Ausführung mehrerer Prozesse – effizientere Nutzung der Ressourcen RW-Systemarchitektur Kap. 7

Pseudo-parallele Ausführung In Multitasking-Betriebssystemen können mehrere Prozesse „pseudo-parallel“ ausgeführt werden. Auf Ein-Prozessor-Maschinen natürlich nicht wirklich parallel, aber abwechselnd - Zuteilung von Prozessor und anderen Betriebsmitteln durch Betriebssystem, Betriebsmittel werden virtualisiert, jeder Prozess scheint die notwendigen Betriebsmittel zu besitzen RW-Systemarchitektur Kap. 7

Multitasking Getrennte Ausführung: Task 1 Task 2 Task 3 Pseudo-parallele Ausführung: RW-Systemarchitektur Kap. 7

Prozesse Prozesse = “Programme in Ausführung” Zu jedem Prozess gehört ein Adressraum - Folge von konsekutiven Speicherzellen von einer minimalen bis zu einer maximalen Adresse - Enthält Ausführbares Programm Programmdaten Laufzeitkeller (“Stack”) Zusätzliche Prozessinformationen: Inhalt von Prozessorregistern (Programmzähler, allgemeine Register, Akkumulator, Stack Pointer) Verwaltungsinformationen zu geöffneten Dateien … Diese Informationen sind in einer sog. Prozesstabelle gespeichert. RW-Systemarchitektur Kap. 7

Implementierung von Prozessen Felder eines Eintrags in der Prozesstabelle RW-Systemarchitektur Kap. 7

Prozessverwaltung Betriebssystem kreiert Prozesse, bildet evtl. Prozesshierarchien, terminiert Prozesse, schaltet um zwischen Prozessen, verwaltet Prozessbeschreibungen. Prozesse können im Vordergrund oder im Hintergrund laufen. Benutzerprozesse laufen im Vordergrund, Hintergrundprozesse (in UNIX daemons) sind nicht assoziiert mit Benutzern, z.B. Server, die Anfragen bearbeiten, siehe Windows Task Manager, UNIX ps-Kommando RW-Systemarchitektur Kap. 7

Prozess-Kreieren Auslöser für das Kreieren eines Prozesses Systeminitialisierung Aufrufs eines Systemdienstes zur Prozesskreation, z.B. Prozess kreiert Kindprozess zur Arbeitsaufteilung, Benutzerauftrag zur Prozesskreation, z.B. durch Kommandozeilen-Eingabe oder Klicken auf Icon, evtl. verbunden mit Öffnen eines Fensters, Start eines Stapeljobs In jedem Fall: Prozesskreation durch den Aufruf eines Systemdienstes, in UNIX durch fork: kreiert eine Kopie des aufrufenden Prozesses RW-Systemarchitektur Kap. 7

Prozess-Terminieren Bedingungen zur Terminierung eines Prozesses Normales Ende (freiwillig) Fehlerausgang (freiwillig) Terminierender Fehler (fatal error) (unfreiwillig) Von einem anderen Prozess terminiert (unfreiwillig) RW-Systemarchitektur Kap. 7

Prozesshierarchien Vater-Prozess kreiert einen Kind-Process, Kinder-Prozesse können ihre eigenen Kinder-Prozesse kreieren Ergibt eine baumartige Hierarchie UNIX “Prozess Gruppe" Windows kennt das Konzept Prozesshierarchie nicht alle Prozesse auf gleicher Ebene RW-Systemarchitektur Kap. 7

Prozesszustände cat datei1 datei2 datei3 | grep Baum grep-Prozess hat nicht immer Eingabe (wenn cat-Prozess nicht schnell genug produziert). ist in einem Zustand, dass er laufen könnte, aber ihm Eingabe fehlt, wird blockiert, bis Eingabe eintrifft. Anderer Zustand, wenn Prozess bereit ist, ihm aber der Prozessor vom BS entzogen wurde. Dies drückt sich im Zustand eines Prozesses aus: RW-Systemarchitektur Kap. 7

Prozesszustände (2) Modell mit 5 Zuständen: Neu: Prozess wurde erzeugt, ist aber noch nicht gestartet Bereit: Rechenbereit, aber Prozessor ist diesem Prozess nicht zugeteilt. Aktiv: CPU ist dem Prozess zugeteilt. Blockiert: Nicht in der Lage weiterzuarbeiten, wartet auf ein Event (z.B. E/A) Terminiert RW-Systemarchitektur Kap. 7

Prozesszustände (3) terminiert aktiv bereit neu blockiert Zulassung Zuteilung Timeout Freigabe blockiert Warte auf Ereignis Ereignis tritt ein RW-Systemarchitektur Kap. 7

Prozesswechsel Prozesswechsel (Context Switch) - Wechsel von der Ausführung eines Prozesses zu der Ausführung eines anderen Dispatcher: Teil des Betriebssystems, der Prozesswechsel durchführt Scheduler: Teil des BS, der Prozessen die CPU zuweist Unterscheidung präemptive / nicht-präemptive Scheduler: Nicht-präemptive Scheduler - Prozesse geben Prozessor selbst ab wegen Terminierung Warten auf Abschluss einer Ein- / Ausgabeoperation Warten auf Zuteilung eines Betriebsmittels Bsp.: MS-DOS Präemptive Scheduler - Neuzuteilung des Prozessors in regelmäßigen Zeitintervallen vom Betriebssystem erzwungen Bsp.: UNIX, LINUX, neuere Windows-Versionen RW-Systemarchitektur Kap. 7

Prozesswechsel Hauptspeicher Code Prozess 1 Code Prozess 2 Activ. rec. Prozess 1 Activ. rec. Prozess 2 Daten Prozess 1 Daten Prozess 2 Prozesstabelle CPU PC Register Stack pointer Schritt 1: Prozess 1 wird ausgeführt. RW-Systemarchitektur Kap. 7

Prozesswechsel Hauptspeicher Code Prozess 1 Code Prozess 2 Activ. rec. Prozess 1 Activ. rec. Prozess 2 Daten Prozess 1 Daten Prozess 2 Prozesstabelle CPU PC Register Stack pointer Schritt 2: Activation record von Prozess 1 wird in Prozesstabelle geschrieben. RW-Systemarchitektur Kap. 7

Prozesswechsel Hauptspeicher Code Prozess 1 Code Prozess 2 Activ. rec. Prozess 1 Activ. rec. Prozess 2 Daten Prozess 1 Daten Prozess 2 Prozesstabelle CPU PC Register Stack pointer Schritt 3: Activation record von Prozess 2 wird aus der Prozesstabelle geladen. RW-Systemarchitektur Kap. 7

Prozesswechsel Hauptspeicher Code Prozess 1 Code Prozess 2 Activ. rec. Prozess 1 Activ. rec. Prozess 2 Daten Prozess 1 Daten Prozess 2 Prozesstabelle CPU PC Register Stack pointer Schritt 4: Prozess 2 wird ausgeführt. RW-Systemarchitektur Kap. 7

Warteschlangen wartender Prozesse Bereit-Warteschlange Freigabe Zulassung Zuteilung Prozessor Timeout Warteschlange Ereignis 1 Ereignis 1 tritt ein Warten auf Ereignis 1 … Warteschlange Ereignis n Ereignis n tritt ein Warten auf Ereignis n RW-Systemarchitektur Kap. 7

Swapping Swapping bzw. Auslagern: Prozesse werden aus dem Hauptspeicher entfernt Daten werden komplett auf Festplatte ausgelagert. Grund: Hauptspeicher wird für andere Prozesse benötigt. Aber: Swapping verursacht Kosten (Laufzeit)! Neue Prozesszustände - Kombinationen aus Bereit / blockiert und Ausgelagert / nicht ausgelagert Alternative: Virtueller Speicher mit Paging und/oder Segmentierung RW-Systemarchitektur Kap. 7

Prozesszustände terminiert aktiv bereit bereit / ausgel. blockiert neu Zulassung Zuteilung Timeout Freigabe blockiert Warte auf Ereignis Ereignis tritt ein neu block. / ausgel. aktivieren auslagern RW-Systemarchitektur Kap. 7

Prozesse Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse Kommunikation zwischen Prozessen über Nachrichten/Signale RW-Systemarchitektur Kap. 7

Fäden (Threads) Kooperative Erledigung einer Aufgabe auf gemeinsamen Daten – Strukturierung in Menge zusammen arbeitender sequentieller Threads Threads sind „leichtgewichtige Prozesse“ mit gemeinsamem Adressraum, aber eigenem Keller, eigene Register, eigenen Zustand! kein gegenseitiger Schutz, Kommunikation über gemeinsame Variablen. weniger Aufwand für Kreation, Löschung, Umschaltung im Vergleich zu (schwergewichtigen) Prozessen – gut für Anwendungen mit dynamisch kreierten und terminierten Threads Leistungsgewinn, wenn manche Threads Ein-/Ausgabe machen und andere rechnen. RW-Systemarchitektur Kap. 7