Ich möchte nun an einem kleinen Beispiel zeigen, im Rahmen einer Fallstudie zeigen,
warum es wichtig sein kann zu ergründen, welches Laufzeitverhalten eines Programms,
das wir selbst geschrieben haben, durch welche Funktion innerhalb des Rechensystems verursacht
wird. Das spielt dann das Betriebssystem schon eine wichtige Rolle. Wir werden aber auch sehen,
dass nicht nur allein das Betriebssystem für bestimmte Effekte, die wir gleich darstellen,
verantwortlich sind. Das Beispiel ist ein einfaches Programm, was durchaus speicherintensiv und auch,
wenn man so wie rechenintensiv halt ist, es geht um eine Matrix-Operation. Betriebssystemseitig
könnte man sagen, das ist ein Beispiel, was im Bereich der Speicherwaldung verankert ist und
Fragen der Speicherbelegung letztendlich ergründet. Wir werden in zwei Teilen vorgehen. Erst werde ich
das Programm selbst vorstellen und dann die Laufzeitergebnisse präsentieren, die dieses
Programm auf verschiedene Rechensysteme geliefert hat. Und die werden wir dann halt im zweiten Teil
analysieren, um die Effekte dann halt eben doch entsprechend halt herauszuarbeiten und zu begründen.
Nun, es geht eigentlich um die Untersuchung eines bestimmten Phänomens beim Ablauf einer
Matrix-Operation. Da gehen wir ganzheitlich ran. Das heißt, wir schauen uns also insgesamt den
Programmablauf an und versuchen dann aufgrund dieser Ergebnisse mit Expertenwissen, wenn man so
will, herauszufinden, welche Elemente, einzelne Elemente, denn für welche Effekte, die wir sehen,
verantwortlich sind. Und das ist schon ein Stück weit in die Richtung, dass wir versuchen eben auch
die Funktionsweise von Betriebssystemen zu verstehen. Indem wir das nämlich tun, sind wir auch in der
Lage eben bestimmte Effekte, Erscheinungen beim Ablauf von Programmen innerhalb eines Rechensystems
besser zu begreifen und demzufolge auch die Bedeutung besser einschätzen zu können. Das
gilt nur nicht nur für Betriebssysteme, aber insbesondere eben auch für Betriebssysteme.
Es geht darum, Eigenschaften von Betriebssystemen zu erkennen. Das ist so eine generelle Sichtweise.
Wir haben ja typischerweise zwei Arten von Eigenschaften, die man eigentlich immer
auseinanderhalten muss. Es ist einmal die sogenannten funktionalen Eigenschaften und die
nicht funktionalen Eigenschaften. Nun bezogen auf Betriebssysteme sind typische funktionalen
Eigenschaften verankert in der Verwaltung von Betriebssystemen. So kann man das allgemein
betrachten. Wir werden im Verlauf der Vorlesung natürlich da denn die Sachen noch ein bisschen
weiter differenziert betrachten. Aber es geht schlichtweg ja um die Verwaltung von Prozessoren,
von Speicher, von Peripherie für eine bestimmte Anwendungsdomäne. Das sind die Funktionen,
wie so ein Dateisystem, eine Prozessverwaltung, eine Speicherverwaltung als so ein funktionales
Merkmal, eine funktionale Eigenschaft gilt. Und indem jetzt diese Systemfunktionen denn
zur Ausführung gebracht werden und als Programme ablaufen, fällt eben Zeit an. Wird Energie
verbraucht durch die Hardware, benötigt man mehr oder weniger viel Speicherplatz. Dies sind
der nicht funktionalen Eigenschaften eines Betriebssystems zum Beispiel. Allgemein bezogen
auf eine Implementierung eines Programms geht es eigentlich mit den nicht funktionalen
Eigenschaften immer um die Gütemerkmale einer bestimmten Implementierung. Wenn die
funktionalen Eigenschaften stattfinden, wenn die erbracht werden von den Betriebssystemen,
dann resultiert daraus ein bestimmtes Systemverhalten. Zeitliches Verhalten etwa. Und häufig ist es
wichtig zu erkennen, ob denn dieses Systemverhalten, was man wahrnimmt, nun ein Fehler des Systems
ist oder eben eine Eigenschaft, ein Feature. Also man möchte Bugs von Features unterscheiden
können. Das ist schon deshalb sehr wichtig, weil man sehr häufig in der Lage ist, um
Erkante Fehler herumprogrammieren zu können und die dann damit letztendlich zu kaschieren,
sodass die auf einer höheren Ebene gar nicht mehr in Erscheinung treten. Es ist aber so,
dass wenn wir jetzt nicht funktionale Eigenschaften haben, Laufzeit-Eigenschaften von Betriebssystemen
zum Beispiel, die nicht zum Anwendungsfall passen, dann wird man da auch kaum herumprogrammieren
können. Ein typischer Fall ist eben, wenn wir Echtzeit-Anwendungen haben, die ganz klare
und vielleicht sogar harte Anforderungen an bestimmte Laufzeit-Zeiteigenschaften des
Betriebssystems besitzen, dann wird man mit nicht echtzeitfähigem Betriebssystem kaum
erfolgreich sein können und diese Anwendung erfolgreich zur Ausführung bringen können.
Nun, worum geht es hier? Es geht um die Vorbelegung einer n-Kreuz-n-Matrix, also ein zweidimensionales
Presenters
Zugänglich über
Offener Zugang
Dauer
00:15:42 Min
Aufnahmedatum
2020-05-07
Hochgeladen am
2020-05-07 18:46:06
Sprache
de-DE