In der heutigen Zeit ist es für Computer unabdingbar, mehrere Aufgaben gleichzeitig zu bearbeiten.
Die CPU (Central Processing Unit) verarbeitet nacheinander Instruktionen und bearbeitet somit diese Aufgaben. Hierbei ist insbesondere das „nacheinander“ zu betonen, da eine einzelne CPU nicht mehrere Instruktionen gleichzeitig ausführen kann und lediglich durch einen schnellen Wechsel zwischen den Aufgaben (Prozessen) Parallelität vorgaukelt. Diese Wechsel werden durch ein Verwaltungssystem organisiert, welche die Laufzeit aufteilt, sodass sich verschiedene Aufgaben bei der Nutzung der CPU abwechseln. Dieses System ist, wie sämtliche die Hardware betreffende Verwaltungsaufgaben, ein Teil des Kernels und wird Scheduler genannt.
Diese Facharbeit wird verschiedene Scheduling-Algorithmen und die Implementation des Linux-Kernels 2.6 erläutern. Zur Vereinfachung beziehen sich sämtliche Modelle auf Einprozessorsysteme, sofern nicht explizit auf die Verwendung des Modells bei Mehrprozessorsystemen hingewiesen wird.
Inhaltsverzeichnis
- Kapitel 1: Einleitung in Kernel und Scheduler
- Kapitel 2: Kernel-Architekturen
- Kapitel 3: Scheduling-Modelle
- 3.1: FIFO-Scheduling
- 3.2: RR-Scheduling
- 3.2.1: Präemptives und nicht-präemptives Scheduling
- 3.2.2: Timeslices
- 3.2.3: Prozessdeskriptoren
- 3.2.4: Prozesszustände und die Waitqueue
- 3.2.5: Ereignis-basierte Waitqueues
- 3.3: Prioritäten-basiertes Scheduling
- Kapitel 4: Interrupts
- 4.1: Definition eines Interrupts
- 4.2: Präemptive und nicht-präemptive Kernel-Architekturen
- Kapitel 5: Scheduling in Linux
- 5.1: Einführung in das Schedulingverfahren des Linux-Kernels
- 5.2: Epochen-Modell
- 5.3: Echtzeitprozesse
- 5.3.1: Schedulingverfahren von Echtzeitprozessen
- 5.4: Normale Prozesse
- 5.4.1: Nice-Level
- 5.4.2: IO-Bonus
- 5.4.3: Berechnung der Prioritätsklasse
- 5.4.4: Berechnung der Timeslices
- 5.5: Goodness
Zielsetzung und Themenschwerpunkte
Diese Facharbeit befasst sich mit der Theorie und Praxis des Schedulings am Linux-Kernel 2.6. Sie beleuchtet verschiedene Scheduling-Algorithmen und deren Implementierung im Linux-Kernel. Der Fokus liegt auf der Organisation von Prozessen auf einem Einprozessorsystem, wobei auch die Funktionsweise in Mehrprozessorsystemen erläutert wird.
- Kernel-Architekturen und deren Einfluss auf das Scheduling
- Verschiedene Scheduling-Modelle und deren Eigenschaften
- Die Funktionsweise des Schedulings im Linux-Kernel 2.6
- Die Rolle von Interrupts im Scheduling-Prozess
- Die Unterscheidung zwischen Echtzeitprozessen und normalen Prozessen im Linux-Kernel
Zusammenfassung der Kapitel
- Kapitel 1: Einleitung in Kernel und Scheduler: Dieses Kapitel definiert den Kernel und dessen Rolle als Schnittstelle zwischen dem Nutzer und der Hardware. Es erklärt die Funktionsweise des Schedulers und dessen Aufgabe bei der Verwaltung der CPU-Zeit. Außerdem werden die beiden Privileg-Stufen User-Mode und Kernel-Mode erläutert und die Notwendigkeit von Sicherheitsmechanismen für den Zugriff auf Hardware-Ressourcen hervorgehoben.
- Kapitel 2: Kernel-Architekturen: Dieses Kapitel beschreibt die drei wichtigsten Kernel-Architekturen: Monolithische Kernel, Mikrokernel und Modulare monolithische Kernel. Es werden die Vor- und Nachteile jeder Architektur im Hinblick auf die Effizienz, den Entwurf und die Anpassungsfähigkeit diskutiert.
- Kapitel 3: Scheduling-Modelle: Dieses Kapitel stellt verschiedene Scheduling-Modelle vor, darunter FIFO-Scheduling, RR-Scheduling und Prioritäten-basiertes Scheduling. Es erklärt die Funktionsweise jedes Modells und die verschiedenen Aspekte, die bei der Implementierung zu berücksichtigen sind.
- Kapitel 4: Interrupts: Dieses Kapitel behandelt die Definition und Bedeutung von Interrupts im Kontext des Schedulings. Es erklärt die Unterscheidung zwischen präemptiven und nicht-präemptiven Kernel-Architekturen und deren Einfluss auf die Interrupt-Behandlung.
- Kapitel 5: Scheduling in Linux: Dieses Kapitel befasst sich mit der Implementierung des Schedulings im Linux-Kernel 2.6. Es erklärt das Epochen-Modell, die Unterscheidung zwischen Echtzeitprozessen und normalen Prozessen und die verschiedenen Parameter, die bei der Berechnung der Priorität und der Timeslices von Prozessen eine Rolle spielen.
Schlüsselwörter
Kernel, Scheduler, Scheduling-Algorithmen, Linux-Kernel 2.6, Kernel-Architekturen, Monolithischer Kernel, Mikrokernel, FIFO-Scheduling, RR-Scheduling, Prioritäten-basiertes Scheduling, Interrupts, Echtzeitprozesse, Normale Prozesse, Epochen-Modell, Timeslices, Nice-Level, IO-Bonus, Goodness, Prozessverwaltung, CPU-Zeit, Systemprozesse, User-Mode, Kernel-Mode.
- Quote paper
- Sven Feldkord (Author), 2010, Scheduling: Theorie und Praxis am Linux Kernel 2.6, Munich, GRIN Verlag, https://www.grin.com/document/169004
-
Upload your own papers! Earn money and win an iPhone X. -
Upload your own papers! Earn money and win an iPhone X. -
Upload your own papers! Earn money and win an iPhone X. -
Upload your own papers! Earn money and win an iPhone X. -
Upload your own papers! Earn money and win an iPhone X. -
Upload your own papers! Earn money and win an iPhone X. -
Upload your own papers! Earn money and win an iPhone X.