Der Scheduler von Windows 2000 Konzepte und Strategien

Ähnliche Dokumente
Windows CE. Process Control and Robotics. Fabian Garagnon

Betriebssystembau (BSB)

(Prüfungs-)Aufgaben zum Thema Scheduling

Dämon-Prozesse ( deamon )

CPU-Scheduling - Grundkonzepte

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.

C. Betriebssystem-Strukturen C.1 Monolithische Betriebssysteme

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

C. Betriebssystem-Strukturen C.1 Monolithische Betriebssysteme

Konzepte von Betriebssystem Komponenten. Aufbau eines Modernen Betriebssystems (Windows NT 5.0)

Operating System Kernels

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

Betriebssystembau (BSB)

Übung zu Grundlagen der Betriebssysteme. 7. Übung

3. Betriebssystemorganisation

RTEMS- Echtzeitbetriebssystem

Domänenanalyse Threadverwaltung/Scheduling

Embedded OS für ARM Cortex Microcontroller

Betriebssysteme Kap F: CPU-Steuerung CPU-Scheduling

Round-Robin Scheduling (RR)

White Paper. Embedded Treiberframework. Einführung

ARM Cortex-M Prozessoren. Referat von Peter Voser Embedded Development GmbH

Embedded-Linux-Seminare. Linux als Betriebssystem

Betriebssysteme I WS 2013/2014. Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/ , Büro: H-B 8404

Reflex The Real-Time Event Flow EXecutive

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

Systemprogramme bezeichnen alle Programme, die bestimmte Aufgaben unterstützen, die unabhängig von einer konkreten Anwendung sind

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

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

POSIX Echtzeit: Kernel 2.6 und Preempt-RT

Vortrag zum Seminar Konzepte und Techniken virtueller Maschinen und Emulatoren. Bruno Kleinert 20. Juni 2007

Seminar: Mobile Geräte QNX Einführung

Ein Scheduler für alle Fälle Robert Kaiser, SYSGO AG

Java Real-Time Specification

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

Windows Vista Windows Phone 7

A Kompilieren des Kernels B Lineare Listen in Linux C Glossar Interessante WWW-Adressen Literaturverzeichnis...

TIMI: Technische Informatik für Medieninformatiker

Technische Informatik II

Ein Laufzeitsystem für hochgradig parallele Simulationen

OSEK / OSEKtime Ausgewählte Kapitel eingebetteter Systeme

Scheduling-Verfahren für Mehrbenutzer-Systeme. Klaus Kusche, Juni 2012

Die Integration zukünftiger In-Car Multimedia Systeme unter Verwendung von Virtualisierung und Multi-Core Plattformen

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Zusammenfassung Modul 223

Performance Messungen von FreeRTOS und

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008

Betriebssysteme eine Einführung. Peter Puschner Institut für Technische Informatik

Systeme I: Betriebssysteme Kapitel 7 Scheduling. Maren Bennewitz

Die L4-Mikrokern. Mikrokern-Familie. Hauptseminar Ansätze für Betriebssysteme der Zukunft. Michael Steil. Michael Steil

Betriebssysteme. 4y Springer. Eine kompakte Einführung mit Linux. Albrecht Achilles. Mit 31 Abbildungen

Einführung in die Echtzeitbetriebssysteme

Programme werden durch den Ablauf eines oder mehrerer Prozesse (engl.: process, task) von einem Rechner abgearbeitet.

Game Engine Architecture and Development. Platform Unabhängiger Code Multi Threading in Game Engines Profiling

Was machen wir heute? Betriebssysteme Tutorium 2. Organisatorisches. Frage 2.1.a. Theorieblätter Abgabe. Antwort. Probleme mit OS/161?

Rechnerarchitektur und Betriebssysteme (CS201): Semaphor, Monitor, Deadlocks, Re-Entrance

OSEK / OSEKtime - ein Vergleich

ReactOS das zu Windows binärkompatible Open-Source- Betriebssystem. Matthias Kupfer ReactOS Deutschland e.v.

B.5 Prozessverwaltung B.5. Prozessverwaltung Prof. Dr. Rainer Manthey Informatik II 1

SurefireKernel ÜBERSICHT SPEZIFIKATION. Sicherheitskernel DATASHEET

Betriebssystem? Übersicht. Ziele. Grundlagen. Das ist nur die Oberfläche... Wissen, was man unter einem Betriebssystem versteht

LINUX und Echtzeit. Eine Übersicht prinzipieller Lösungsansätze. Your partner for industrial, embedded Linux

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

Systeme 1. Kapitel 5. Scheduling

Slothful Linux: An Efficient Hybrid Real-Time System by Hardware-Based Task Dispatching. Rainer Müller

Echtzeitbetriebssysteme

Vorl. 6: Single- und Multitasking

,,Echtzeit ist ein Buzzword und sagt gerade bei Nichtrealtime-Betriebssystemen garnichts aus. (Thomas Ogrisegg in at.linux) Linux PREEMPT RT

Dipl.-Inf. J. Richling Wintersemester 2003/2004. Weiche Echtzeit

Sowohl RTX64 als auch RTX bieten harten Echtzeitdeterminismus und symmetrische Multiprocessing- Fähigkeiten (SMP).

Implementierung Echtzeitbetriebssysteme Architektur eines RTOS am Beispiel Windows CE Autor: Rudi Swiontek und Ralf Ebert*

Jens Peter Lindemann Lehrstuhl Neurobiologie. 13. Januar 2009

Betriebssysteme it-akademie Bayern z/os und OS/390 Lehrgang 2008 Prof. Dr.-Ing. Wilhelm G. Spruth Teil 5 Prozessverwaltung

Kapitel III. Prozessverwaltung. VO Betriebssysteme

Prozesse und Scheduling

, SS2012 Übungsgruppen: Do., Mi.,

Echtzeitanforderung und Linux

Anforderungen an den Kernel einer objektorientierten, web-basierten e-learning Plattform im Vergleich zu herkömmlichen Betriebssystemen

kreative OS Betriebssystem Projekt Ubiquitous Computing II (WS 2009)

Betriebssysteme it-akademie Bayern z/os und OS/390 Lehrgang 2008 Prof. Dr.-Ing. Wilhelm G. Spruth Teil 6 Scheduling

Scheduling. Teil 2. Prof. Dr. Margarita Esponda Freie Universität Berlin WS 2011/2012

Vorbereitung zur Prüfung Echtzeitbetriebssysteme

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

Im Kapitel Resourc Manager werden die verschiedenen Möglichkeiten der Überwachung von Messwerten eines Server oder Benutzers erläutert.

Betriebssysteme (BS)

CS2101 Nebenläufige und Verteilte Programme Bachelor of Science (Informatik)

Embedded Linux. Embedded Linux. Daniel Buchheim Seminar "Eingebettete drahtlose Systeme"

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

Betriebssystemschichten ( )

Betriebssysteme (BTS)

Implementierung der Jikes Research Virtual Machine

Dynamic Ressource Management

Software ubiquitärer Systeme

Smartphone Entwicklung mit Android und Java

Betriebssysteme I. Anmerkungen zur Vorlesung. Zielsetzungen. Voraussetzungen. Claudius Schnörr. Hochschule München FK 7: Informatik und Mathematik

Scheduling in Echtzeitbetriebssystemen. Prof. Dr. Margarita Esponda Freie Universität Berlin

Virtualisierung: Neues aus 2010 und Trends 2011

IT-Symposium C01 - Virtualisieren mit dem Windows Server 2008

Hardware Virtualisierungs Support für PikeOS

Transkript:

Der Scheduler von Windows 2000 Konzepte und Strategien Daniel Lohmann lohmann@informatik.uni-erlangen.de Gliederung 1. Grundbegriffe 2. Eigenschaften des Schedulers Grundlegende Eigenschaften Prioritätenmodell Dynamische Prioritätenanpassungen 3. Interner Aufbau Interruptverarbeitung Aufruf des Schedulers 4. Fazit Folie 2 1

(Einige) Designziele von Windows NT Anwendungsportabilität OS/2, Posix, Win16, Win32 Plattformunabhängigkeit Diverse RISC/CISC Architekturen Ursprünglich MIPS, PowerPC, Alpha, I386 Unterstützung für SMP Folie 3 LPC Trap Architektur von Windows NT OS/2-Klient Win32-Klient POSIX-Klient Win16-Klient Win16-Klient WoW OS/2-Subsystem POSIX-Subsystem Executive Win32-Subsystem Sicherheits- Referenz- Monitor Objekt- Verwaltung Prozess- Verwaltung Kernel Lokaler Prozedur- Aufruf Virtuelle Speicher- Verwaltung Ein/Ausgabe Treiber Hardware Abstraction Layer (HAL) Folie 4 2

Virtueller Adressraum eines NT-Prozesses Virtuell, nicht auslagerbar (z. B. Kernel, HAL) 4GB reserviert für den Executive Virtuell, auslagerbar 2GB Nutzbar durch die Anwendung Virtuell, auslagerbar Folie 5 Ausführungspfade (Threads) in einem Prozess Stacks (1 je Thread) Gobale und statische Daten Code Folie 6 3

Prozesse und Threads: Zusammenfassung Prozess: Umgebung und Adressraum für Threads Ein Win32 Prozess enthält immer mindestens 1 Thread Thread: Code ausführende Einheit Jeder Thread verfügt über einen eigenenen Stack, und Registersatz (insbesondere PC) Threads bekommen vom Scheduler Rechenzeit zugeteilt Alle Threads sind Kernelmode Threads Usermode-Threads möglich ( Fibers ), aber unüblich Strategie von NT: Anzahl der Threads gering halten keine blockierenden API-Aufrufe Overlapped (asynchrones) IO Thread-Pooling Folie 7 Gliederung 1. Grundbegriffe 2. Eigenschaften des Schedulers Grundlegende Eigenschaften Prioritätenmodell Dynamische Prioritätenanpassungen 3. Interner Aufbau Interruptverarbeitung Aufruf des Schedulers 4. Fazit Folie 8 4

Grundlegende Eigenschaften des Schedulers Preemptives, Prioritätengesteuertes Scheduling: Thread mit höherer Priorität verdrängt Thread niedrigerer Priorität Egal ob Thread sich im User- oder Kernelmode befindet Die meisten Funktionen der Executive ( Kernel ) sind ebenfalls als Threads implementiert Round-Robin bei Threads gleicher Priorität Zuteilung erfolgt reihum für eine Zeitscheibe (Quantum) Thread-Prioritäten Derzeit 0 bis 31, aufgeteilt in drei Bereiche Variable Priorities: 1 bis 15 Realtime Priorities: 16 bis 31 Priorität 0 ist reserviert für den Nullseiten-Thread Threads der Executive verwenden maximal Priorität 23 Folie 9 Zeitscheiben (Quantum) Kurze Quantumwerte Lange Quantumwerte Variabel Fix Variabel Fix Thread in HG-Prozess 6 18 12 36 Thread in VG-Prozess 12 18 24 36 Aktiver Thread in VG-Prozess 18 18 36 36 Quantum wird vermindert um den Wert 3 bei jedem Clock-Tick (alle 10 bzw. 15 msec) um den Wert 1, falls Thread in den Wartezustand geht Länge einer Zeitscheibe: 20 120 msec Folie 10 5

Prioritätsklassen und relative Threadpriorität Process Priority Class Relative Idle Below Normal Above High Normal Normal Thread Priority 4 6 8 10 13 24 Time Critical =15 15 15 15 15 15 31 Highest +2 6 8 10 12 15 26 Above Normal +1 5 7 9 11 14 25 Normal 4 6 8 10 13 24 Below Normal -1 3 5 7 9 12 23 Lowest -2 2 4 6 8 11 22 Idle =1 1 1 1 1 1 16 Realtime Folie 11 Prioritäten: Variable Priorities Variable Priorities (1-15) Scheduler verwendet Strategien um wichtige Threads zu bevorzugen Quantum-Stretching (Bevorzugung des aktiven GUI-Threads) dynamische Anhebung (Boost) der Priorität für wenige Zeitscheiben bei Ereignissen Fortschrittsgarantie Alle 3 bis 4 Sekunden bekommen bis zu 10 benachteiligte Threads für zwei Zeitscheiben die Priorität 15 Threadpriorität berechnet sich wie folgt (vereinfacht): Prozessesprioritätsklasse + Threadpriorität + Boost Folie 12 6

Prioritäten: Realtime Priorities Realtime Priorities (16-31) Reines prioritätengesteuertes Round-Robin Keine Fortschrittsgarantie Keine dynamische Anhebung Betriebssystem kann negativ beeinflusst werden Spezielles Benutzerrecht erforderlich (SeIncreaseBasePriorityPrivilege) Threadpriorität berechnet sich wie folgt: REALTIME_PRIORITY_CLASS + Threadpriorität Folie 13 Dynamic Boosts Dynamische Prioritätsanpassung Thread-Prioritäten werden vom System in bestimmten Situationen dynamisch angehoben (nicht bei REALTIME_PRIORITY_CLASS) Platten-Ein- oder Ausgabe abgeschlossen: +1 Maus, Tastatureingabe: +6 Semaphore, Event, Mutex: +1 Andere Ereignisse (Netzwerk, Pipe,...) +2 Ereignis in Vordergrundapplikation +2 Dynamic Boost wird verbraucht (eine Stufe pro Quantum) Folie 14 7

Änderung der Priorität nach einem dynamic Boost Priorität Quantum Mausnachricht: Anhebung der Priorität um 6 verdrängt (vor Quantumende) Basispriorität aktiv wartend aktiv bereit aktiv bereit Zeit Folie 15 Anhebung der Priorität durch Balance-Set-Manager Etwa alle 3-4 Sekunden erhalten bis zu 10 benachteiligte Threads für zwei Zeitscheiben die Priorität 15 Fortschrittsgarantie Folie 16 8

Gliederung 1. Grundbegriffe 2. Eigenschaften des Schedulers Grundlegende Eigenschaften Prioritätenmodell Dynamische Prioritätenanpassungen 3. Interner Aufbau Interruptverarbeitung Aufruf des Schedulers 4. Fazit Folie 17 Trap / Interruptverarbeitung 31 30 29 28 27 26 3 2 1 0 IRQL High Power Fail IPI Clock Profile Device n... Device 1 DPC/Dispatch APC Passive Hardware interrupts Traps Normal Thread Execution Folie 18 9

Interruptverarbeitung auf SMP Systemen CPU 1 High CPU 2 Power Fail IPI IRQL = Clock Clock Profile Device n. Maskierte. Interrupts. Device 1 DPC/Dispatch IRQL = DPC/Dispatch APC Maskierte Interrupts Passive Folie 19 Aufruf des Schedulers Direkter Aufruf des Schedulers Ende eines Threads (ExitThread()) Freiwilligem Warten (Sleep(), WaitForXXX(), ) Indirekter Aufruf des Schedulers Quantum abgelaufen Ein Thread höherer Priorität wird ablaufbereit Indirekter Aufruf erfolgt durch DPCs und Traps Folie 20 10

Aufruf des Schedulers durch Traps IRQL Folie 21 Auswahl des nächsten Threads (SMP) Ziel: Cacheausnutzung maximieren Affinität (Zuordnung von CPUs zu Thread): hard affinity: ideal processor: soft affinity: last run: Feste Zuordnung durch SetThreadAffinity() Gewünschte Zuordnung durch SetThreadIdealProcessor() Letzte CPU, auf welcher der Thread lief intern vom Scheduler verwaltet Letzte Zuweisung zu einer CPU intern vom Scheduler verwaltet Folie 22 11

Auswahl des nächsten Threads (SMP) CPU 0 CPU 1 CPU 2 CPU 3 31 FindReadyThread() Dispatcher Ready Queue... 8... soft affinity: 0 last run: 10 ms soft affinity: 1 last run: 20 ms soft affinity: 2 last run: 20 ms 0 Folie 23 Auswahl des nächsten Threads (SMP) CPU 0 CPU 1 CPU 2 CPU 3 31 FindReadyThread() Dispatcher Ready Queue... 8... soft affinity: 0 last run: 10 ms soft affinity: 1 last run: 20 ms soft affinity: 2 last run: 20 ms 0 primary candidate Folie 24 12

Auswahl des nächsten Threads (SMP) CPU 0 CPU 1 CPU 2 CPU 3 31 FindReadyThread() Dispatcher Ready Queue... 8... soft affinity: 0 last run: 10 ms soft affinity: 1 last run: 20 ms soft affinity: 2 last run: 20 ms 0 selected candidate Folie 25 Fazit Prioritätenmodell erlaubt feine Zuteilung der Prozessorzeit Dynamische Anpassungen beachten Usermode-Threads mit hohen Echtzeitprioritäten haben Vorrang vor allen System-Threads! Executive ist im allgemeinen unterbrechbar Interruptverarbeitung Aufenthaltszeit des Systems in Interrupts bewusst klein gehalten. Epiloge in DPCs ausgelagert Längerfristige Arbeiten werden an Systemarbeitsthreads vergeben Gute Skalierbarkeit für SMP Systeme Folie 26 13