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



Ähnliche Dokumente
Kapitel III. Prozessverwaltung. VO Betriebssysteme

Kapitel III Prozessverwaltung VO Betriebssysteme 1

Dämon-Prozesse ( deamon )

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

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

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

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Systeme 1. Kapitel 5. Scheduling

Begriff: Scheduling Planung, Schedule Plan. Verplanung der CPU-Zeit an die Threads (bzw. Prozesse)

Formular»Fragenkatalog BIM-Server«

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial!

Grundlagen verteilter Systeme

4D Server v12 64-bit Version BETA VERSION

Domänenanalyse Threadverwaltung/Scheduling

Übungen zum Fach Betriebssysteme Kapitel 3

Round-Robin Scheduling (RR)

Prozesse und Threads. Peter Puschner Institut für Technische Informatik

How to do? Projekte - Zeiterfassung

Softwarelösungen: Versuch 4

Domänenmodell: Fadenkommunikation und -synchronisation

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant?

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

DOKUMENTATION VOGELZUCHT 2015 PLUS

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

EasyWk DAS Schwimmwettkampfprogramm

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

SharePoint Demonstration

Anleitung zur Nutzung des SharePort Utility

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

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

Vorl. 6: Single- und Multitasking

GEZIELT MEHR SICHERHEIT MIT 4I ACCESS SERVER & 4I CONNECT CLIENT

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

Tevalo Handbuch v 1.1 vom

Root-Server für anspruchsvolle Lösungen

Step by Step Webserver unter Windows Server von Christian Bartl

Prozessarchitektur einer Oracle-Instanz

Es kann maximal ein Prozess die Umladestelle benutzen.

TeamSpeak3 Einrichten

SDD System Design Document

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version Deutsch

5 Speicherverwaltung. bs-5.1 1

TCP SYN Flood - Attack. Beschreibung Auswirkungen Zuordnung zu Gefährdungskategorie und Attacken-Art Gegenmaßnahmen Quellen

Clustering (hierarchische Algorithmen)

Übung: Verwendung von Java-Threads

S7-Hantierungsbausteine für R355, R6000 und R2700

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

ICS-Addin. Benutzerhandbuch. Version: 1.0

3. Stored Procedures und PL/SQL

Kurzanleitung zur Softwareverteilung von BitDefender Produkten...2

OPERATIONEN AUF EINER DATENBANK

Welche der folgenden Aussagen gelten? a) Im allgemeinen gilt: ein Deadlock tritt auf gdw. der Resource-Allocation Graph einen Zykel

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Gesicherte Prozeduren

Prozesse und Threads. Prozess. Trace. Einfachstes Prozessmodell. Traces

Seminar: Mobile Geräte QNX Einführung

IBM Software Demos Tivoli Provisioning Manager for OS Deployment

Urlaubsregel in David

Einführung in die technische Informatik

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Prozesse und Threads. Peter Puschner Institut für Technische Informatik 1

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Professionelle Seminare im Bereich MS-Office

Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit,

1. Einschränkung für Mac-User ohne Office Dokumente hochladen, teilen und bearbeiten

Anleitung über den Umgang mit Schildern

SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen

Virtual Desktop Infrasstructure - VDI

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

Acceptor-Connector. Acceptor-Connector

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

Task A Zündung. Task B Einspritzung. Task C Erfassung Pedalwert. J. Schäuffele, Th. Zurawka: Automotive Software Engineering, Vieweg, 2003

Windows Server 2008 (R2): Anwendungsplattform

Systemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun. Übungsklausur

Avira Management Console Optimierung für großes Netzwerk. Kurzanleitung

Führen Sie zum Einstieg in die Materie einige Systemdiagnosen durch. Benutzen Sie dabei winmsd.exe.

Adami CRM - Outlook Replikation User Dokumentation

Whitepaper. Produkt: combit Relationship Manager / address manager. Dateiabgleich im Netzwerk über Offlinedateien

Online-Prüfungs-ABC. ABC Vertriebsberatung GmbH Bahnhofstraße Neckargemünd

Prozesse und Prozessmanagement des BS. 1 Unterschied Prozess, Threads. 1.1 Prozess. 1.2 Threads

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN

terra CLOUD IaaS Handbuch Stand: 02/2015

Lizenzen auschecken. Was ist zu tun?

Kommunikationsübersicht XIMA FORMCYCLE Inhaltsverzeichnis

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

Integrated Services Realtime Remote Network

TIMI: Technische Informatik für Medieninformatiker

OP-LOG

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

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:

Rechnernetzwerke. Rechnernetze sind Verbünde von einzelnen Computern, die Daten auf elektronischem Weg miteinander austauschen können.

OSEK-OS. Oliver Botschkowski. PG AutoLab Seminarwochenende Oktober AutoLab

Workshop: Eigenes Image ohne VMware-Programme erstellen

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Loggen Sie sich in Ihrem teamspace Team ein, wechseln Sie bitte zur Verwaltung und klicken Sie dort auf den Punkt Synchronisation.

Transkript:

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 für: Erzeugen und Terminieren von Prozessen Scheduling von Prozessen Synchronisierung von Prozessen Kommunikation zwischen Prozessen Behandlung von Deadlocks Was ist kein Prozess? Programm (passive Einheit) auf einer Speicherplatte Mehrere unabhängige Prozesse können dasselbe Programm verwenden (z.b. Mailprogramm). Prozess kann mehrere Prozesse erzeugen. 2

Multiprogrammierung Systeme, die mehr als 1 Prozess unterstützen Effizientes Nutzen von Ressourcen Während ein Prozess wartet, kann ein anderer exekutiert werden. Mehrere Aktivitäten zur gleichen Zeit: Window-System, Editor, Mail-Programm, Compiler, etc. Preemptive versus non-preemptive multiprogramming 3 Preemptive: Prozess kann CPU durch Betriebssystem verlieren. Non-preemptive: Explizite Programmkonstrukte im Benutzerprogramm steuern die Zuordnung von Prozessen zur CPU. Context Switch CPU-Wechsel von einem Prozess zum anderen nennt man Context Switching: Sichern des Zustandes des aktuellen Prozesses Laden des Zustandes eines neuen Prozesses Context Switchkann nur durchgeführt werden, wenn das BS die CPU hat. Trap: Auftreten eines Fehlers Interrupt: Ursache liegt nicht beim Benutzerprozess. Kontrolle an BS (Interrupt Handler) Explizite Aufgabe der CPU durch Benutzerprozess (z.b. yield oder suspend, I/O Operation, etc.) preemptive scheduling Zeit für Context Switching ist kritisch! 5

CPU-Switch zwischen Prozessen Context-Switch 8 7 BS-Aktionen bei einem Interrupt

Prozesshierarchien Elternprozess erzeugt Kindprozess Kindprozess kann selbst wieder einen Prozess erzeugen definiert eine Hierarchie UNIX nennt das eine Prozessgruppe" Windows kennt keine Prozesshierarchien alle Prozesse sind gleichwertig ohne Hierarchie 9 Prozesshierarchie eines Unix-Systems 10

Prozesszustände Prozesse können in Abhängigkeit von internen und externen Ereignissen verschiedene Zustände einnehmen. Jeder Prozess befindet sich zu jedem Zeitpunkt in genau einem Zustand. Zu jedem Zeitpunkt kann immer nur 1 Prozess von der CPU exekutiert werden. Typische Zustände eines Prozesses (abhängig vom Betriebssystem): New: Prozess wurde soeben erzeugt. Running: Instruktionen werden exekutiert. Waiting: Prozess wartet auf ein Ereignis (z.b. I/O). Ready: Prozess wartet auf CPU. Terminated: Prozess ist beendet. 11 Zustandsübergänge von Prozessen new bestätigt ready beenden terminated unterbrechen running bekommt CPU I/O Operation fertig oder I/O Operation oder Ereignis eingetroffen Warten auf Ereignis waiting 12

Scheduling (Prozessorzuteilung) Scheduling erfolgt bei folgenden Zustandsübergängen: Prozesszustand von Running in Waiting (z.b. I/O Anforderung) non-preemptive-scheduling Prozesszustand von Running in Ready (z.b. Interrupt) preemptive-scheduling Prozesszustand von Waiting in Ready(z.B. I/O Operation fertig) preemptive-scheduling Prozesszustand von Readyin Terminated non-preemptive-scheduling 13 Komponenten eines Prozesses Speichersegmente Programm: Textsegment Daten: Globale Variablen, Static Variablen Stack: Activation Records Heap: dynamisch angeforderte Daten CPU Register Programmzähler: nächste ausführbare Programmanweisung Allgemeine CPU Register Statusregister (Resultate von Vergleichsoperationen) Register für Fließkommazahlen 14

Betriebssystem und Prozesse (1) BS kontrolliert die Ausführung der Prozesse. Zuteilung von Ressourcen (CPU-Zeit, Speicher, Files, I/O Devices) Vergabe von Prioritäten Verwalten des Prozesszustandes Verwalten von Prozessen in Warteschlangen gemäß Prozesszuständen Erzeugen von Prozessen BS legt Speicher für Prozess an und verwaltet PCB. Wann wird ein Prozess erzeugt? Login Benutzerprozess erzeugt neuen Prozess (Process Spawning) BS erzeugt Serviceprozess etc. 15 Betriebssystem und Prozesse (2) Wann wird ein Prozess beendet? Prozess exekutiert exit Systemaufruf. Prozess liefert eventuell Ergebnis anparent-prozess (wait Systemaufruf). Prozess terminiert anderen Prozess durch kill Systemaufruf. Laufzeitfehler bei Abarbeitung des Prozesses Logout durch Benutzer 16

Erzeugen eines Prozesses Wer erzeugt Prozesse? Jeder Prozess kann weitere Prozesse erzeugen. Verwende Fork- (oder Spawn-) Operation Prozessbaum Vater-Kind-Beziehungen zwischen Prozessen Welche Ressourcen (CPU-Zeit, Speicher, Files, I/O Systeme, etc.) bekommt ein Kindprozess? Neue Ressourcen vom Betriebssystem Kopie der Ressourcen (Adressraum) des Vaterprozesses Teilmenge des Vaterprozesses (geringere Gefahr der Überlastung des Systems) Welches Programm exekutiert der Kindprozess? Eine Kopie des Vaterprozesses (Unix fork) Ein Prozess kann sein Programm ändern (execve Systemaufruf in Unix) Ein neues Programm beim Erzeugen des Prozesses (DEC VMS spawn) 17 Erzeugen eines Prozesses (Fork) Erzeuge PCB für neuen Prozess Kopiere die meisten Einträge des Vaterprozesses Initialisiere Abrechnungsinformation eindeutige PID (Prozessoridentifikation) Speicherzuteilung Kopiere eventuell alle Speichersegmente des Vaterprozesses. Programmsegment normalerweise identisch mit Vaterprozess wird daher mit Vaterprozess geteilt. Verwende Speicherverwaltungs-HW Einfügen in Ready-Warteschlange 18

Prozessterminierung Prozess kann sich selbst terminieren. Exit Systemaufruf Prozess terminiert anderen Prozess. Kill Systemaufruf Nicht jeder Prozess kann jeden Prozess terminieren. Normalerweise kann Vorgänger- einen Nachfolgerprozess terminieren. Betriebssystem-Kernel kann Prozess terminieren bei Überschreiten der zugeteilten Ressourcen. Illegaler Operation. Vaterprozess terminiert vor Kindprozess. Kindprozess ist dann ein Orphan-Prozess. Unix: Orphan-Prozess wird Kindprozess des Root-Prozesses. VMS: Terminieren des Vaterprozesses führt zur Terminierung aller Nachfolgerprozesse. 19 Prozessterminierung in Unix Kernel Gibt Speicher frei. Speichert PCB in Terminate-Warteschlange. Beendete Prozesse Signal an Vaterprozess über Prozessende (SIGCHILD) Prozess bleibt bestehen, bis er vollständig gelöscht wird (von Vater oder Kernel) Zombie-Prozess. Vaterprozess Wait Systemaufruf wartet auf Terminierung von Kindprozess und liefert Informationen über Terminierungsstatus Abrechnungsinformation Signal Handler sammelt beendete Prozesse. 20

Kontrolldaten des BS Das BS verwaltet Prozesse und Ressourcen mithilfe von Tabellen: Prozesstabellen (PCBs) Speichertabellen I/O-Tabellen File-Tabellen etc. 21 Prozesskontrollblock (PCB) Für jeden Prozess verwaltet das Betriebssystem einen PCB (dynamische Datenstruktur), in dem Informationen über Prozesse gespeichert sind. Inhalt des PCB: Prozesszustand: new, ready, etc. CPU-Register Speicherverwaltungsinformation Seitentabellen, Basis- und Offsetregister für Segmente, etc. CPU Scheduling Information Prozessprioritäten, Pointer auf Prozesswarteschlangen Abrechnungsinformation Prozessidentifikation, Benutzerzeiten, Systemzeiten, verwendete Files, etc. I/O Statusinformation Liste der offenen Files Ausstehende I/O-Operationen usw. 23

Verwaltung von PCBs Betriebssystem verwaltet Prozesse in einer Prozesstabelle. Kollektion von PCBs nennt man Prozesstabelle. Prozesse werden in Warteschlangen basierend auf Prozesszustand abgespeichert. Ready Warteschlange P1 P2 Plattenspeicherwarteschlange P3 P4 24 Netzwerkwarteschlange P5 P6 Prozess-Scheduling Ein Prozess wandert während seiner Lebenszeit von einer Warteschlange zur nächsten. Scheduler (Teil des BS) ist für die Verwaltung der Exekution von Prozessen zuständig. kontrolliert den Übergang von Prozessen zwischen den Warteschlangen. 26

Maximiere CPU-Leistung: Scheduling-Kriterien (1) CPU soll zu 100 % ausgelastet sein. Maximiere Durchsatz: Anzahl der Prozesse, die pro Zeiteinheit (z.b. Stunde oder Sekunde) vollständig exekutiert werden Minimiere Turnaround-Zeiten (Durchlaufzeit): Zeit die ein Prozess benötigt, um von der Ready- in die Terminated- Warteschlange zu kommen Minimiere Wartezeiten: Zeit, die ein Prozess in der Ready-Warteschlange verbringt Minimiere Antwortzeiten: Zeit zwischen Start eines Prozesses und der ersten Antwort 27 Scheduling-Kriterien (2) Allgemeine Ziele des Schedulings: maximiere CPU-Auslastung, Durchsatz minimiere Antwortzeit, Wartezeit, Turnaround-Zeit Systemorientiert: maximiere CPU-Auslastung maximiere Durchsatz Benutzerprozessorientiert: minimiere Turnaround-Zeit minimiere Wartezeit minimiere Antwortzeit (besonders wichtig für interaktive BSe) 29

Prozess-Scheduling Typen 3 Arten von Scheduler: langfristiger, mittelfristiger und kurzfristiger Scheduler Scheduler unterscheiden sich dadurch, wie häufig diese aktiv (verfügen über die CPU) sind. Scheduling verändert den Zustand von Prozessen im Zustandsübergangsdiagramm. 30 Langfristiger Scheduler Langfristiger Scheduler (LS) wählt Prozesse aus Plattenspeicher für Exekution im Hauptspeicher aus. LS bekommt CPU ca. einmal pro Minute. LS kontrolliert Grad des Multiprogrammierens (Anzahl der Prozesse im Hauptspeicher). Prozess wird vom LS entweder in den Hauptspeicher geladen und in Warteschlange des kurzfristigen Schedulers eingefügt, oder Warteschlange des mittelfristigen Schedulers eingefügt und bleibt im Plattenspeicher. Wann soll ein Prozess in den Hauptspeicher geladen werden? Ein anderer Prozess terminiert. CPU-Auslastung unterschreitet Grenzwert. 31

Mittelfristiger Scheduler Mittelfristiger Scheduler (MS) kontrolliert das Swapping. Swapping: Auslagern von Prozessen auf einen Sekundärspeicher CPU-Belastung ist zu groß. Es ist zuwenig Speicher für alle Prozesse im Hauptspeicher vorhanden. Zuviele Prozesse im Hauptspeicher verschlechtern die Performance. Swapping wird durch 2 neue Prozesszustände realisiert. Ready, suspend Blocked, suspend 32 Kurzfristiger Scheduler (Dispatcher) Der kurzfristige Scheduler (KS) wählt Prozess aus Ready- Warteschlange aus, der die CPU bekommen soll. KS bekommt CPU ca. einmal pro 100 msec. KS muss in dieser Zeit entscheiden, welcher Prozess als nächster die CPU bekommt. KS wird jedes mal aktiviert, wenn eine Event stattfindet, das den gerade exekutierenden Prozess unterbricht (Interrupt), oder eine Möglichkeit bietet, den gerade exekutierenden Prozess zu unterbrechen. Mögliche Events: Clock Interrupt, I/O Interrupt, BS Systemaufruf, Signal, etc. KS ist sehr zeitkritisch. 33

Prozesszustände mit Suspend (1) new ready, suspend langfristiges Scheduling ready kurzfristiges Scheduling running blocked, suspend mittelfristiges Scheduling blocked Event Wait exit 34 Prozesszustände mit Suspend (2) Zustände: ready: Prozess ist im Hauptspeicher und wartet auf die CPU. blocked: Prozess ist im Hauptspeicher und wartet auf ein Event. blocked, suspend: Prozess ist im Plattenspeicher und wartet auf ein Event. ready, suspend: Prozess ist im Plattenspeicher und bereit für die Exekution, sobald dieser in den Hauptspeicher geladen wird. Zustandsübergänge: running > blocked: Prozess fordert etwas (z.b. File) an, das noch nicht da ist. blocked > ready und blocked, suspend > ready, suspend : Event, auf das ein Prozess wartet, findet statt. new > ready, new > ready, suspend: neuer Prozess wird erzeugt. Wenn sich zu viele Prozesse im Hauptspeicher (new > ready) befinden, kann das zu Speicherproblem führen. Im Zustand ready, suspend bleibt der Prozess vorerst im Plattenspeicher. 35

Auswahl eines Prozesses für die CPU Auswahl eines Prozesses aus verschiedenen Warteschlangen für die Exekution durch die CPU nennt man Scheduling. Es gibt viele Scheduling-Strategien: First-come-First-Served (FCFS) - Prozess, der am längsten in Ready-Warteschlange ist Round-RobinScheduling FCFS und preemption Shortest Process Next - Prozess mit geringster Verarbeitungszeit Shortest Remaining Time First - Prozess mit geringster Zeit bis zur Terminierung Prioritäten-Scheduling - Prozess mit höchster Priorität etc. 38 First-Come-First-Served (FCFS) Prozess, der CPU zuerst anfordert, bekommt CPU. Prozess, der am längsten in der Ready-Warteschlange ist, wird ausgewählt. BS bevorzugt bestimmte Prozesse. lange vor kurzen Prozessen CPU-intensive vor I/O-intensiven Prozessen Prozess P1 P2 Zeit 24 3 P3 3 Prozesse fordern CPU in der Reihenfolge P1, P2, P3 an: durchschnittliche Wartezeit? Prozesse fordern CPU in der Reihenfolge P2,P3,P1 an: durchschnittliche Wartezeit? 39

Shortest-Process-First Prozess mit kürzester Laufzeit bekommt die CPU. Verfahren ist nicht preemptive. FCFS bei gleichlangen Prozessen verbessert Antwortzeit Problem: Performance-Abschätzung Schlecht für Time-Sharing-Systeme lange Prozesse Prozess P1 P2 P3 P4 Zeit 6 8 7 3 Prozess-Scheduling unter der Annahme, dass sich P1, P2, P3 und P4 in der Ready-Warteschlange befinden. durchschnittliche Wartezeit? 41 Shortest-Remaining-Time-First Bei Ankunft eines neuen Prozesses Pi kann ein Prozess Pj, der die CPU hat, unterbrochen (Preemption) werden, wenn Pi weniger CPU-Zeit benötigt als Pj. Vorteil: bessere Turnaround-Zeiten als Shortest-Process-First Nachteile: Verzögerung von langen Prozessen Performance-Abschätzung Prozess-Scheduling wie folgt: Prozess Ankunft durchschnittliche Wartezeit? P1 0 Zeit 8 43 P2 P3 P4 1 2 3 4 9 5

Prioritäten-Scheduling Prozesse werden nach Prioritäten mit und ohne Preemption der CPU zugeteilt. CPU wird an Prozess mit höchster Priorität (kleinster Wert) vergeben. bei gleicher Priorität verwende FCFS Problem: Verhungern von Prozessen Prozess Zeit Priorität Beispiel ohne Preemption: P1 10 3 Prozess-Scheduling wie folgt: durchschnittliche Wartezeit? P2 P3 1 2 1 3 45 P4 P5 1 5 4 2 Round-Robin-Scheduling (1) FCFS mit Preemption und fixen Zeitintervallen Dispatcher geht über Warteschlange und weist jedem Prozess die CPU für eine bestimme Zeiteinheit zu. Wenn Prozess weniger als diese Zeiteinheit benötigt, dann gibt er CPU wieder ab. Wenn Prozess mehr als diese Zeiteinheit benötigt, dann erfolgtpreemption Interrupt zum BS Context-Switch Prozess ans Ende der Warteschlange Dispatcher wählt nächsten Prozess aus. 47

Round-Robin-Scheduling (2) Prozess, der die CPU zuerst anfordert, bekommt diese auch. Prozess P1 P2 P3 Zeit 24 3 3 Beispiel: Zeiteinheit ist 4 und alle Prozesse fordern CPU zur gleichen Zeit an. durchschnittliche Wartezeit? 48 Round-Robin-Scheduling (3) Länge der Zeiteinheit hat Einfluss auf System-Performance. Lange Zeiteinheit realisiert FCFS. Kurze Zeiteinheit realisiert Processor Sharing: kurze Prozesse werden schneller abgearbeitet. 1 CPU für n Prozesse erscheint wie n CPUs (1/n der Geschwindigkeit des realen Prozessors) für n Prozesse. Es scheint, als ob es 10 langsame CPUs statt einer schnellen CPU gibt. Zeit für Context Switch ist auch zu berücksichtigen. Wenn Context Switch 10 % der Zeiteinheit benötigt, so werden ca. 10 % der CPU für das Context Switching benötigt. 50

Prozesse und Threads Ein Prozess hat Ressourcen virtuellen Adressbereich in dem das Prozess-Image geladen ist und der durch Speicherschutz abgesichert ist. Files, I/O Ressourcen, etc. definiert eine Einheit für das Scheduling Getrennte Betrachtung von Ressourcen und Scheduling-Einheit Ein Prozess entspricht einer Einheit für die Ressourcenverwaltung. Ein Thread entspricht einer Einheit für das Scheduling. Bei mehr als 1 Thread pro Prozess spricht man von Multithreading. 52 Threads (1) Thread: Leichtgewichtprozess, der aus folgenden Komponenten besteht: Programmzähler Register-Set für thread-lokale Variablen Stack Zustand Thread hat Zugriff auf Speicher und Ressourcen seines Prozesses. befindet sich in einem Ausführungszustand (Ready, etc.). kann Prioritäten haben. Eine Menge von Threads teilt sich Speicher (außer Stack) Programmcode offene Files (inkl. Daten in File-Buffer) Signale 53

Thread-Verwendung (1) 54 Ein Textverarbeitungsprogramm mit 3 Threads Thread-Verwendung (2) 55 Ein multithreaded Web Server

Thread-Verwendung (3) Code für vorherige Folie (a) Dispatcher Thread (b) Worker Thread 56 Threads Vorteile und Zustände Vorteile von Threads sehr schnelles Context Switching Datenaustausch mithilfe eines gemeinsamen Speichers (keine Kernelaufrufe für expliziten Datenaustausch) Wenn ein Thread blockiert, können andere Threads weiterarbeiten. Gilt nur für Kernel-Thread basierte Systeme. asynchrone Kommunikation mittels Threads (z.b. Java) Thread-Zustände: Spawn: Thread befindet sich in Ready-Warteschlange. Register und Stack werden angelegt. Block: Thread wartet auf Event. Unblock: Nachdem das Event eintritt, wird Thread in Ready- Warteschlange gegeben. Running: Thread wird von CPU exekutiert. Finish: Thread hat fertig exekutiert. Register und Stack werden freigegeben. 58

Multithreaded Prozessmodell Thread Thread Thread Process Control Block Thread Control Block User Stack Thread Control Block User Stack Thread Control Block User Stack User Address Space Kernel Stack Kernel Stack Kernel Stack 59 Thread-Modell (1) 60 (a) 3 Prozesse jeder mit einem Thread (b) 1 Prozess mit 3 Threads

Thread-Modell (2) 62 61 Thread-Modell (3) Jeder Stack mit seinem eigenen Stack

Benutzer-Threads Der Kernel sieht nur den Prozess aber keine Threads. Verwaltung der Threads mittels Thread Library, die außerhalb des BS liegt. Context-Switching zwischen Threads im User Mode ohne BS. Vorteile: Applikationsspezifisches Thread Scheduling is möglich. Portabilität von Thread Libraries, da keine Änderung des Kernels vorgenommen werden muss. Benutzer-Threads sind schneller als Kernel-Threads, weil der Kernel nicht involviert ist. Nachteile: Kein Parallelismus auf Multiprozessorarchitektur Wenn ein Thread einen System Call (immer blockierend) exekutiert, dann wird der ganze Prozess blockiert. 63 Implementierung eines Threads im Benutzeradressraum 64 User-level Threads Package

Kernel Threads Thread Management des BS verwaltet Threads. API zum Kernel Alle Threads eines Prozesses sind für den Kernel sichtbar. Thread Scheduling durch Kernel. Vorteile: Wenn Thread blockiert, können andere Threads weiterarbeiten. Parallelismus auf Mutiprozessorarchitekturen kann ausgenutzt werden. Nachteile: Thread Context Switching erfordert Umschalten zwischen 2 Modi Erhöht die Zeit für das Context Switching. User Mode <-> Kernel Mode Ideal wäre Kombination von User mit Kernel Threads (z.b. Sun Solaris). 65 Implementierung von Kernel-Threads 66 Ein Threads-Umgebung, die vom Kernel verwaltet wird

Hybride Thread-Implementierung Multiplexen von User-level Threads auf Kernel-level Threads 67 Thread Implementierung Benutzer-Threads Asynchr. Kernel Calls (Digital Unix) Solaris Benutzer-Threads Leichtgewicht Prozesse Kernel Threads 68

Zusammenfassung Thread: Leichtgewichtprozess für schnelles Context Switching Jeder Prozess kann aus mehreren Threads bestehen. Wenn ein Thread blockiert, kann ein anderer Thread weiterarbeiten. 3 Arten von Thread-Implementierungen: Benutzer-Threads Kernel Threads hybride Threads 69 Parallelarchitekturen IBM RS/6000 SP SGI Power Challenge XL NEC SX-5multi node (8 CPUs pro Knoten) 70 Earth Simulator (540*8 CPUs)

72 71 Some Large Clusters

Architekturen 500 SIMD Constellation Cluster 400 300 MPP 200 100 0 Jun 93 Nov 93 Single Processor Jun 94 Nov 94 Jun 95 Nov 95 SMP Jun 96 Nov 96 Jun 97 Nov 97 Jun 98 112 const, 28 clus, 343 mpp, 17 smp Nov 98 Jun 99 Nov 99 Jun 00 Nov 00 Verteilte und parallele Systeme: Probleme Skalierbarkeit (System & Anwendung) Verfügbarkeit (Fehlermanagement) Single System Image Schnelle Kommunikation (Netzwerk & Protokolle) Lastverteilung (CPU, Netz, Speicher, Platte) Sicherheit und Chiffrierung Verteilte Umgebung (soziale Belange ) Management (Verwaltung & Kontrolle) Softwarewerkzeuge Programmierumgebung (einfache und effiziente APIs) Anwendungen (cluster-aware & non-aware Anw.) 74

Entwicklung von verteilten und parallelen Programmen 75 Kooperation zwischen Prozessen Kooperierende Prozesse haben gemeinsamen Speicheradressbereich (Daten und Code) teilen sich Daten über Files oder kommunizieren über Nachrichtenaustausch. Konsistenter Zugriff auf gemeinsame Daten durch Synchronisierung. Speedup durch Parallelismus Speedup einer Anwendung = (Laufzeit von 1 Prozessor)/(Laufzeit von mehreren Prozessoren) Effizienz= Speedup/Anzahl der Prozessoren Teile Anwendung in mehrere Prozesse, die auf verschiedenen Prozessoren exekutieren. Benötige mehrere Prozessoren, um Speedup zu erzielen. Berechnungen als Module: verschiedene Prozessoren für verschiedene Funktionen 76 Editor, Debugger, Übersetzer, Linker, Assembler Moderne Betriebssysteme unterstützen gleichzeitiges Editieren, Drucken und Übersetzen.

Interprozess Kommunikation Methode zur Interprozesskommunikation (IPC) für einzelne Computer und verteilte Systeme Mechanismus für Synchronisierung und wechselseitiger Ausschluss Kommunikation setzt Verbindung (Link) zwischen Prozessoren voraus. Physikalischer Link: gemeinsamer Speicher, Hardware Bus, Netzwerk, usw. Logischer Link: Implementierungsaspekte Können mehr als 2 Prozesse einen Link verwenden? Können Links in 1 oder 2 Richtungen verwendet werden? Wie werden Prozesse bei Kommunikation angesprochen? Prozessidentifikation (Signale) Namen eines File-Systems (Unix Domain Sockets) Indirekt über Mailboxen (Ports) Send/ Receive Operationen für Kommunikation Send(Prozess, Nachricht) Receive(Prozess, Nachricht) 77 Anwendung: Erzeuger/Verbraucher Erzeuger generiert Daten und schickt sie an den Verbraucher. Erzeuger liest Daten und verwendet diese. Beispiel: Übersetzer (Erzeuger) Assembler (Verbraucher) Puffer-System: Lose gekoppelter Datenaustausch kommt in der Praxis häufig vor. Benötige Platz (Puffer), um generierte Daten für den Verbraucher zu speichern. Puffer kann fixe oder variable Größe haben. 78

Message Passing (1) Message Passing: Austausch von Nachrichten zwischen zwei oder mehreren Prozessen. Nachricht wird gesendet: Sender wartet auf Receiver, bis dieser die Nachricht erhält. Sender wartet, bis Nachricht im Netz ist. Sender wartet, bis Betriebssystem eine Kopie der Nachricht hat. Sender wartet, bis Receiver auf die Nachricht antwortet: ähnlich wie Aufruf einer Prozedur. erweiterbar auf Remote Procedure Call (RPC) System. Fehlermöglichkeiten Prozess terminiert. Receiver wartet beliebig lange. Sender könnte warten oder fortsetzen. Nachricht geht im Netzwerk verloren. Wer entdeckt diesen Fehler? Betriebssystem oder Anwendung Timeouts 79 Message Passing (2) Message Passing gibt es für Architekturen mit gemeinsamen und verteiltem Speicher sequentielle Architekturen Der Austausch von Nachrichten erfordert Synchronisation: Empfänger kann Nachricht erst empfangen, wenn diese vom Sender abgeschickt worden ist. Blockierende und nicht-blockierende Kommunikation blockierendes Send und Receive Sender und Receiver müssen warten, bis Nachricht beim Receiver ankommt. nicht-blockierendes Send und blockierendes Receive Sender ist solange blockiert, bis Nachricht im Netz ist. nicht-blockierendes Send und nicht-blockierendes Receive Weder Sender noch Receiver sind blockiert. 80

Kommunikationsoptimierung Message Passing ohne Optimierung send_block(p1,n) recv_block(p2,n) Message Passing mit Optimierung (Überlappung von Kommunikation mit sinnvollen Berechnungen) send_nonblock(p1,n) id = recv_nonblock(p2,n) // do some useful work if (recv_check(id)) then process_message() else // do some useful work recv_wait(id) // block for message to arrive process_message() endif 81 Direkte Kommunikation Jeder Prozess muss den Sender und Empfänger einer Nachricht explizit nennen. Beim Empfänger kann der Sender unbekannt sein (z.b. Server-Prozess) send(p,nachricht)... schicke Nachricht an Prozess P receive (Q, Nachricht)... erhalte Nachricht von Prozess Q receive (id, Nachricht)... erhalte Nachricht von beliebigem Prozess, dessen id nach Erhalt der Nachricht gegeben ist. Nachteil: Bei Änderung der Prozessnamen müssen eventuell zahlreiche Programmstellen geändert werden. 82

Indirekte Kommunikation (1) Nachrichten werden über Mailboxen (Ports) mit eindeutiger Identifikation übertragen. Nachrichten werden in Mailbox abgelegt und von dort gelesen. Prozesse können nur miteinander kommunizieren, wenn sie eine gemeinsame Mailbox mit eindeutiger Identifikation haben. Prozesse können daher auch über mehrere Mailboxen miteinander kommunizieren. 83 P 1 P n Mailbox Q 1 Q n Indirekte Kommunikation (2) Kommandos: send(a,nachricht) receive (A, Nachricht)... schicke Nachricht an Mailbox A... erhalte Nachricht von Mailbox A Sender-Receiver Verbindungen: statisch oder dynamisch (connect, disconnect) one-to-one, one-to-many, many-to-many 84

Barriers 85 Verwendung von Barriers Prozesse nähern sich einem Barrier Alle bis auf 1 Prozess bei Barrier blockiert Wenn der letzte Prozesse beim Barrier ankommt, werden alle Prozesse gleichzeitig durchgelassen. Signale (Unix) Signale ermöglichen den Austausch von 1-Bit Informationen zwischen Prozessen (oder Betriebssystem und einem Prozess). Signale: Systemänderung: Fenstergröße Zeitgrenze erreicht: Alarmnachrichten Fehlerereignisse: Segmentation Fault I/O Ereignisse: Daten stehen zur Verfügung. Signale sind ähnlich wie Interrupts. Ein Prozess wird angehalten, und eine spezielle Behandlungsfunktion wird aufgerufen. Vordefinierte Signale stehen meistens zur Verfügung. 86

Zusammenfassung Prozesse Multiprogrammieren und Context-Switch Prozesshierarchien Prozesszustände Prozesskontrollblock Prozess-Scheduling Threads als Alternative zu Prozessen Interaktion zwischen Prozessen Message Passing gemeinsamer Speicher Signale 87