Threads and Scheduling

Ähnliche Dokumente
Scheduling. Prozess-Ablaufplanung. Prof. Dr. Margarita Esponda Freie Universität Berlin WS 2011/2012

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

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Single- und Multitasking

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

Teil 3: Konzepte von Betriebssystemen

Scheduling-Algorithmen: Zeitpunkt der Auswahlentscheidung

Der Scheduler von Windows 2000 Konzepte und Strategien

Technische Informatik 1

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

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

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

Betriebssysteme G: Parallele Prozesse (Teil A: Grundlagen)

Prozesse and Threads WS 09/10 IAIK 1

5 CPU Scheduling. FH Regensburg BT/SS04 Betriebssysteme Wirtschaftsinformatik. 5.1 Grundlagen CPU Burst / I/O Burst

Betriebssysteme Theorie

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

Betriebssysteme 1. Einführung. Scheduling worum geht es? Scheduler: Gliederung

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

Betriebssysteme Kap F: CPU-Steuerung CPU-Scheduling

Betriebssysteme Kapitel E : Prozesse

Betriebssysteme. Teil 13: Scheduling

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

Aufbau eines modernen Betriebssystems (Windows NT 5.0)

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl

CPU-Scheduling - Grundkonzepte

Systeme I: Betriebssysteme Kapitel 7 Scheduling. Wolfram Burgard

Der Scheduler von Windows Konzepte und Strategien

Literatur. Betriebssysteme - WS 2015/16 - Teil 13/Scheduling 2

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

Kapitel III. Prozessverwaltung. VO Betriebssysteme

Übung zu Grundlagen der Betriebssysteme. 7. Übung

Betriebssysteme. Wintersemester Kapitel 2 Prozess und Threads. Patrick Kendzo

Test (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme

Betriebssysteme I WS 2015/2016. Betriebssysteme / verteilte Systeme Tel.: 0271/ , Büro: H-B 8404

Dämon-Prozesse ( deamon )

e) Welche Aussage zu Speicherzuteilungsverfahren ist falsch?

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

5. Foliensatz Betriebssysteme und Rechnernetze

Übung Betriebssysteme 11

Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software

Einführung. Schedulingziel. Klassisches Scheduling-Problem. 6. Kapitel Ressource Prozessor: Scheduling

Prozesse: Prozesskontrollblock, -zustände, -umschaltung

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

Grundlagen Rechnerarchitektur und Betriebssysteme

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

Prozesszustände (1a)

RealTime Linux. Paul Seidel Seminar Prozessteuerung und Robotik WS 08/09 Lehrstuhl BS und Middleware Prof. Polze Hasso-Plattner-Institut Potsdam

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl

Systeme I: Betriebssysteme Kapitel 7 Scheduling. Maren Bennewitz

Lösung von Übungsblatt 8

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

Systeme 1. Kapitel 5. Scheduling

Windows CE. Process Control and Robotics. Fabian Garagnon

TIMI: Technische Informatik

Betriebssysteme KU - Einführungstutorium

Wiederholung: Übernahmeprüfung bei terminbasierter Einplanung

Schedulingalgorithmen Rechenzeitverteilung auf Betriebssystemebene. Andi Drebes Fachbereich Informatik Universität Hamburg

Betriebssysteme Wintersemester 2005/06

Betriebssysteme und Microkern

Arbeitsgruppe ESS Jun.-Prof. Dr. Sebastian Zug. Technische Informatik II (TI II) (5) Scheduling. Sebastian Zug Arbeitsgruppe: Embedded Smart Systems

Betriebssysteme (BS)

Von Prozessen und Prozessoren (Prozess-Management)

Eingebettete Systeme

Grundlagen der Betriebssysteme

RTEMS- Echtzeitbetriebssystem

parallele Prozesse auf sequenziellen Prozessoren Ein Process ist ein typisches Programm, mit eigenem Addressraum im Speicher.

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

Betriebssysteme. CPU-Scheduling - Fallbeispiele. Sommersemester 2014 Prof. Dr. Peter Mandl. Prof. Dr. Peter Mandl Seite 1.

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Konzepte und Methoden der Systemsoftware. Aufgabe 1: Multi-Feedback-Scheduling. SoSe bis P

3.2 Prozessumschaltung

Beispiele von Branch Delay Slot Schedules

Transkript:

Vorlesung Betriebssysteme WS 2010, fbi.h-da.de Threads and Scheduling Jürgen Saala

1. Threads 2. Scheduling 2

1. Threads 3 Prozesse mit je 1 Adressraum 1 Ausführungsfaden d.h. Unabhängiger Adressraum mit Zugriffsschutz 3

Threads sind parallel ausführbare Folgen von Instruktionen innerhalb eines Prozesses, in gemeinsamen Adressraum. Jeder Thread besitzt einen eigenen Programmzähler, einen eigenen Stack für lokale Daten und eine eigene Kopie der Prozessorregister. 4

gelten für alle Threads des Prozesses gemeinsam 5

Thread vs. Process 6

Vorteile von Threads gegenüber Processes Zugriff auf Daten anderer Threads des gleichen Process möglich Geschwindigkeit: Schnelles Create/Destroy, da lightweight Schneller Wechsel zwischen Threads, da kein Context-Switch 50.000 Thread bzw. Process creations. Zeit in Sekunden 7

8

9

10

Pop-up-Threads Threads nur bei Bedarf erzeugen (und zerstören). 11

User-Level-Threads Threads sind vollständig in einer Bibliothek implementiert, die im Speicherbereich des Benutzers abläuft. Betriebssystem braucht Threads nicht zu unterstützen. Laufzeitaufwand ist klein, da sie direkt und nicht als Systemaufruf über einen Software-Interrupt aufgerufen wird. Verschiedene Threads eines Prozesses können nicht auf unterschiedlichen Prozessoren laufen. 12

Kernel-Level-Threads Betriebssystem unterstützt Threads. Es werden Betriebssystemaufrufe zum Erzeugen von Threads verwendet. Verschiedene Threads eines Prozesses können auf unterschiedlichen Prozessoren laufen. 13

Kernel-Level-Threads sind langsamer als User-Level-Threads, da mit Systemaufrufen gearbeitet werden muss. Umschalten in Kernel-Mode ist nötig. schneller als User-Level-Threads, da ein blockierender Thread durch 14 den Kern gestoppt und ein anderer Thread oder Prozess gestartet werden kann.

Ein Prozess kann die Vorteile von Kernel-Level- Threads mit den Vorteilen von User-Level-Threads kombinieren. 15

Standardisierung von Threads - POSIX Betriebssystem-Unabhängigkeit durch IEEE 1003.1c 16

2. Scheduling Welcher Prozess/Thread darf wann mit welchem Prozessor arbeiten? Das entscheidet der Scheduler unter Verwendung verschiedener Schedulingstrategien. 17

Nicht jeder Prozess ist gleich. Prozesse haben unterschiedliche Anforderungen. 18

Schedulingstrategien nonpreemptive (nicht-unterbrechend) Prozess läuft solange bis er blockiert (bspw. warten auf I/O). preemptive (unterbrechend) Prozess wird nach bestimmter Zeit gestoppt. Timerinterrupt nötig Es gibt 3 Umgebungen mit grundlegend unterschiedlichen Schedulingstrategien: Batch (Stapelverarbeitung) Interactive (Interaktivität) Real time (Echtzeit) 19

Kennzahlen fairness policy enforcement balance throughput turnaround time CPU utilization response time proportionality meeting deadlines predictability 20

First-Come First-Served Batch Systems a single linked list keeps track of all ready processes Wenn ein Process blocked, kommt der nächste in der Liste dran und der blocked process muss sich ganz hinten anstellen. 21

Shortest Job First Batch Systems Ähnlich: shortest remaining time next non-preemptive preemptive 22

Round-Robin Scheduling Interactive Systems Jeder Prozess erhält ein time interval quantum. Nach Ablauf der Zeit oder bei Ausführen einer blocking operation: context switch 23

Priority Scheduling mit Multiple Queues Interactive Systems Prozesse innerhalb einer priority class: Round-Robin Weitere Strategieren: a) Verdopplung des Quantums b) zusätzlich ggf. priority class vermindern 24

Shortest Process Next Interactive Systems Bei interaktiven Systemen: - wait for command - execute command - wait for command - execute Vorhersage der Laufzeit des folgenden Befehls/Process durch Ermittlung des weighted average (gewichteter Durchschnittswert) der bisherigen Laufzeiten. Dabei werden Laufzeiten älterer Prozesse weniger gewichtet: Aging 25

Guaranteed Scheduling Interactive Systems Das Betriebssystem merkt sich bei jedem Prozess die genutzte CPU time. Jeder Prozess bekommt im Vorraus einen definierten Anteil der CPU (in Form von CPU time) zugeteilt. 26

Lottery Scheduling Interactive Systems All processes are equal, but some processes are more equal (frei nach George Orwell) Betriebssystem hat Lose für verschiedene Systemresourcen. Wichtige Prozesse erhalten mehr Lose als unwichtige Prozesse. Anzahl der Lose kann dynamisch verändert werden. Prozesse können Lose an andere Prozesse verschenken. Zufall bringt Fairness. 27

Fair-Share Scheduling Interactive Systems Bindung eines Anteils einer CPU an den Process-Owner bzw. User, anstelle des Prozesses selbst. Einer User, der mehrere Prozesse laufen lässt, erhält für die Summe aller seiner Prozesse den gleichen Anteil an CPU Resourcen wie ein anderer User mit nur einem Prozess. 28

Scheduling in Real-Time Systems Klassifizieren von Prozessen bzw. events: periodic in regelmäßigen Zeitabständen auftretend aperiodic unvorhersehbar auftretend Static Scheduling Scheduling Strategie wird im Vorraus festgelegt, da die auftretenden events bekannt sind. Dynamic Scheduling Strategie wird zur Laufzeit angepasst in Abhängigkeit der näherrückenden variablen deadlines einzelner events. 29

Policy versus Mechanism Real-Time Systems scheduling mechanism (Mechanismus bzw. Algorithmus) liegt im Kernel des Betriebssystems (bspw. priority-scheduling) scheduling policy sind Parameter die den scheduling mechanism beeinflussen. So kann ein User-Prozess die Priorität der Ausführung seiner Kind-Prozesse mittels Änderung der scheduling policy steuern, ohne selbst das Scheduling durchführen zu müssen. 30

Thread Scheduling User-level Threads 50 ms process quantum, 5 ms thread runtime 31

Thread Scheduling Kernel-level Threads 32

Quellen: Tanenbaum, Andrew S.: Moderne Betriebssysteme, 3. Auflage, Prentice Hall, 2009 Richard McDougall, Solaris Internals, 2 nd edition, Prentice Hall, 2007 http://www.sws.bfh.ch/~fischli/publikationen/threads/index.html http://docs.hp.com/en/5965-4642/ch01s05.html https://computing.llnl.gov/tutorials/pthreads/ 33