Fakultät für Informatik der Technischen Universität München. Kapitel 3. Nebenläufigkeit

Ähnliche Dokumente
Kapitel 3. Fakultät für Informatik der Technischen Universität München. Echtzeitsysteme Lehrstuhl Informatik VI Robotics and Embedded Systems

Beispiel FTOS: Hintergrund

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

Modellierung von Echtzeitsystemen

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Teil 3: Konzepte von Betriebssystemen

Technische Informatik 1

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Betriebssysteme G: Parallele Prozesse (Teil A: Grundlagen)

Grundlagen Rechnerarchitektur und Betriebssysteme

Prozesse. Prozesse sind Programme. Prozesse können aus Unterprozessen bestehen. Prozesshierarchie Unterprozesse Threads

Betriebssysteme Betriebssysteme und. Netzwerke. Netzwerke Theorie und Praxis

Einführung. Anwendung. logischer Adreßraum. Kontrollfluß (Thread) = CPU führt Instruktionen aus. Was charakterisiert einen Kontrollfluß?

Konzepte von Betriebssystem- Komponenten Ausnahme- / Unterbrechungsbehandlung

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Testen nebenläufiger Objekte

Betriebssysteme Kapitel E : Prozesse

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

Was machen wir heute? Betriebssysteme Tutorium 3. Organisatorisches. Prozesskontrollblock (PCB) Programmieraufgaben. Frage 3.1.a

Just-In-Time-Compiler (2)

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung

Prozesse: Prozesskontrollblock, -steuerung, -umschaltung

Echtzeit-Multitasking

(a) Wie unterscheiden sich synchrone und asynchrone Unterbrechungen? (b) In welchen drei Schritten wird auf Unterbrechungen reagiert?

Echtzeit-Multitasking

2Binden 3. und Bibliotheken

Nebenläufige Programmierung in Java: Threads

Betriebssysteme. Vorlesung im Herbstsemester 2010 Universität Mannheim. Kapitel 6: Speicherbasierte Prozessinteraktion

RTOS Einführung. Version: Datum: Autor: Werner Dichler

Threads Einführung. Zustände von Threads

Proseminar: Konzepte von Betriebsystem-Komponenten (KVBK)

Basisinformationstechnologie I Wintersemester 2011/ November 2011 Betriebssysteme

Javakurs für Fortgeschrittene

Betriebssystem. Arten von Betriebssystemen. Zweiteilung des Betriebssystems. 5. Kapitel Systemsoftware: Prozesse und Prozesswechsel

VORSTELLUNG DER DIPLOMARBEIT

Architektur und Organisation von Rechnersystemen

Modul B-PRG Grundlagen der Programmierung 1

Systemprogrammierung

Immediate Priority Ceiling

Betriebssysteme. Tutorium 2. Philipp Kirchhofer

Verteilte Systeme. Verteilte Systeme. 5 Prozeß-Management SS 2016

Überblick und Aufgaben

Prozesse and Threads WS 09/10 IAIK 1

Tobias Klaus Florian Schmaus Peter Wägemann

Betriebssysteme VO Betriebssysteme KU

Seminar: Multi-Core Architectures and Programming

Nicht-periodische Aufgaben: Extended Scope (Teil 1)

Atmega Interrupts. Rachid Abdallah Gruppe 3 Betreuer : Benjamin Bös

Just-In-Time-Compiler (2)

Konzepte und Methoden der Systemsoftware. Aufgabe 1: Polling vs Interrupts. SoSe bis P

Prozesse vs. Threads

Grundlagen der Informatik für Ingenieure I. 5. Prozessverwaltung - Einführung

Rechnernutzung in der Physik. Betriebssysteme

Betriebssysteme. FU Berlin SS 2003 Klaus-Peter Löhr

Betriebssysteme KU - Einführungstutorium

WS Parallele Prozesse. Prof. Hannelore Frank. Parallele Prozesse. PetriNetze. Synchronisation UNIX. Wettbewerb PC Krit.Abschnitt Spinlocks

Musterlösung zur KLAUSUR

Linker: Adreßräume verknüpfen. Informationen über einen Prozeß. Prozeß-Erzeugung: Verwandtschaft

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

Betriebssysteme, Rechnernetze und verteilte Systeme 1 (BSRvS 1)

Eingebettete Systeme

Betriebssysteme Vorlesung im Herbstsemester 2008 Universität Mannheim

Nicht-periodische Aufgaben: Extended Scope (Teil 1)

Cell and Larrabee Microarchitecture

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

Sequentielle Programm- / Funktionsausführung innerhalb eines Prozesses ( thread = Ausführungsfaden )

Ausgewählte Kapitel eingebetteter Systeme

Übung I Echtzeitbetriebssysteme

Ein- und Ausgabegeräte

Prozessrechner-Praktikum Echtzeitsysteme

Technische Informatik II (TI II) (4) Prozesse und Threads. Sebastian Zug Arbeitsgruppe: Embedded Smart Systems

Betriebssysteme (BS)

J Prozesse und Nebenläufigkeit

Windows 2000 Scheduler

Pthreads. David Klaftenegger. Seminar: Multicore Programmierung Sommersemester

Parallele Prozesse Prozeß Parallele Prozesse verzahnte Prozesse Nebenläufige Prozesse: Threads Vorlesung Software-Entwicklung / Folie 131 Ziele:

Betriebssysteme 1. Thomas Kolarz. Folie 1

Modellierung verteilter Systeme (Grundlagen der Programm- und Systementwicklung II)

Überlegungen beim Entwurf eines Betriebssystems

Proseminar KVBK : Scheduler unter Linux

Rechnergrundlagen. Vom Rechenwerk zum Universalrechner

Klausur Betriebssysteme

Konzepte von Betriebssystem-Komponenten. Ausnahme- / Unterbrechungsbehandlung

Dr. Monika Meiler. Inhalt

5 Kernaufgaben eines Betriebssystems (BS)

Dr. Peter Tröger / Prof. M. Werner

Rechnergrundlagen. Vom Rechenwerk zum Universalrechner. von Prof. Dr. Rainer Kelch. Fachbuchverlag Leipzig im Carl Hanser Verlag

RO-Tutorien 15 und 16

Echtzeitprogrammierung und Echtzeitverhalten von Keil RTX. Frank Erdrich Semester AI 7

Betriebssysteme. Betriebssysteme: Architektur. Einführung: Inhalt. Architektur: UNIX. Einführung: Inhalt. Allgemeine Aufgaben von BS

2. Der ParaNut-Prozessor "Parallel and more than just another CPU core"

Überblick. Replikation Motivation Grundlagen Aktive Replikation Passive Replikation. c td VS (SS16) Replikation 6 1

Betriebssysteme. FU Berlin WS 2004/05 Klaus-Peter Löhr. bs-1.1 1

Transkript:

Kapitel 3 Nebenläufigkeit 136

Inhalt Motivation Unterbrechungen (Interrupts) (Software-) Prozesse Threads Interprozesskommunikation (IPC) 137

Links: Literatur Maurice Herlihy, Nir Shavit, The Art of Multiprocessor Programming, 2008 R.G.Herrtwich, G.Hommel, Nebenläufige Programme 1998 A.S.Tanenbaum, Moderne Betriebssysteme, 2002 Edward Lee: The Problem with Threads: http://www.eecs.berkeley.edu/pubs/techrpts/2006/eecs-2006-1.pdf http://www.beyondlogic.org/interrupts/interupt.htm http://www.llnl.gov/computing/tutorials/pthreads/ 138

Definition von Nebenläufigkeit Allgemeine Bedeutung: Nebenläufige Ereignisse sind nicht kausal abhängig. Ereignisse (bzw. Ereignisfolgen) sind dann nebenläufig, wenn keines eine Ursache im anderen hat. Bedeutung in der Informatik: Nebenläufig bezeichnet hier die Eigenschaft von Programmcodes, nicht linear hintereinander ausgeführt werden zu müssen, sondern zeitlich parallel zueinander ausführbar zu sein. Aktionen (Programmschritte) können parallel (gleichzeitig oder quasi gleichzeitig) ausgeführt werden, wenn keine das Resultat der anderen benötigt. Die parallele Ausführung von mehreren unabhängigen Prozessen (siehe später) auf einem oder mehreren Prozessoren bezeichnet man als Multitasking. Die parallele Ausführung von Teilsequenzen innerhalb eines Prozesses heißt Multithreading. 139

Motivation Gründe für nebenläufige Ausführung von Programmen in n: sind häufig verteilte Systeme (Systeme mit mehrere Prozessoren). Zumeist werden zeitkritische und zeitunkritische Aufgaben parallel berechnet. Bei reaktiven Systemen ist die maximale Antwortzeit häufig limitiert. Abbildung der parallelen Abläufe im technischen Prozeß Aber: kleinere (Monoprozessor-)Echtzeit-Systeme verzichten häufig auf die parallele Ausführung von Code, weil der Aufwand für die Prozeßverwaltung zu hoch ist. Dennoch auch hier: typischerweise Parallelverarbeitung in Hauptprogramm und Unterbrechungsbehandler (interrupt service routine, interrupt handler) 140

Anwendungsfälle für Nebenläufigkeit (Unterbrechungen) Signal falls Temperaturwert überschritten wird Unterbrechungen (interrupts) Allgemeines Anwendungsgebiet: hauptsächlich zur Anbindung von externer Hardware 141

Anwendungsfälle für Nebenläufigkeit (Prozesse) Verteiltes System zur Steuerung der Industrieanlage Prozesse (tasks) Allgemeine Anwendungsgebiete: verteilte Systeme, unterschiedlichen Anwendungen auf einem Prozessor 142

Anwendungsfälle für Nebenläufigkeit (Threads) Reaktion auf Nutzereingaben trotz Berechnungen (z.b. Übersetzen eines Programms) leichtgewichtige Prozesse (Threads) Allgemeines Anwendungsgebiet: unterschiedliche Berechnungen im gleichen Anwendungskontext 143

Nebenläufigkeit Prozesse 144

Definition Prozess: Abstraktion eines sich in Ausführung befindlichen Programms Die gesamte Zustandsinformation der Betriebsmittel für ein Programm wird als eine Einheit angesehen und als Prozess bezeichnet. Prozesse können weitere Prozesse erzeugen Vater-,Kinderprozesse. Prozess Programmcode Prozesskontext CPU Register MMU Register Stack Dateiinfo Zugriffsrechte Kernelstack 145

Prozessausführung Zur Prozessausführung werden diverse Resourcen benötigt, u.a.: Prozessorzeit Speicher sonstige Betriebsmittel (z.b. spezielle Hardware) Die Ausführungszeit ist neben dem Programm abhängig von: Leistungsfähigkeit des Prozessors Verfügbarkeit der Betriebsmittel Eingabeparametern Verzögerungen durch andere (wichtigere) Aufgaben 146

Prozesszustände (allgemein) Nicht existent (nonexisting) Nicht existent (nonexisting) Angelegt (created) Beendet (terminated) bereit (ready) Laufend (running) Angehalten (suspended) blockiert (blocked) 147

Prozeßzustände in Unix 148

Fragen bei der Implementierung Welche Betriebsmittel sind notwendig? Welche Ausführungszeiten besitzen einzelne Prozesse? Wie können Prozesse kommunizieren? Wann soll welcher Prozess ausgeführt werden? Wie können Prozesse synchronisiert werden? 149

Klassifikation von Prozessen periodisch vs. aperiodisch statisch vs. dynamisch Wichtigkeit der Prozesse (kritisch, notwendig, nicht notwendig) speicherresident vs. verdrängbar Prozesse können auf einem Rechner (Pseudoparallelismus) einem Multiprozessorsystem mit Zugriff auf gemeinsamen Speicher oder auf einem Multiprozessorsystem ohne gemeinsamen Speicher ausgeführt werden. 150

Nebenläufigkeit Threads 151

Leichtgewichtige Prozesse (Threads) Der Speicherbedarf von Prozessen ist in der Regel groß (CPU- Daten, Statusinformationen, Angaben zu Dateien und EA- Geräten...). Bei Prozesswechsel müssen die Prozessdaten ausgetauscht werden hohe Systemlast, zeitaufwendig. Viele Systeme erfordern keine komplett neuen Prozesse. Vielmehr sind Programmabläufe nötig, die auf den gleichen Prozessdaten arbeiten. Einführung von Threads 152

Prozess Thread 1 Befehlszähler Stacksegment Threads Thread 2 Befehlszähler Stacksegment Codesegment... Dateien Datensegment 153

Prozesse vs. Threads Verwaltungsaufwand von Threads ist deutlich geringer Effizienzvorteil: bei einem Wechsel von Threads im gleichen Prozessraum ist kein vollständiger Austausch des Prozesskontextes notwendig. Kommunikation zwischen Threads des gleichen Prozesses kann über gemeinsamen Speicher erfolgen. Zugriffe auf den Speicherbereich anderer Prozesse führen zu Fehlern. Probleme bei Threads: durch die gemeinsame Nutzung von Daten kann es zu Konflikten kommen. 154