A: Scheduling unter Linux

Aufgabe A

Das folgende kleine Beispiel verdeutlicht die abwechselnde Ausführung von Prozessen auf der CPU. Es ist die Aufgabe des Schedulers dafür zu sorgen, dass jeder mal an die Reihe kommt.

Bitte denke daran: Es wird von einem "Ein-Prozessor-System" ausgegangen, d.h. es kann immer nur ein Prozess zur Zeit auf der CPU aktiv sein. Nicht mehrere CPUs, auch nicht mehrere CPU-Kerne.

http://de.wikipedia.org/w/index.php?title=Fork_%28Unix%29&printable=yes#Beispiel

Kompiliere den Quelltext und führe das Programm anschließend aus.
(Infos zum kompilieren gab es schon hier.)

Interpretiere die Ausgabe! Erläutere also, was du siehst.
Ändert sich etwas, wenn du das Programm mehrfach ausführst?

Hinweise

  • Sorge beispielsweise für unterschiedliche Systemlast, während du das Programm ausführst. Wie das geht: siehe unten auf dieser Seite.
  • Eventuell ist es hilfreich, wenn du die Ausgabe des Programms in eine Datei umleitest. Du kannst diese Datei dann später einfach mit einem Texteditor analysieren.

So leitest du die Ausgabe um

So erzeugst du Systemlast unter Linux

Öffne eine eigene SSH-Sitzung und gebe den folgenden Befehl ein:
yes > /dev/null
Dieser Befehl sendet unendlich viele yes nach /dev/null, also in den Linux-"Müllschlucker". Er lässt sich bei Bedarf mit STRG+C abbrechen.

Öffne eine eigene SSH-Sitzung und geben Sie den folgenden Befehl ein:
cat /dev/urandom > /dev/null
Dieser Befehl sendet unendlich viele Zufallszahlen nach /dev/null, also in den Linux-"Müllschlucker". Er lässt sich bei Bedarf mit STRG+C abbrechen.