Ja, hallo, guten Morgen. Willkommen zu unserer zweiten Vorlesung heute. Bevor ich jetzt somit
ja, dem ersten neuen Thema von Systemprogrammierung 2, nämlich der Prozessverwaltung, beginne,
kurz die Frage, gibt es irgendwelche organisatorischen Dinge noch zu klären?
Hat mit der Übungsanmeldung alles so geklappt, wie ich es dir vorgestellt habe, oder gibt
es etwas, wo ich das Problem lösen müsste noch?
Nicht?
Gut.
Ja, gut, jetzt hier mit den Übungsgruppen, es waren letztendlich auch weniger Anmeldungen,
wie wir gerechnet haben, während umgekehrt in der Systemprogrammierung 1 erheblich mehr
waren, wie wir gerechnet haben, aber gut, da konnten wir jetzt natürlich dann ganz praktisch
auch noch einen Übungsleiter umschieben und insofern müssten jetzt eigentlich beide Veranstaltungen
ganz gut bedient sein.
Gut, also, das erste große Kapitel von Systemprogrammierung 2 ist das Thema Prozessverwaltung und das
erste Thema in diesem Kapitel ist jetzt das Thema Einplanungskriterien, überhaupt das
Thema Einplanung erstmal.
Ich will ein bisschen was Grundsätzliches über Programm Fäden, also Threads sagen,
wie die so ablaufen, was man in Bezug auf Leistungsoptimierung in dem Rechner tun kann.
Dann geht es darum, wie man bei dieser Einplanung von Fäden arbeitet, welche Ebenen es gibt,
also so mittelfristig, langfristig, kurzfristig und was es mit dem Thema Verdrängung auf
sich hat und dann der dritte große Abschnitt ist dann, ja, auch wieder nach welchen Kriterien
macht man so eine Einplanung überhaupt.
Einerseits will man natürlich irgendwelche Kriterien für den Benutzer erfüllen, andererseits
hat man vielleicht auch System globale Kriterien, die man erfüllen möchte und dann gibt es
noch so verschiedene Betriebsarten, in denen Rechner arbeiten, in Bezug auch auf die Ziele,
die mit dem Rechenbetrieb einfach verbunden sind.
Schauen wir uns erstmal so ein paar grundsätzliche Fragen an.
Also die Einheit, die man einem Prozessor, einem Prozessorkern zuteilt, ist ein Faden,
Englisch Thread.
Hier hat sich der deutsche Begriff Faden inzwischen doch relativ weit, also auch über
Waschveranstaltungen hinaus sehr gut durchgesetzt und ja, diese Planung, wie man solches Rez
jetzt, wie man die CPU solchens Rez gibt, erfolgt letztendlich betriebsmittelorientiert.
Sie kann ereignungsgesteuert sein oder sie kann zeitgesteuert sein und das gucken wir
uns mal ein bisschen genauer an.
Also die Laufbereitschaft von einem Faden hängt letztendlich davon ab, ob all die Betriebsmittel,
die er für seinen Ablauf braucht, verfügbar sind.
Das wichtigste Betriebsmittel ist natürlich immer die CPU, aber es gehören natürlich
bei Betriebsmitteln auch solche Dinge dazu, dass er möglicherweise, dass der Speicher
verfügbar ist.
Es könnte sein, dass Speicherbereiche ausgelagert wurden, weil nicht genug Hauptspeicher zur
Verfügung steht und einzelne Bereiche, Pages ausgelagert werden und wenn der Speicher nicht
da ist, dann kann der Faden oder der Prozess nicht rechnen.
Andere Betriebsmittel können sein, irgendwelche Zwischenergebnisse, die von anderen Threads
erzeugt werden, die irgendwo dann in irgendwelchen Puffern vorhanden sein müssen, damit man eben
auf den weiter rechnen kann.
Das können also ganz unterschiedliche Sachen sein.
In dem Moment, wo diese Betriebsmittel, die der Faden braucht, zur Verfügung stehen,
kann man im Prinzip sofort diesen Faden einplanen.
Man kann es aber auch später machen, dass man also nur in fest vorgegangenen Zeitintervallens
sich überlegt, welche Fäden sind jetzt potenziell ablauffähig und dann halt eine Planung darüber
macht, in welcher Reihenfolge nehme ich die denn dran.
Presenters
Zugänglich über
Offener Zugang
Dauer
01:24:45 Min
Aufnahmedatum
2012-10-25
Hochgeladen am
2019-05-02 02:29:02
Sprache
de-DE
- Grundlagen von Betriebssystemen (Adressräume, Speicher, Dateien, Prozesse, Koordinationsmittel; Betriebsarten, Einplanung, Einlastung, Virtualisierung, Nebenläufigkeit, Koordination/Synchronisation)
-
Abstraktionen/Funktionen UNIX-ähnlicher Betriebssysteme
-
Programmierung von Systemsoftware
-
C, Make, UNIX-Shell (Solaris, Linux, MacOS X)
Lernziele und Kompetenzen:
Die Studierenden
-
erwerben fundierte Kenntnisse über Grundlagen von Betriebssystemen
-
verstehen Zusammenhänge, die die Ausführungen von Programmen in vielschichtig organisierten Rechensystemen ermöglichen
-
erkennen Gemeinsamkeiten und Unterschiede zwischen realen und abstrakten (virtuellen) Maschinen
-
erlernen die Programmiersprache
-
entwickeln Systemprogramme auf Basis der Systemaufrufschnittstelle UNIX-ähnlicher Betriebssysteme