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
- Vorwort
- 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 Scheduling im Linux-Kernel 2.6. Sie erläutert verschiedene Scheduling-Algorithmen und deren Umsetzung im Linux-Kernel, wobei der Fokus auf Einprozessorsystemen liegt. Die Arbeit zielt darauf ab, das Funktionsprinzip des Scheduling-Systems zu erklären und die wichtigsten Konzepte und Mechanismen zu beleuchten.
- Kernel-Architekturen und ihre Auswirkungen auf das Scheduling
- Verschiedene Scheduling-Modelle wie FIFO, RR und prioritätenbasiertes Scheduling
- Die Rolle von Interrupts und ihre Interaktion mit dem Scheduling-System
- Die Implementierung des Scheduling-Verfahrens im Linux-Kernel 2.6, einschließlich Echtzeitprozesse und normalen Prozessen
- Die Berechnung von Prioritätsklassen und Timeslices für verschiedene Prozessarten
Zusammenfassung der Kapitel
Das erste Kapitel liefert eine Einführung in den Kernel und den Scheduler, indem es deren Rolle im Betriebssystem und die Funktionsweise des Schedulers erklärt. Das zweite Kapitel stellt verschiedene Kernel-Architekturen vor, wobei die Vorteile und Nachteile von monolithischen, Mikro- und modularen monolithischen Kerneln diskutiert werden. Kapitel 3 beschäftigt sich mit verschiedenen Scheduling-Modellen, darunter FIFO, RR, präemptives und nicht-präemptives Scheduling, sowie das prioritätenbasierte Scheduling. Es werden auch die Konzepte von Timeslices, Prozessdeskriptoren und Waitqueues erläutert. Kapitel 4 behandelt Interrupts, ihre Definition und ihre Rolle im Zusammenhang mit dem Scheduling-System. Im Fokus von Kapitel 5 steht das Scheduling in Linux. Hier werden das Epochen-Modell, die Besonderheiten von Echtzeitprozessen und normalen Prozessen sowie die Berechnung der Prioritätsklassen und Timeslices beschrieben.
Schlüsselwörter
Die Facharbeit behandelt die wichtigsten Aspekte des Scheduling-Systems im Linux-Kernel 2.6. Zu den zentralen Themen gehören Kernel-Architekturen, Scheduling-Modelle, Interrupts, Echtzeitprozesse, normale Prozesse, Prioritätsklassen, Timeslices, IO-Bonus, Nice-Level, Goodness und Epochen-Modell. Die Arbeit bietet einen tiefgreifenden Einblick in die Funktionsweise des Scheduling-Systems und die relevanten Konzepte, die für eine effiziente Prozessverwaltung im Linux-Kernel notwendig sind.
- Quote paper
- Sven Feldkord (Author), 2010, Scheduling: Theorie und Praxis am Linux Kernel 2.6, Munich, GRIN Verlag, https://www.grin.com/document/169004