Hochschule Muenchen Logo

Scheduling Simulator

Standardmodus: lernfokussiert Bereit
๐Ÿ“Š Scheduler
๐Ÿ–ฅ Multi-Core
โšก DVFS
๐Ÿ”’ Synchronisierung
๐Ÿ“ˆ Statistiken
โš– A/B Vergleich
๐Ÿ“– Handbuch
Prozess hinzufรผgenโ–ผ
Nur fรผr periodische Tasks. Bei sporadisch/aperiodisch ignoriert.
Algorithmus Round Robinโ–ผ
Round Robin
Preemptiv
FCFS
Non-preemptiv
SJF
Non-preemptiv
SRTF
Preemptiv
Priority
Non-preemptiv
Linux CFS
vruntime
Linux EEVDF
eligible VD
SCHED_FIFO
Linux RT
SCHED_RR
Linux RT
SCHED_DEADLINE
Linux RT
MLQ
Multilevel
MLFQ
Feedback
EDF
Echtzeit
Rate Mono.
Echtzeit
LLF
Least Laxity
Presets:
Gantt-Overlayโ–ผ
Prozesse 0โ–ผ
Sync-Ressourcen โ–ผ
Keine Sync-Ressourcen
โ„น Algorithmus-Info โ–ผ
Speed:
Zeit: 0 | Schritt: 0/0
100%
Multi-Core Konfiguration
Cores: 2
Global SMP
Globale Queue
Partitioned
Core-Affinitรคt
Work Stealing
Idleโ†’Steal
Gang Sched.
Parallel
G-EDF
Global EDF
P-EDF
Partitioned EDF
Mit fixem Seed sind tie-breaks und Zufallsanteile reproduzierbar.
Load Balancing
Migrationen: 0
ร˜ Core-Auslastung: โ€”
Algorithmus-Info
Wรคhle eine Strategie fรผr Details.
Zeit: 0 | Schritt: 0/0
Entscheidung: โ€”
Skalierungs- und Strategieanalyse
Skalierungsstudie noch nicht ausgefรผhrt.
Strategievergleich noch nicht ausgefรผhrt.
Core Status
Per-Core Ready Queues
NUMA Topologie
Scheduling-Overhead
Migration Events
Migration Timeline
Warnungen & Antipatterns
Noch keine Analyse.
DVFS Algorithmus
Performance
f=max immer
Powersave
f=min immer
Ondemand
Reaktiv
Conservative
Graduell
Schedutil
Util-basiert
Interactive
Latenz-opt.
25%
100%
70%
Energie-Statistik
โ€”
Energie (J)
โ€”
Einsparung
โ€”
ร˜ Frequenz
โ€”
Perf.-Verlust
Algorithmus-Beschreibung
Performance
Lรคuft immer bei maximaler Frequenz. Beste Performance, hรถchster Energieverbrauch.
Geeignet fรผr Latenz-kritische Systeme.
Frequenz-Verlauf & CPU-Last รผber Zeit
Frequenz-Tabelle
ZeitAuslastungFrequenzLeistung
Sync-Konfiguration
Sync-Metriken
Klicke "Sync aufbauen".
Deadlock-Erkennung

โš  Deadlock erkannt!

โœ“ Kein Deadlock erkannt
Mutex
Semaphore
Condition Variables
RW-Lock
Producer-Consumer
Sync-Legende
Causal Timeline (State + Cause + Effect)
Thread-State-Ribbon
Resource Inspector
Klicke "Sync aufbauen".
Sync Event Log
โ€”
ร˜ Wartezeit
โ€”
ร˜ Turnaround
โ€”
ร˜ Antwortzeit
โ€”
CPU-Auslastung
โ€”
Durchsatz
โ€”
Ctx Switches
๐Ÿ‘ฉโ€๐Ÿซ Lehrenden-Analytics
Noch keine Daten erfasst.
Prozess-Details
ProzessAnkunftExec. TimeStartFertigWartenTurnaroundAntwort
Algorithmus-Vergleich (ร˜ Wartezeit)
๐ŸŽฒ Stochastische Workloads (Monte Carlo)
Monte-Carlo zeigt Verteilungen statt Einzelwerten: starte die Analyse mit dem aktuellen Setup.
๐ŸŽฏ Multi-Objective Optimization (Pareto)
Pareto-Front zeigt nicht-dominierte Trade-offs zwischen Latenz, Durchsatz, Energie und Deadline-Misses.
๐Ÿงญ Real OS Mapping
Wird nach der nรคchsten Simulation mit einem praxisnahen OS-Mapping befรผllt.
๐Ÿ“ Schedulierbarkeits-Rechner
๐Ÿงฎ WCRT-Analyse (Response Time Analysis)
Simulation ausfรผhren, dann WCRT berechnen.
๐Ÿงช Modular Regression & Parity
Noch nicht ausgefรผhrt.
Algorithmus A RR
Algorithmus B EDF
Verwendet die Prozesse aus dem Scheduler-Tab. Prozesse zuerst dort laden/erstellen.
โš–
Wรคhle zwei Algorithmen und klicke "Vergleichen"

๐Ÿ“– Scheduling Simulator โ€” Handbuch

Browserbasiertes Lehr- und Analysewerkzeug fรผr Betriebssystem-Vorlesungen. Kein Server nรถtig โ€” einfach die HTML-Datei im Browser รถffnen.

Kernfunktionen

โš™ 8 Scheduling-Algorithmen
FCFS, SJF, SRTF, RR, Priority, MLQ, EDF, Rate Monotonic
๐Ÿ–ฅ Multi-Core (bis 8 Kerne)
6 Strategien: SMP, Partitioned, Work Stealing, Gang, G-EDF, P-EDF
๐Ÿ“Š Analyse-Suite
WCRT, Laxity-Heatmap, Histogramm, Jitter, Fairness-Index
๐ŸŽฒ Taskset-Generator
UUniFast-Algorithmus, Schedulierbarkeits-Rechner
โšก DVFS-Energiesimulation
6 Governor-Strategien, P-States, Pโˆfยณ-Modell
๐Ÿ“‚ 14 Lehr-Beispiele
Mit Beobachtungs-Leitfaden, Experimenten & Theorie

Begriffe & Definitionen

Scheduling-Literatur verwendet teils unterschiedliche Begriffe fรผr รคhnliche Konzepte. Diese Tabelle klรคrt die wichtigsten Terme โ€” insbesondere die Unterscheidung zwischen Execution Time, WCET und verwandten GrรถรŸen.

ZeitgrรถรŸen eines Tasks

BegriffSymbolDefinitionIm Simulator
Execution Time
auch: CPU-Burst, Compute Time
C / Cแตข Die reine CPU-Rechenzeit, die ein Task von dem Moment an benรถtigt, in dem er die CPU zugeteilt bekommt, bis er seinen Berechnungsanteil abgeschlossen hat. Enthรคlt keine Warte- oder I/O-Zeiten. Feld โ€žExecution Time (C)" beim Anlegen eines Prozesses. Wird als fixer WCET-Wert behandelt (deterministisches Modell).
WCET
Worst-Case Execution Time
C Die maximale Execution Time รผber alle mรถglichen Eingaben und Codepfade. Sicherheitskritische Echtzeitsysteme garantieren Schedulierbarkeit nur dann, wenn Cแตข = WCET verwendet wird. Die tatsรคchliche Ausfรผhrungszeit liegt oft darunter (ACET). Im deterministischen Modell gilt: Execution Time = WCET. Mit Modell โ€žACET" oder โ€žZufรคllig ยฑ20 %" werden auch kรผrzere Ausfรผhrungszeiten simuliert.
ACET
Average-Case Execution Time
Cฬ„ Durchschnittliche Execution Time unter realistischer Last. Fรผr Schedulierbarkeitsanalysen ungeeignet โ€” nur fรผr Leistungsmessungen sinnvoll. Auswรคhlbar รผber โ€žWCET/ACET-Modell" beim Anlegen eines Prozesses.
Response Time
auch: Antwortzeit
R Zeit vom Aktivierungszeitpunkt (Arrival) bis zum ersten CPU-Zugriff des Tasks. Misst die Wartezeit in der Ready-Queue vor der ersten Ausfรผhrung.
R = firstCPU โˆ’ arrival
Spalten Min/ร˜/Max Resp. im Metriken-Panel. Im Gantt als blaue Pfeil-Linie darstellbar (Overlay โ€žReaktionszeit").
WCRT
Worst-Case Response Time
R* Analytisch garantierte maximale Antwortzeit unter einem gegebenen Scheduler, berechnet รผber die Response-Time-Analysis (RTA). Ein Task ist schedulierbar, wenn R* โ‰ค D (Deadline).
Rแตข = Cแตข + ฮฃโฑผโˆˆhp(i) โŒˆRแตข/TโฑผโŒ‰ยทCโฑผ
Tab ๐Ÿ“ˆ Statistiken โ†’ ๐Ÿงฎ WCRT-Analyse. Zeigt R* und Slack = D โˆ’ R* pro Task.
Turnaround Time
auch: Durchlaufzeit
TAT Zeit vom Aktivierungszeitpunkt bis zur vollstรคndigen Fertigstellung des Tasks. Enthรคlt Warte- und Ausfรผhrungszeit.
TAT = finish โˆ’ arrival = Wait + C
Spalte Turnar. im Metriken-Panel.
Waiting Time
auch: Wartezeit
W Zeit, die ein Task in der Ready-Queue verbringt, ohne die CPU zu nutzen.
W = TAT โˆ’ C
Spalte Wait im Metriken-Panel. Gelb markiert wenn รผberdurchschnittlich hoch.
Laxity / Slack
auch: Spielraum
L(t) Verbleibender Zeitpuffer bis zur Deadline unter Berรผcksichtigung der noch nรถtigen Rechenzeit.
L(ฯ„แตข, t) = Dแตข โˆ’ t โˆ’ rem_Cแตข
L = 0: Task muss sofort laufen, sonst Deadline-Miss.
Gantt-Overlay โšก Kritischer Pfad (Laxity-Heatmap): rot = Lโ‰ค0, gelb = kritisch, grรผn = sicher.
Tardiness
auch: Verspรคtung
รœberschreitung der Deadline.
tardiness = max(0, finish โˆ’ deadline)
Spalte Tardin. im Metriken-Panel, rot markiert wenn > 0.

Abgrenzung: Execution Time vs. Response Time

Hรคufige Verwechslung: โ€žWie lange lรคuft der Task?" bezieht sich auf die Execution Time C (reine CPU-Zeit). โ€žWie lange dauert es, bis der Task fertig ist?" bezieht sich auf die Turnaround Time (Warten + Rechnen). โ€žWie lange wartet er, bis er das erste Mal die CPU bekommt?" ist die Response Time.
Arrival โ”€โ”€[Response Time R]โ”€โ”€โ–ถ firstCPU โ”€โ”€[Execution Time C]โ”€โ”€โ–ถ finish           โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€[Turnaround Time TAT]โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜           โ””โ”€โ”€[Waiting Time W]โ”€โ”€โ”˜

Termini in verschiedenen Quellen

Dieser SimulatorTanenbaumSilberschatzLiu & Layland / Buttazzo
Execution Time (C)CPU burstCPU burst timecomputation time Cแตข
Response Timeresponse timeresponse timeresponse time Rแตข
Turnaround Timeturnaround timeturnaround timeโ€”
WCRTโ€”โ€”worst-case response time R*
Laxityโ€”โ€”laxity / slack Lแตข(t)

Tabs & Navigation

TabInhalt
๐Ÿ“Š SchedulerHauptansicht: Prozesse anlegen, Algorithmus wรคhlen, Gantt animieren, Metriken analysieren
๐Ÿ–ฅ Multi-CoreParallele Ausfรผhrung auf 1โ€“8 Kernen mit verschiedenen Scheduling-Strategien
โšก DVFSEnergiesimulation mit Frequenz-Governor und P-State-Konfiguration
๐Ÿ”’ SynchronisierungMutex, Semaphor, Producer/Consumer, Deadlock-Demo
๐Ÿ“ˆ StatistikenTabellarische Auswertung, WCRT-Analyse, Schedulierbarkeits-Rechner
โš– A/B VergleichZwei Algorithmen direkt gegenรผberstellen โ€” Gantt, Metriken, Diagramm
๐Ÿ“– HandbuchDiese Seite
Tipp: Im Header befinden sich: ๐Ÿ’พ Presets (Szenarien speichern/laden/teilen), ๐ŸŽฒ Taskset-Gen, ๐Ÿ“‚ Beispiele, Export/Import und Reset.

Prozesse anlegen

Alle Felder im linken Panel des Scheduler-Tabs. Pflichtfelder: Name und Execution Time.

FeldBedeutungHinweis
NameProzessbezeichnungz.B. P1, ฯ„1
AnkunftArrival Time t0 = sofort verfรผgbar
Execution Time (C)Reine CPU-Rechenzeit des Tasks (= Cแตข)โ‰ฅ 1; wird als WCET behandelt
Prioritรคt1 = hรถchste PrioritรคtNur fรผr Priority-Algo relevant
PeriodeWiederholungsintervall fรผr periodische TasksFรผr EDF/RM; beeinflusst Job-Expansion
DeadlineRelative Deadline ab AnkunftStandard: = Periode (implizite Deadline)
Queue-LevelMLQ-Ebene (0=Highest, 1=Interactive, 2=Batch)Nur fรผr MLQ
MutexZugewiesenes Mutex-ObjektFรผr Synchronisierungs-Simulation
Task-TypPeriodisch / Sporadisch (MIT) / AperiodischBeeinflusst Ankunftsmuster
ThreadsAnzahl paralleler Threads1โ€“8; fรผr Gang-Scheduling
WCET-ModellWCET (deterministisch) / ACET (ร˜) / Zufรคllig ยฑ20%Beeinflusst tatsรคchliche Ausfรผhrungszeit
Core-AffinitรคtBevorzugter Core bei Multi-Core-1 = Auto (Scheduler entscheidet)

Schnelles Setup

  1. Name und Execution Time eingeben โ†’ + Prozess hinzufรผgen
  2. Fรผr Echtzeit: Periode und Deadline setzen, Task-Typ auf "Periodisch"
  3. โœ Icon zum Bearbeiten, ร— zum Lรถschen
  4. Farbe รผber den Color-Picker anpassen

Scheduling-Algorithmen

AlgorithmusTypQuantumGeeignet fรผr
Round Robin (RR)Preemptivโœ“Interaktive Systeme, faire CPU-Verteilung
FCFSNon-preemptivโ€”Einfache Stapelverarbeitung; demonstriert Konvoi-Effekt
SJFNon-preemptivโ€”Minimiert ร˜ Wartezeit; erfordert Burst-Kenntnisse
SRTFPreemptivโ€”Optimal fรผr ร˜ Antwortzeit; kann Starvation verursachen
PriorityNon-preemptivโ€”Prioritรคtsbasierte Systeme; demonstriert Starvation
MLQMultilevelpro QueueGemischte Workloads (Echtzeit / Interaktiv / Batch)
EDFPreemptivโ€”Echtzeit โ€” optimal solange U โ‰ค 100%
Rate MonotonicPreemptivโ€”Periodische Echtzeit โ€” stabil, statische Prioritรคten

Konfigurations-Parameter

  • Quantum: Zeitscheibe fรผr RR (Standard: 2). GrรถรŸeres Q โ†’ weniger Ctx-Switches, schlechtere Response-Zeit
  • Cores: Anzahl simulierter CPU-Kerne (1โ€“8) โ€” beeinflusst CPU-Auslastungsberechnung
  • ฮด_cs: Kontextwechsel-Overhead (wird als grauer Block in den Gantt eingefรผgt)
  • ฮด_sched: Scheduler-Overhead pro Dispatch-Entscheidung
U = CPU_busy_time / (totalTime ร— numCores)

Gantt-Diagramm & Overlays

Steuerleiste

  • โฎ โ–ถ โญ โ€” Schritt zurรผck / Play-Pause / Schritt vor
  • Speed-Slider โ€” Animationsgeschwindigkeit
  • Core-Ansicht โ€” Zeigt Core-Zuweisung farbig (bei Multi-Core)
  • ๐Ÿ’ฌ Schritt-Erklรคrung โ€” Zeigt Scheduling-Entscheidungsgrund รผber dem Gantt

Ein-/Ausblendbare Overlays

OverlaySymbolBeschreibung
Sync-Ereignisseโ€”Gelb = kritischer Abschnitt (Mutex gehalten), Rot gestreift = blockiert
DVFS-Frequenzโ€”Frequenzรคnderungen als farbiger Streifen unter den Blรถcken
Ressourcen-Zeileโ€”Extra Zeile pro Mutex zeigt Lock-Zeiten
Deadlinesโ—†Diamant + gestrichelte Linie bei absoluter Deadline
Ankunftszeitenโ–ผGrรผnes Dreieck bei jeder Job-Ankunft
Deadline-Missesโœ•Rote รœberlappungsmarkierung + โœ• bei Deadline-Verletzung
Perioden-Grenzenโ”ŠVertikale gestrichelte Linien an jedem Periodenende
Reaktionszeitโ†”Gestrichelte Linie von Ankunft bis erstem CPU-Zugriff (R=N Label)
Ctx-Switch-Overheadโง–Grauer/Lila Block = Overhead-Zeit (nicht produktiv)
Kritischer PfadโšกLaxity-Heatmap am Blockrand: grรผn=sicher, rot=kritisch

Metriken-Panel

Erscheint nach jeder Simulation unterhalb des Gantts. Collapsible รผber den Titel-Balken.

Zusammenfassungs-Chips

MetrikFormel
CPU-Util.ฮฃ(CPU-Blรถcke) / (totalTime ร— Cores)
Durchsatzfertige Prozesse / totalTime
ร˜ Wartezeitฮฃ(Turnaround_i โˆ’ C_i) / n
ร˜ Responseฮฃ(firstCPU_i โˆ’ arrival_i) / n
ร˜ Turnaroundฮฃ(finish_i โˆ’ arrival_i) / n
Tardiness ฮฃฮฃ max(0, finish_i โˆ’ deadline_i)
Jain Fairness(ฮฃw_i)ยฒ / (n ร— ฮฃw_iยฒ) โ€” 1.0 = perfekt fair
OH-AnteilctxN ร— (ฮด_cs + ฮด_sched) / totalTime

Grafiken im Panel

  • Response-Zeit Histogramm โ€” Verteilung der Response-Zeiten (erscheint ab โ‰ฅ 3 Job-Instanzen). Gelbe Linie = Mittelwert, grรผne Linie = Median.
  • Jitter-Verlaufskurve โ€” Response-Zeit je Job-Instanz รผber die Zeit fรผr periodische Tasks (erscheint ab โ‰ฅ 2 Instanzen).

๐ŸŽฒ Taskset-Generator (UUniFast)

Header-Button ๐ŸŽฒ Taskset-Gen. Generiert zufรคllige Tasksets mit definierter Gesamtauslastung.

Parameter

ParameterBeschreibung
nAnzahl Tasks (2โ€“12)
U (%)Gesamtauslastung 10โ€“99%
T_min / T_maxPeriodenbereich (zufรคllig uniform verteilt)
Deadline-TypImplizit (D=T) / Constrained (Dโ‰คT) / Arbitrรคr
AlgorithmusWird direkt fรผr die Simulation รผbernommen

UUniFast-Algorithmus

Erzeugt gleichmรครŸig verteilte Auslastungsvektoren (Bini & Buttazzo, 2005):

sumU = U_total for i = 1 to n-1: nextSumU = sumU ร— rand(0,1)^(1/(n-i)) U_i = sumU - nextSumU sumU = nextSumU U_n = sumU

Die Vorschau zeigt: ฮฃ U, Liu & Layland-Schranke und EDF-Schedulierbarkeit. Mit ๐ŸŽฒ Generieren neuen Zufallssatz erzeugen, mit โœ“ รœbernehmen in den Simulator laden.

โš– A/B Vergleichsmodus

Tab โš– A/B Vergleich. Fรผhrt denselben Prozess-Set mit zwei verschiedenen Algorithmen aus und stellt die Ergebnisse direkt gegenรผber.

Workflow

  1. Prozesse im Scheduler-Tab anlegen (oder Beispiel laden)
  2. A/B-Tab รถffnen โ†’ Algorithmus A und B wรคhlen
  3. Quantums fรผr beide einstellen
  4. โš– Vergleichen klicken

Ausgabe

  • Gantt-Vergleich: Beide Timelines nebeneinander
  • Metriken-Tabelle: Alle Kennwerte, Gewinner grรผn hervorgehoben, Spalte "Besser": A / B / =
  • Balkendiagramm: ร˜ Wartezeit, ร˜ Response, ร˜ Turnaround, Ctx-Switches
Tipp: Lade ein Lehr-Beispiel (z.B. "Konvoi-Effekt") und vergleiche dann FCFS vs. SJF โ€” der Effekt ist unmittelbar sichtbar.

๐Ÿงฎ WCRT-Analyse (Response Time Analysis)

Im Tab ๐Ÿ“ˆ Statistiken. Berechnet die Worst-Case Response Time (WCRT) fรผr alle Prozesse.

Algorithmus (Audsley / Tindell / Joseph)

R_i^(0) = C_i R_i^(k+1) = C_i + ฮฃ_{j โˆˆ hp(i)} โŒˆ R_i^(k) / T_j โŒ‰ ร— C_j Konvergiert โ†’ R* wenn R^(k+1) = R^(k) Schedulable โ†” R* โ‰ค D_i

hp(i) = Menge aller Tasks mit hรถherer Prioritรคt als ฯ„_i.

Ausgabe-Spalten

SpalteBedeutung
CExecution Time (= WCET im Simulator)
TPeriode
DRelative Deadline
UAuslastung C/T
WCRT R*Berechnete Worst-Case Antwortzeit (โˆž = nicht schedulable)
SlackD โˆ’ R* (positiv = Puffer vorhanden)
Hinweis: RTA gilt exakt fรผr feste Prioritรคten (RM, Priority). Fรผr EDF gilt: schedulable genau dann wenn ฮฃ U_i โ‰ค 1.

โšก Kritischer Pfad / Laxity-Heatmap

Overlay-Checkbox im Gantt-Overlay-Panel. Visualisiert die Laxity (Puffer bis Deadline-Miss) als farbigen Balken am unteren Rand jedes Gantt-Blocks.

Laxity(ฯ„_i, t) = deadline(ฯ„_i) โˆ’ t โˆ’ remaining_C(ฯ„_i)
FarbeBedeutung
GrรผnHohe Laxity โ€” Task liegt gut im Zeitplan
GelbMittlere Laxity โ€” Aufmerksamkeit empfohlen
RotLaxity โ‰ค 0 โ€” Deadline-Miss unvermeidlich

Der Block mit global niedrigster Laxity wird mit โšก L=X.X annotiert. Roter Rahmen = Deadline definitiv verpasst.

Anwendung: Bei EDF/RM aktivieren. Laxity = 0 bedeutet: dieser Task muss sofort laufen. Vergleiche Algorithmen: Welcher hรคlt die Laxity stabiler?

๐Ÿ“ Schedulierbarkeits-Rechner

Im Tab ๐Ÿ“ˆ Statistiken. Interaktiver Chart der Auslastungs-Schranken.

Anzeige

  • Lila Kurve โ€” Liu & Layland RM-Schranke: U_bound(n) = n(2^(1/n) โˆ’ 1) (โ†’ 69.3% fรผr nโ†’โˆž)
  • Grรผne Linie โ€” EDF-Schranke: U โ‰ค 100%
  • Punkt โ€” Aktueller Taskset: grรผn = RM schedulable, gelb = nur EDF, rot = รœberlast

Interaktive Slider

Unterhalb des Charts kรถnnen U_i aller Tasks per Slider angepasst werden โ€” der Punkt wandert in Echtzeit.

RM schedulable โ†” ฮฃ U_i โ‰ค n(2^(1/n) โˆ’ 1) EDF schedulable โ†” ฮฃ U_i โ‰ค 1.0

๐Ÿ’ฌ Schritt-Erklรคrung

Checkbox ๐Ÿ’ฌ Schritt-Erklรคrung in der Gantt-Steuerleiste. Zeigt fรผr jeden Simulationsschritt, warum der aktuelle Task gewรคhlt wurde.

Beispiele nach Algorithmus

AlgorithmusBeispiel-Erklรคrung
FCFSP1 ist an erster Stelle der Warteschlange (Ankunft t=0). Lรคuft bis Fertig.
EDFP3 hat die frรผheste Deadline (D=8). Ready-Queue: [P1(D=12), P3(D=8)].
RRP2 ist an der Reihe. Zeitscheibe Q=2. Ready: [P1, P2, P3].
RMP2 hat kรผrzeste Periode (T=5) = hรถchste Prioritรคt. Ready: [P1(T=10), P2(T=5)].
PriorityP1 hat hรถchste Prioritรคt (Prio=1). Ready: [P1(P=1), P3(P=3)].

Bei Overhead-Blรถcken wird Typ und Dauer angezeigt (ฮด_cs oder ฮด_sched).

๐Ÿ’พ Preset-Bibliothek

Header-Button ๐Ÿ’พ Presets. Szenarien lokal speichern, verwalten und teilen.

Features

  • Speichern: Aktuelles Szenario mit Namen versehen โ†’ sofort in der Liste
  • Laden/Lรถschen: Per Knopfdruck in der Liste
  • Export: Alle Presets als JSON-Datei herunterladen
  • Import: JSON-Datei einlesen und mit bestehenden zusammenfรผhren
  • ๐Ÿ”— Share-URL: Generiert eine URL mit dem aktuellen Szenario als Base64-Hash. Beim ร–ffnen des Links wird es automatisch geladen.
Tipp: Presets werden im localStorage des Browsers gespeichert โ€” beim Lรถschen des Browser-Caches gehen sie verloren. Fรผr dauerhafte Archivierung regelmรครŸig exportieren.

๐Ÿ–ฅ Multi-Core Simulation

StrategieBeschreibung
Global SMPEine globale Ready-Queue, alle Kerne teilen sich Tasks
PartitionedFeste Core-Zuweisung per Affinitรคt (kein Stealing)
Work StealingIdle-Kerne stehlen Tasks von รผberlasteten Queues
Gang SchedulingMulti-Thread-Prozesse laufen auf mehreren Kernen parallel
G-EDFGlobales EDF: frรผheste Deadline รผber alle Kerne
P-EDFPartitioniertes EDF mit Bin-Packing-Zuweisung
Schnell-Setup: Im Scheduler-Tab Cores > 1 setzen โ†’ โ–ถ Simulieren โ†’ nutzt automatisch Global SMP.

Die CPU-Auslastung wird core-normalisiert berechnet: U = busy / (totalTime ร— n_cores). Migrationen werden im Gantt als Pfeil dargestellt (Overlay: Core-Migrationen).

โšก DVFS (Dynamic Voltage/Frequency Scaling)

Tab โšก DVFS. Simuliert dynamisches Frequenzscaling auf Basis der CPU-Auslastung.

P โˆ fยณ (CMOS-Nรคherung) Energie E = ฮฃ P(f_t) ร— ฮ”t
GovernorVerhalten
PerformanceImmer f_max โ€” beste Leistung, hรถchster Verbrauch
PowersaveImmer f_min โ€” hรถchste Ersparnis, schlechteste Latenz
OndemandSpringt bei Last > Schwelle auf f_max, sonst proportional
ConservativeSchrittweises Erhรถhen/Senken โ€” vermeidet รœberschwingen
Schedutilf proportional zur Scheduler-Auslastungsschรคtzung (Linux 4.7+)
InteractiveHรคlt f_max solange kรผrzlich Burst-Aktivitรคt โ€” gut fรผr GUIs

P-States als kommagetrennte MHz-Liste konfigurierbar (z.B. 400,800,1200,1600,2000).

๐Ÿ”’ Synchronisierung

  • Mutex-Simulation: Bis zu 3 Mutexes, Lock/Unlock-Protokoll, kritische Abschnitte im Gantt gelb
  • Semaphor-Demo: Producer/Consumer mit konfigurierbarer PuffergrรถรŸe
  • Deadlock-Generierung: Erzeugt zyklische Wartebedingung โ†’ DFS-Erkennung
  • Prioritรคtsinversion: Niedrig-prioritรคrer Task hรคlt Mutex, den ein hochprioritรคrer benรถtigt

Blockierte Prozesse erscheinen im Gantt rot gestreift. Das Protokoll-Log zeigt alle Lock/Unlock-Events.

Import / Export

  • โฌ‡ Export: Speichert Prozesse, Konfiguration und Simulations-Meta als JSON-Datei
  • โฌ† Import: Lรคdt eine exportierte JSON-Datei und stellt den Zustand wieder her
  • ๐Ÿ’พ Presets: Fรผr dauerhaftes Speichern und Teilen (siehe Preset-Bibliothek)
Tipp: Exportiere interessante Konfigurationen vor dem Experimentieren, um zur Ausgangslage zurรผckzukehren.

๐Ÿ“‚ Lehr-Beispiele

14 vorgefertigte Szenarien in 6 Kategorien. ร–ffnen รผber den Header-Button ๐Ÿ“‚ Beispiele. Nach dem Laden erscheint rechts ein Analyse-Leitfaden mit Beobachtungshinweisen, klickbaren Experiment-Buttons und Theorie-Hintergrund.

KategorieBeispiele
Klassisch๐Ÿš› Konvoi-Effekt ยท โœ‚ SJF vs. SRTF ยท ๐Ÿ”„ Round Robin Quantum ยท ๐Ÿฝ Starvation ยท ๐Ÿ“š MLQ
Synchronisierung๐Ÿ”„ Prioritรคtsinversion ยท โš™ Kontextwechsel-Overhead
Echtzeitโฑ EDF vs. RM ยท ๐Ÿ’ซ Sporadische Tasks ยท ๐Ÿ“Š RM Auslastungsgrenze
Multi-Core๐Ÿ–ฅ Global SMP vs. Work Stealing ยท ๐Ÿ“ˆ Skalierung 1โ†’4 Kerne
DVFSโšก Energie-Tradeoff Governor-Vergleich
Analyse๐Ÿ“‰ Jitter-Analyse Periodische Tasks

โ“ Hรคufige Fragen

EDF simuliert keine Wiederholungen?

Periode und Task-Typ auf "Periodisch" setzen. Der Simulator expandiert automatisch Job-Instanzen bis t=60 (Hyperperiod-Fenster).

CPU-Util. bei Multi-Core erscheint zu niedrig?

Korrekt โ€” die Auslastung ist core-normalisiert: U = busy / (totalTime ร— n_cores). 2 Kerne mit je 80% = 80% Util., nicht 160%.

Kontextwechsel-Overhead hat keinen sichtbaren Effekt?

ฮด_cs und ฮด_sched werden als graue Blรถcke injiziert. Bei FCFS gibt es wenige Switches โ†’ kaum Overhead. Bei RR mit kleinem Quantum sehr deutlich sichtbar.

WCRT zeigt โˆž?

Die Fixpunktiteration divergiert โ†’ Task nicht schedulable. Periodenharmonie prรผfen, Auslastung reduzieren, oder Task in eine niedrigere Prioritรคtsstufe verschieben.

Taskset-Generator erzeugt nicht die gewรผnschte Auslastung?

UUniFast kann bei einzelnen Tasks U_i > 1 liefern (wird automatisch verworfen + neu generiert). Bei U > 95% oder sehr kleinen Perioden kรถnnen viele Versuche nรถtig sein โ€” einfach nochmals auf "Generieren" klicken.

Share-URL funktioniert nicht?

Der Browser muss Clipboard-Zugriff erlauben. Falls die automatische Kopie fehlschlรคgt, รถffnet sich ein Prompt mit der URL zum manuellen Kopieren.

Preset verschwunden nach Browser-Update?

Presets liegen im localStorage. Browser-Datenlรถschung oder Inkognito-Modus lรถscht sie. RegelmรครŸig รผber "Alle exportieren" sichern.

๐Ÿ’ก Erweiterungsideen

Analyse & Visualisierung

  • Anomalie-Detektor: Automatische Warnung bei Graham-Anomalien (Multi-Core)
  • Parameter-Sweep: n Runs mit variierendem Quantum/Prioritรคt โ†’ Metrik-Kurven
  • SVG/PNG-Export: Gantt als Vektorgrafik herunterladen
  • Trace-Import: Reale Linux ftrace/perf Traces einlesen und visualisieren

Algorithmen

  • MLFQ: Multi-Level Feedback Queue mit dynamischer Prioritรคtsanpassung
  • CBS: Constant Bandwidth Server โ€” reservierungsbasiertes Scheduling
  • LLF: Least Laxity First โ€” echtzeitoptimal, wechselt bei Laxity-Gleichstand
  • Mixed-Criticality: Verschiedene Kritikalitรคtsstufen (VESTAL-Modell)

Echtzeit

  • Processor Demand Criterion: EDF-Schedulierbarkeit fรผr beliebige Deadlines
  • Hyperperiod-Simulation: Automatisch LCM(Tโ‚,โ€ฆ,Tโ‚™) als Simulationsfenster
  • Jitter-Propagation: Ausgangsjitter eines Tasks als Eingangsjitter des nรคchsten

Pรคdagogik

  • Quiz-Modus: Multiple-Choice Fragen zum beobachteten Gantt
  • Undo/Redo: Prozessรคnderungen rรผckgรคngig machen
  • Mehrsprachigkeit: Englische UI-Variante (i18n)
  • Permalink/Embed: Einbettbarer iFrame-Modus fรผr Folien

โˆ‘ Formelreferenz

GrรถรŸeFormelAnmerkung
WartezeitW_i = Turnaround_i โˆ’ C_iZeit in Ready-Queue
TurnaroundTA_i = finish_i โˆ’ arrival_iGesamtdurchlaufzeit
Response TimeR_i = firstCPU_i โˆ’ arrival_iReaktionszeit
Tardinesstard_i = max(0, finish_i โˆ’ D_i)Deadline-รœberschreitung
LaxityL_i(t) = D_i โˆ’ t โˆ’ rem_C_iVerbleibender Puffer
CPU-Util.U = ฮฃ busy / (T_max ร— n_cores)Core-normalisiert
Jain-Fairness(ฮฃw_i)ยฒ / (n ร— ฮฃw_iยฒ)1.0 = perfekt fair
RM-SchrankeU_max = n(2^(1/n) โˆ’ 1)โ†’ ln(2) โ‰ˆ 69.3% fรผr nโ†’โˆž
EDF-Bedingungฮฃ C_i/T_i โ‰ค 1.0Notwendig und hinreichend
WCRT (RTA)R_i = C_i + ฮฃ_{jโˆˆhp} โŒˆR_i/T_jโŒ‰ยทC_jIterativer Fixpunkt
DVFS-EnergieE = ฮฃ f_tยณ ยท ฮ”tCMOS-Nรคherung Pโˆfยณ
Auslastung TaskU_i = C_i / T_iAnteil der CPU pro Periode
Anbieterkennzeichnung

HM Hochschule Mรผnchen University of Applied Sciences
LothstraรŸe 34
D-80335 Mรผnchen

Telefon: +49 89 1265-0
Fax: +49 89 1265-3000
E-Mail: kommunikation@hm.edu
Website: www.hm.edu

Die Hochschule fรผr angewandte Wissenschaften Mรผnchen ist eine Kรถrperschaft des รถffentlichen Rechts. Sie wird durch den Prรคsidenten Prof. Dr. Martin Leitner gesetzlich vertreten.

Umsatzsteuer-Identifikationsnummer gemรครŸ ยง 27 Umsatzsteuergesetz (UStG): DE 235 059 152

Zustรคndige Aufsichtsbehรถrde:
Bayerisches Staatsministerium fรผr Wissenschaft und Kunst
SalvatorstraรŸe 2
D-80333 Mรผnchen

Verantwortlich fรผr diese Webseite

Verantwortlich fรผr Inhalt, Pflege und Aktualitรคt dieser Webseite im Sinne von ยง 18 Abs. 2 Medienstaatsvertrag (MStV) ist:

Prof. Dr.-Ing. Martin Hobelsberger
Fakultรคt fรผr Informatik und Mathematik
HM Hochschule Mรผnchen University of Applied Sciences
LothstraรŸe 64
E-Mail: martin.hobelsberger@hm.edu

Die Verantwortung des verfassenden Bereichs erstreckt sich insbesondere auf die RechtmรครŸigkeit der Inhalte, die Einhaltung von Lizenz-, Marken- und Urheberrechten sowie die Korrektheit der verรถffentlichten Informationen.

Haftungsausschluss

Die Inhalte dieser Webseite werden mit grรถรŸtmรถglicher Sorgfalt erstellt und regelmรครŸig gepflegt. Dennoch kann keine Gewรคhr fรผr die Richtigkeit, Vollstรคndigkeit und Aktualitรคt der bereitgestellten Informationen รผbernommen werden. Fรผr Schรคden materieller oder immaterieller Art, die durch die Nutzung oder Nichtnutzung der Informationen verursacht werden, wird - soweit gesetzlich zulรคssig - keine Haftung รผbernommen.

Sofern von dieser Webseite auf Inhalte Dritter (externe Webseiten) verlinkt wird, liegen diese auรŸerhalb des Verantwortungsbereiches der Hochschule Mรผnchen. Fรผr illegale, fehlerhafte oder unvollstรคndige Inhalte sowie fรผr Schรคden, die aus der Nutzung oder Nichtnutzung solcher externen Informationen entstehen, haftet ausschlieรŸlich der jeweilige Anbieter der Seiten.

Urheberrecht

Sรคmtliche auf dieser Webseite verรถffentlichten Inhalte (Texte, Bilder, Grafiken, Layouts etc.) unterliegen - soweit nicht anders gekennzeichnet - dem Urheberrecht der jeweils genannten Rechteinhaberinnen und Rechteinhaber bzw. der Hochschule Mรผnchen. Eine Vervielfรคltigung, Bearbeitung, Verbreitung oder sonstige Nutzung auรŸerhalb der engen Grenzen des Urheberrechts ist ohne vorherige schriftliche Zustimmung der Rechteinhaberinnen und Rechteinhaber nicht gestattet.

Bei der Verwendung fremder Inhalte werden die jeweiligen Lizenzbedingungen beachtet, insbesondere bei Werken unter Creative-Commons-Lizenzen.

Datenschutz

Hinweise zur Verarbeitung personenbezogener Daten im Zusammenhang mit der Nutzung dieser Webseite finden Sie in der gesonderten Datenschutzerklรคrung, die von jeder Seite aus direkt erreichbar verlinkt ist. Sie kรถnnen die Seite auch direkt hier aufrufen: Datenschutz.

In der Datenschutzerklรคrung werden insbesondere die Arten der verarbeiteten personenbezogenen Daten, die Zwecke der Verarbeitung, eingesetzte Technologien (z. B. Protokolldateien, Cookies, eingebettete Inhalte Dritter) sowie die Kontaktdaten der bzw. des zustรคndigen Datenschutzbeauftragten der Hochschule Mรผnchen beschrieben.

Datenschutzerklรคrung

Datenschutz ist fรผr die Hochschule Mรผnchen (HM) ein wichtiges Anliegen und gesetzliche Verpflichtung.

Diese Webseite wird betrieben im Rahmen der Hochschule Mรผnchen University of Applied Sciences. Verantwortlich fรผr Inhalt und Betrieb dieser Webseite ist Bernhard Werner im Namen der Fakultรคt fรผr Informatik und Mathematik.

1. Verantwortliche Stelle
Fakultรคt fรผr Informatik und Mathematik
HM Hochschule Mรผnchen University of Applied Sciences
LothstraรŸe 64
D-80335 Mรผnchen
Telefon: +49 89 1265-3700
E-Mail: Sek-Fk07@hm.edu
Website: cs.hm.edu

Verantwortlich fรผr diese konkrete Webseite (Inhalt und Betrieb) ist Prof. Dr.-Ing. Martin Hobelsberger, martin.hobelsberger@hm.edu.

Den behรถrdlichen Datenschutzbeauftragten der Hochschule Mรผnchen erreichen Sie per E-Mail unter datenschutzbeauftragter@hm.edu.

2. Allgemeine Hinweise zur Datenverarbeitung
Beim Besuch dieser Webseite werden grundsรคtzlich keine personenbezogenen Daten von Nutzerinnen und Nutzern erhoben, verarbeitet oder gespeichert.

Es findet keine Erstellung von personenbezogenen Nutzungsprofilen statt, es werden keine Tracking-Tools eingesetzt und es erfolgt keine Weitergabe von Daten an Dritte zu Werbe- oder Analysezwecken.

3. Speicherung von Antworten auf Fragen (nicht-personenbezogen)
Auf dieser Webseite kรถnnen Antworten auf fachliche Fragen eingegeben werden. Diese Antworten werden gespeichert, automatisch ausgewertet und ggf. korrigiert, da die technische Funktion der Seite andernfalls nicht mรถglich wรคre. Die Verarbeitung der Antworten ist damit fรผr die Bereitstellung des von den Nutzerinnen und Nutzern ausdrรผcklich gewรผnschten Dienstes erforderlich. Darรผber hinaus werden die eingegebenen Antworten in anonymisierter Form fรผr wissenschaftliche Forschungsvorhaben ausgewertet (z. B. zu statistischen Zwecken, zur Analyse von Antwortmustern oder zur Weiterentwicklung von Lehr- und Forschungsansรคtzen). Dabei wird darauf geachtet, dass kein Rรผckschluss auf einzelne Personen mรถglich ist.

Bei der Konzeption der Eingabemรถglichkeiten wird darauf geachtet, dass keine personenbezogenen Daten erhoben werden (insbesondere keine Namen, Kontaktdaten oder direkt zuordenbaren Identifikatoren). Nutzerinnen und Nutzer werden gebeten, in ihren Antworten keine Informationen einzugeben, die Rรผckschlรผsse auf ihre Person oder auf andere identifizierbare Personen zulassen.

Soweit im Einzelfall dennoch personenbezogene Angaben freiwillig gemacht werden, werden diese - soweit technisch mรถglich - vor der Auswertung anonymisiert oder gelรถscht, sodass kein Personenbezug mehr besteht. Eine Zusammenfรผhrung der Antworten mit anderen Datenquellen zum Zweck der Identifizierung von Personen findet nicht statt.

4. Einsatz von Cookies und รคhnlichen Technologien
Auf dieser Webseite werden keine Cookies zu Zwecken des Trackings, des Marketings oder der Reichweitenanalyse eingesetzt.

Es kommen lediglich technisch erforderliche Mechanismen zum Einsatz, die fรผr die Bereitstellung der Webseite selbst notwendig sind (z. B. Server-Logik, Session-Handling ohne personenbezogene IDs), ohne dass hierdurch ein Personenbezug hergestellt wird. Ein separates Cookie-Banner oder Einwilligungsmanagement ist daher nicht erforderlich.

5. Server-Logfiles
Die technische Infrastruktur der Hochschule Mรผnchen kann aus Grรผnden der IT-Sicherheit und Betriebsstabilitรคt Server-Logfiles erzeugen (z. B. zur Abwehr von Angriffen).

Soweit hierbei IP-Adressen verarbeitet werden, geschieht dies ausschlieรŸlich zur Sicherstellung des technischen Betriebs, nach dem Prinzip der Datenminimierung und nur fรผr den erforderlichen Zeitraum; danach werden die Daten gelรถscht oder anonymisiert.

6. Ihre Rechte
Soweit im Einzelfall doch personenbezogene Daten verarbeitet werden sollten, stehen Ihnen die folgenden Rechte gemรครŸ Art. 15 ff. DSGVO zu:

  • Recht auf Auskunft รผber die zu Ihrer Person gespeicherten Daten
  • Recht auf Berichtigung unrichtiger Daten
  • Recht auf Lรถschung (Recht auf Vergessenwerden)
  • Recht auf Einschrรคnkung der Verarbeitung
  • Recht auf Widerspruch gegen die Verarbeitung
  • Recht auf Datenรผbertragbarkeit

Sie haben zudem das Recht, sich bei einer Datenschutz-Aufsichtsbehรถrde zu beschweren, wenn Sie der Ansicht sind, dass die Verarbeitung der Sie betreffenden personenbezogenen Daten gegen datenschutzrechtliche Bestimmungen verstรถรŸt.

Aktualisierung dieser Datenschutzerklรคrung
Diese Datenschutzerklรคrung wird bei Bedarf an geรคnderte rechtliche Vorgaben sowie an technische oder organisatorische ร„nderungen angepasst. Es gilt jeweils die auf dieser Webseite verรถffentlichte aktuelle Fassung.