Abschließend wollen wir uns mal unterschiedliche Kriterien, wonach denn eingeplant werden kann,
anschauen. Das sind sogenannte Günter-Merkmale. Die sind manchmal benutzerdienlich oder sie sind
eher so ausgelegt, dass sie sich an eine bessere Systemperformance orientieren. Sie hängen auch
durchaus von der jeweiligen Betriebsart des Rechensystems ab. Das sind unterschiedliche
Dimensionen der Prozesseinplanung, die wir hier betrachten werden. Letztendlich Kriterien,
die bestimmen, in welcher Reihenfolge denn Prozesse denn ausgeführt werden sollen. Da haben wir die
benutzerorientierten Kriterien. Da geht es um die Benutzerdienlichkeit. Das heißt, man möchte
versuchen, ein Systemverhalten für den Benutzer zu optimieren. Dafür dann eben auch mit den Maßnahmen,
die man im System trifft, für eine bessere Akzeptanz sorgen und damit auch die Anwendungsdomäne aus der
technischen Hinsicht entsprechend unterstützen zu können. Wichtig dabei ist eben auch bestimmte
Gütemerkmale, denn für die Anwendungsdomäne, für die Anwendungsprozesse, denn letztendlich durchzusetzen.
Dann haben wir dem gegenüber die sogenannten systemorientierten Kriterien. Hier fokussiert
man eben auf die Systemperformance. Also man möchte eine ordentliche Auslastung, eine effiziente,
effektive Auslastung der Betriebsmittel haben. Man möchte dafür Sorge tragen, dass sich das System
rentiert, die hohen Anschaffungskosten. Das sind typischerweise Kriterien, die für die Großrechner
eher gelten als etwa für normale Personal Computer. Da reden wir bei den Großrechnern ja durchaus
von Millionen von Euro, die halt investiert werden müssten, um so ein größeres System dann zur
Verfügung zu stellen. Und da sollten sich dann schon die Anschaffungskosten dann in irgendeiner Form
halt rentieren. Und das bedeutet, dass man viel stärker auf Systemperformance wert liegt, also
systemorientierte Kriterien bei der Planung berücksichtigt als die anwendungsorientierten
Kriterien oder benutzerorientierten Kriterien. Nun sind es genau Ausschlusskriterien, die man halt
hier halt, also wir wollen jetzt nur benutzerorientiert schedulen oder nur systemorientiert.
Es ist insbesondere natürlich schon so, dass wenn man eine tolle, eine gute Systemperformance hat,
dann kommt es eigentlich jedem Benutzerprozess letztendlich auch zugute. Also die Kriterien,
die wir da halt haben, ergänzen sich denn durchaus in ihrer Wirksamkeit danach. Nun,
die Liste der benutzerorientierten Kriterien ist mal hier dargestellt. So typische Anforderungsmerkmale
sind sowas wie Antwortzeit, Durchlaufzeit, Termineinhaltung und Vorhersagbarkeit. Antwortzeit
bedeutet die Minimierung der Zeitdauer ab Auslösung eines Systemaufwuchs, bis man dann wieder praktisch
die Rückantwort bekommt. Also bis man aus dem Systemaufruf zurückkehrt, ist ein Punkt bei
gleichzeitiger Maximierung der Anzahl der interaktiven Prozesse. Dann die Durchlaufzeit, ja man möchte
wirklich die Zeitdauer vom Starten eines Prozesses, wo der dann mal so zugelassen wird im System,
bis zur Beendigung dann halt irgendwie minimieren im Endeffekt. Termineinhaltung, es gibt dann
Prozesse, wo klare Termine vorgegeben werden, wo dann klar ist, dass der Prozess zu einem
fest vorgegebenen Zeitpunkt starten muss oder beendet sein muss. Und dann Vorhersagbarkeit,
die Ausführung von solchen Prozessen sollte deterministisch geschehen und das sollte
unabhängig von jeweils vorliegenden Systemnass sein, was eine ziemlich schwierige Sache
denn halt darstellt. Je nach Anwendungsdomäne ist sozusagen die Bedeutung eines solchen Kriteriums
halt unterschiedlich gewichtet. Also gerade für interaktive Systeme sind Antwortzeiten extrem
wichtig, für Echtzeitsysteme sind sowas wie Termineinhaltung und auch die Vorhersagbarkeit
der Abläufe dann durchaus wichtig. Dann haben wir die systemorientierten Kriterien, das sind
wünschenswerte Anführungswerkmal wie Durchsatz, Prozesseauslastung, Gerechtigkeit im System bei
der Zuteilung von den Ressourcen, Dringlichkeiten und Lastausgleich. Durchsatz heißt eben, dass man
eben wirklich die Anzahl der Prozesse innerhalb einer Zeiteinheit, die man bearbeiten kann,
die man vollenden kann, dass man die möglichst maximieren möchte. Man möchte sozusagen den
Prozentanteil erhöhen oder maximieren, wo die CPU ausgelastet ist und dann halt sinnvolle Arbeit
leisten kann. Das gleiche gilt aber auch durchaus für die Auslastung von normalen Ausgabegeräten.
Das wäre der Bezug zur Prozesseauslastung gerecht. Ja, alle Prozesse sollten möglichst um die gleich
behandelt werden. Zuzusichern, dass wirklich jeder Prozess innerhalb einer bestimmten Zeit mal
irgendwann die CPU zugeteilt bekommt, dann kann man es so sein, dass man bestimmte Prozesse bevorzugt
bearbeiten muss. Die haben eine höhere Priorität, andere haben eine niedrige Priorität. Das bezieht
sich auf Dringlichkeiten von Prozessen, die man denn betrachtet. Naja, und dann Betriebsmittel
möglichst gleichmäßig auslassen. Das ist der Aspekt des Lastausgleichs, den wir halt hier haben.
Diese wünschenswerten Anforderungsmerkmale, die man auf der Systemebene als systemorientierten
Kriterien umsetzen möchte, die sollten natürlich dann immer möglichst verträglich zu dem jeweiligen
Anwendungsdomäne ausgelegt sein. Es gibt eine Beziehung zwischen den Betriebsarten und diesen
Kriterien, die wir gerade betrachtet haben. Man kann durchaus sagen, dass damit eben auch eine
Prozess Einplanung, die sich nach bestimmten Kriterien orientieren muss, damit letztendlich
auch eine bestimmte Rechnerbetriebsart impliziert. Das gilt auch umgekehrt. Allgemein würde man sagen,
dass Gerechtigkeit und Lastausgleich Kriterien sind, die für alle Formen von Rechnerbetrieb
eigentlich gelten sollten. Viel wichtiger dabei eigentlich noch die Durchsetzung der jeweiligen
Strategie. Es macht wenig Sinn, sich für ein Kriterium zu entscheiden, daraufhin eine bestimmte
Einplanungsstrategie maßzuschneiden. Dann stellt man fest, durch bestimmte andere Maßnahmen innerhalb
des Rechensystems ist man nicht in der Lage, genau diese jeweilige Strategie, die, sagen wir mal,
zur bestimmten Gerechtigkeit vorsieht, durchzusetzen. Wir werden sowas später sehen. Da sehen wir
bestimmte Operationen, die auf der Synchronisationsebene von Prozessen problematisch
sein könnten, gerade vor dem Hintergrund einer bestimmten Einplanungsstrategie. Beim Stapelbetrieb,
da steht sowas wie Durchsatz, Durchlaufzeit und Prozesserauslastung im Vordergrund. Beim
Dialogbetrieb, da steht die Antwortzeit im Vordergrund. Beim Echtzeitbetrieb steht sowas
wie Dringlichkeit, Termineinhaltung, Vorhersagbarkeit im Vordergrund. Und wenn man sich denn diese
Dinge dann anschaut, also gerade Dringlichkeit, Prioritäten, dann hat man hier ganz klare Konflikte
mit solchen allgemeinen Aspekten wie Gerechtigkeit und lasst das gleich generell, muss man sagen,
Echtzeitbetrieb ist unfair. Echtzeitbetrieb geht immer zulasten der weniger dringlicheren als
dringlich eingestuften Prozesse. Manchmal ist es dann eine gewisse Form von Willkürlichkeit,
wie denn Prozesse halt als dringlich eingestuft werden oder nicht. Es ist aber auch wichtig,
Prozesse mit einer höheren Dringlichkeit abzuarbeiten, wenn es dann zum Beispiel darum
geht, bestimmte externe Vorgänge Maschinen zu steuern. Da muss man sich ja nach den Vorgaben
richten, die aus der Umgebung kommen, da kann man sich nicht so einfach immer nur strikt
danach orientieren, was innerhalb eines Rechensystems veranschreitet. Wir haben noch andere eigentlich
magische Effekte, die möglicherweise eine Rolle spielen könnten, wenn es denn darum geht,
eine Einplanungsstrategie zu realisieren und die Proportionalität der Entscheidungen,
die da sozusagen getroffen werden. Es gibt durchaus Fälle, wo man dann, sagen wir mal,
für bestimmte Prozesse im Laufzeitverhalten simuliert, was überhaupt ja nicht zu den
entsprechenden technischen Leistungsvermögen des Rechensystems entspricht. Also man lässt
Prozesse vielleicht bewusst langsamer ablaufen aus Gründen der Nutzerakzeptanz, weil vielleicht es
um Benutzer geht, die kennen sozusagen ihre Anwendungsfälle und wissen, unter welchen
zeitlichen Abläufen die korrekte Ergebnisse liefern und sind ein bisschen, sehen Bedenken,
wenn man dann feststellt, dass dann plötzlich die ganzen Aktionen viel zu schnell stattfinden. Es
gibt tatsächlich Beispiele, wo man dann halt Systeme derart baut, dass man praktisch einfach,
um eine bessere Nutzerakzeptanz zu erzielen, einfach bestimmte Aktionen innerhalb eines
Rechensystems langsamer ablaufen lässt. Das ist nicht der Regelfall, aber auch solche Situationen
findet man hin und wieder.
Presenters
Zugänglich über
Offener Zugang
Dauer
00:10:04 Min
Aufnahmedatum
2020-10-22
Hochgeladen am
2020-10-23 00:26:52
Sprache
de-DE