-
Die
Erfindung betrifft ein Verfahren und eine Vorrichtung zum Betreiben
eines technischen Systems, in dem zumindest ein erster und zumindest
ein zweiter Prozess gemeinsam auf einem Prozessor des technischen
Systems ablaufen.
-
Wird
ein technisches System in Echtzeit betrieben, so wird die Reihenfolge
der Abarbeitung der auf dem technischen System ablaufenden Prozesse, welche
auch als Aufgaben bezeichnet werden, durch ihre jeweilige Priorität festgelegt.
Den verschiedenen Prozessen ist jeweils eine Priorität zugeordnet,
wobei die Zuordnung der Prioritäten
in der Regel fix ist. Die Zuordnung der Prioritäten zu den jeweiligen Prozessen
erfolgt aus der Überlegung
heraus, dass manche der Prozesse ohne Unterbrechung ablaufen müssen, während bei
anderen Prozessen eine kurzzeitige Unterbrechung, z. B. aufgrund
der Bearbeitung eines wichtigeren (sog. höherprioren) Prozesses, zumutbar ist.
Unter Umständen
kann sich hierbei eine Situation ergeben, in der ein Prozess mit
einer geringeren Priorität
vielfach unterbrochen wird, was zu einer Einschränkung der Handhabbarkeit des
technischen Systems führt.
-
Es
ist daher Aufgabe der vorliegenden Erfindung, ein Verfahren und
eine Vorrichtung zum Betreiben eines technischen Systems anzugeben,
bei welchen in dem unter Echtzeit betriebenen technischen System
eine optimierte Zuweisung mehrerer Prozesse zu einem Prozessor erfolgt.
-
Diese
Aufgaben werden durch die Merkmale der unabhängigen Patentansprüche gelöst. Vorteilhafte
Ausführungsformen
finden sich jeweils in den abhängigen
Patentansprüchen.
-
Bei
einem erfindungsgemäßen Verfahren zum
Betreiben eines technischen Systems, in dem zumindest ein erster
und zumin dest ein zweiter Prozess gemeinsam auf einem Prozessor
des technischen Systems ablaufen, wird dem zumindest einen ersten,
insbesondere in Echtzeit ablaufenden, Prozess eine jeweilige erste
Priorität
für die
Durchführung
des ersten Prozesses zugewiesen. Dem zumindest einen zweiten, insbesondere
nur zeitweilig ablaufenden, Prozess wird eine jeweilige zweite Priorität für die Durchführung des
betreffenden Prozesses zugewiesen, wobei die zweite Priorität zu der
ersten Priorität
unterschiedlich gewählt
ist. Ferner wird die erste Priorität des ersten Prozesses in Abhängigkeit des
Eintretens zumindest einen vorgegebenen Kriteriums, das durch einen
dritten Prozess überwacht wird,
verändert.
-
Durch
die dynamische Veränderung
der ersten Priorität
kann sichergestellt werden, dass ein in Echtzeit ablaufender erster
Prozess ununterbrochen ablaufen kann. Andererseits kann auch der
zweite Prozess, sofern dieser angefordert oder benötigt wird,
verzögerungsfrei
ablaufen. Dies ist dadurch bedingt, dass sich die Wertigkeit der
Priorität
des ersten und des zweiten Prozesses dynamisch verändern kann.
So kann bei Vorliegen eines bestimmten Kriteriums einmal die erste
Priorität
höher als
die zweite Priorität
sein. Bei Vorliegen eines anderen Kriteriums kann hingegen die zweite
Priorität
höher als
die erste Priorität
sein. Die Veränderung
der Prioritätenwertigkeit
wird durch einen dritten Prozess überwacht. Der dritte Prozess
kann als eigens vorgesehene Überwachungsinstanz
ausgebildet sein. Wie aus der nachfolgenden Beschreibung ersichtlich
werden wird, kann der dritte Prozess auch ein in einem technischen System
von Haus aus vorhandener Prozess sein, der eine ansonsten von der Überwachung
losgelöste Aufgabe
innehat.
-
Gemäß einer
Ausführungsform
der Erfindung wird die erste Priorität kleiner als die zweite Priorität gewählt, wenn
das zumindest eine vorgegebene Kriterium nicht erfüllt ist.
In einem Normalzustand ist damit die erste Priorität des bevorzugt
in Echtzeit ablaufenden ersten Prozesses geringer gewählt, als die
zweite Priorität,
die insbesondere nur zeitweilig ab läuft. Hierdurch ist sichergestellt,
dass der zweite Prozess verzögerungsfrei
starten kann, wenn dieser angefordert wird.
-
Gemäß einer
weiteren zweckmäßigen Ausgestaltung
wird die erste Priorität
größer als
die zweite Priorität
gesetzt, wenn das zumindest eine vorgegebene Kriterium erfüllt ist.
Bei Vorliegen einer besonderen Situation wird die Wertigkeit der
ersten Priorität
höher gewählt als
die Wertigkeit der zweiten Priorität. Hierdurch ist sichergestellt,
dass der insbesondere in Echtzeit ablaufende erste Prozess ohne Unterbrechungen
ablaufen kann.
-
Der
erste Prozess umfasst zweckmäßigerweise
das Schreiben von Daten in Echtzeit in einen Pufferspeicher, wobei
das zumindest eine Kriterium die Unterschreitung eines Parameters
ist, welcher einen Füllstand
des Pufferspeichers repräsentiert.
Der zweite Prozess umfasst zweckmäßigerweise Steuerungsvorgaben
für das
technische System aufgrund einer Aktivierung einer Benutzerschnittstelle
des technischen Systems. Allgemein handelt es sich bei dem zweiten
Prozess um einen Prozess, bei dem es wünschenswert ist, kurze Reaktionszeiten
anzustreben, und der eine hohe Variabilität der Lastanforderung hat.
Die kurzen Reaktionszeiten sollen jedoch nicht zu Lasten der Aufgabe
des ersten Prozesses gehen. Der dritte Prozess umfasst in einer
Ausführungsform
ein Verbrauchen der in dem Pufferspeicher vorgehaltenen Daten, bei
dem die aus dem Pufferspeicher ausgelesenen Daten aus diesem gelöscht werden,
und wobei dem dritten Prozess eine dritte Priorität zugewiesen
ist. Die dritte Priorität
des dritten Prozesses ist zweckmäßigerweise
höher als die
erste und die zweite Priorität
des ersten und zweiten Prozesses. Der dritte Prozess kann beispielsweise
durch einen Geräte-Treiber
(Treibersoftware) gebildet sein.
-
Um
zu häufige
Umschaltungen der Wertigkeit der ersten und der zweiten Priorität des ersten und
des zweiten Prozesses zu vermeiden, ist es zweckmäßig, wenn
die Veränderung
der ersten Priorität
mit einer Hysteresekennlinie ausgeführt wird.
-
Von
der Erfindung umfasst ist ferner ein Computerprogrammprodukt, das
direkt in den internen Speicher eines digitalen Computers geladen werden
kann und Softwarecodeabschnitte umfasst, mit denen die Schritte
gemäß dem oben
beschriebenen Verfahren ausgeführt
werden, wenn das Produkt auf einem Computer abläuft.
-
Eine
erfindungsgemäße Vorrichtung
zum Betreiben eines technischen Systems, in dem zumindest ein erster
und zumindest ein zweiter Prozess gemeinsam auf einem Prozessor
des technischen Systems ablaufen, umfasst die folgenden Merkmale:
zumindest ein erstes Mittel zur Durchführung eines ersten, insbesondere
in Echtzeit ablaufenden, Prozesses mit einer jeweiligen ersten Priorität; zumindest ein
zweites Mittel zur Durchführung
eines zweiten, insbesondere nur zeitweilig ablaufenden, Prozesses mit
einer jeweiligen zweiten Priorität,
die unterschiedlich zu der ersten Priorität gewählt ist; zumindest ein drittes
Mittel zur Durchführung
eines dritten Prozesses mit einer jeweiligen dritten Priorität. Die erste
Priorität
des ersten Prozesses wird in Abhängigkeit
des Eintretens zumindest eines vorgegebenen Kriteriums, das durch
das dritte Mittel überwacht
wird, verändert.
Die Veränderung
kann durch das dritte Mittel herbeigeführt werden. Die erfindungsgemäße Vorrichtung
weist die gleichen Vorteile auf, wie sie in Verbindung mit dem oben
beschriebenen Verfahren bereits erläutert wurden.
-
Das
erste Mittel ist in einer Ausgestaltung eine Datenquelle, insbesondere
ein Dekodierer, zum Schreiben von Daten in einen Pufferspeicher.
-
Das
zweite Mittel ist gemäß einer
Ausführungsform
eine Benutzerschnittstelle des technischen Systems, mit welcher
Steuerungsvorgaben für das
technische System initiierbar sind.
-
Das
dritte Mittel ist zweckmäßigerweise
eine Datensenke, insbesondere ein Geräte-Treiber (Treibersoftware),
zum Verbrauchen der in dem Pufferspeicher vorgehaltenen Daten.
-
Die
Vorrichtung kann beispielsweise durch ein Infotainmentsystem in
einem Verkehrsmittel gebildet sein. Bei einem Infotainmentsystem
handelt es sich um eine Kombination aus einem Navigationsgerät, einer
Audio-/Videoanlage sowie gegebenenfalls einer Telekommunikationsvorrichtung.
-
Die
Erfindung wird nachfolgend näher
anhand der Figuren erläutert.
Es zeigen:
-
1 eine
vereinfachte schematische Darstellung eines der Erfindung zugrunde
liegenden technischen Systems,
-
2 eine
vereinfachte, schematische Darstellung eines erfindungsgemäßen technischen
Systems, und
-
3 die
dynamische Veränderung
von Prioritäten,
welche unterschiedlichen Prozessen zugewiesen sind, in Abhängigkeit
des Eintretens unterschiedlicher Kriterien.
-
Die
Erfindung wird nachfolgend anhand eines technischen Systems beschrieben,
in dem als erster Prozess Daten, z. B. eines Musik- oder Videostückes, in
Echtzeit dekodiert und in einen Pufferspeicher eingeschrieben werden.
Der zweite Prozess umfasst das Nachführen von Steuerungsbefehlen, welche
unter Verwendung einer Benutzerschnittstelle des technischen Systems
generiert wurden. Der dritte Prozess ist durch eine Datensenke,
z. B. einen Geräte-Treiber
bzw. eine Treibersoftware, gebildet, durch welchen die in dem Pufferspeicher
vorgehaltenen Daten verbraucht, d. h. entleert werden. Durch die
Aktivität
des dritten Prozesses werden somit die aus dem Pufferspeicher ausgelesenen
Daten aus diesem gelöscht.
-
Schematisch
ist die beschriebene Situation in den 1 und 2 dargestellt,
wobei 1 ein technisches System gemäß dem Stand der Technik und 2 ein
technisches System gemäß der Erfindung
beschreibt. Mit Q ist eine Datenquelle gekennzeichnet. S bezeichnet
eine Datensenke und SP einen zwischen der Datenquelle Q und der
Datensenke S angeordneten Pufferspeicher. Das Befüllen des Pufferspeichers
SP durch die Datenquelle Q ist durch den mit 1 gekennzeichneten
Pfeil symbolisiert. Das Entleeren des Pufferspeichers SP durch die
Datensenke S ist durch den mit 2 gekennzeichneten Pfeil symbolisiert.
-
Die
in dem technischen System enthaltene Benutzerschnittstelle ist in
den 1 und 2 nicht dargestellt.
-
Das
Befüllen
des Pufferspeichers SP mit durch die Datenquelle Q dekodierten Daten
erfolgt üblicherweise
in Echtzeit. In entsprechender Weise erfolgt ebenso das Auslesen
und Entleeren der in dem Pufferspeicher SP enthaltenen Daten durch
die Datensenke S in Echtzeit. Aufgrund dessen ist insbesondere dem
Prozess des Dekodierens der Daten durch die Quelle Q und das Beschreiben
des Pufferspeichers SP im Stand der Technik eine höhere Priorität zugewiesen
als dem Prozess des Nachführens der
Benutzerschnittstelle. Die Prioritätsvergabe erfolgt im Stand
der Technik hierbei statisch. Diese Vorgehensweise erfolgt aus der
an und für
sich richtigen Überlegung
heraus, dass eine träge
Benutzerschnittstelle einer kontinuierlichen Musikwiedergabe mit Aussetzern
vorzuziehen ist. Durch die feste Zuweisung der Prioritäten zu den
jeweiligen Prozessen kann unter Umständen die Benutzerschnittstelle
eine nicht mehr tolerierbare Trägheit
aufweisen.
-
Die
Erfindung geht einen anderen Weg. Dies wird am Besten anhand der 3 ersichtlich,
in der die dynamische Prioritätenzuweisung
dargestellt ist. In der oberen Hälfte
der 3 ist die Zuweisung von Prioritäten zu den
einzelnen Prozessen dargestellt. Die untere Hälfte der 3 zeigt
einen Füllstand
des Pufferspeichers in Abhängigkeit
des Betriebs des technischen Systems. Zu einem Zeitpunkt t0 befindet sich das technische System in
einem willkürlichen, eingeschwungenen
Zustand. Zwischen t0 und t4 befindet
sich das technische Sys tem in einem Normalzustand N, in welchem
dem Prozess des Dekodierens und Befüllens des Pufferspeichers SP
eine Priorität
PN zugewiesen ist. In dem Normalzustand
N des technischen Systems weist der Pufferspeicher einen hohen Füllstand
QH auf. Das Dekodieren und Befüllen des
Pufferspeichers erfolgt kontinuierlich, so dass der Füllstand
des Pufferspeichers mit einer konstanten Steigung ansteigt. Die
Datensenke, d. h. ein Geräte-Treiber,
welcher die aus dem Pufferspeicher entnommenen Daten z. B. einem
Audio- oder Videoverstärker
zuführt,
verbraucht die Daten. Dies ist ein diskontinuierlicher Prozess TS,
weswegen dies durch einen strichliert erscheinenden Balken dargestellt
ist.
-
Zum
Zeitpunkt t1 wird die Benutzerschnittstelle
BS des technischen Systems betätigt.
Während
des Normalzustandes N ist der Benutzerschnittstelle grundsätzlich eine
Priorität
PM zugewiesen, welche höher ist, als die Priorität PN der Datenquelle. Die Benutzerschnittstelle
ist zwischen t1 und t2 aktiv. Währenddessen
kann die Datenquelle keine Daten dekodieren und dem Pufferspeicher
zuführen.
Da die Datensenke jedoch weiterhin kontinuierlich die in dem Pufferspeicher
enthaltenen Daten verbraucht, nimmt der Füllstand des Pufferspeichers
mit einer konstanten Steigung ab, wobei die Steigung betragsmäßig größer ist,
als während
des Befüllens
des Pufferspeichers.
-
Im
Ausführungsbeispiel
endet die Aktivität der
Benutzerschnittstelle mit dem Erreichen des Zeitpunktes t2. Zwischen t2 und
t3 ist damit die Datenquelle als Prozess
aktiv, so dass der Füllstand
des Pufferspeichers wiederum ansteigt.
-
Durch
die erneute Betätigung
der Benutzerschnittstelle zwischen t3 und
t4 wird das Dekodieren und Befüllen des
Pufferspeichers durch die Datenquelle unterbrochen, aufgrund der
höheren
Priorität PM der Benutzerschnittstelle. Infolgedessen
nimmt der Füllstand
des Pufferspeichers weiterhin ab, bis dieser zum Zeitpunkt t4 einen unteren Schwellwert SWU erreicht.
Die Detektion des Erreichens des Schwellwertes SWU wird
durch die Datensenke bzw. den Prozess des Geräte-Treibers detektiert. Mit dem Erreichen
des Schwellwertes SWU besteht die Gefahr,
dass bei länger
andauernder Betätigung
der Benutzerschnittstelle und die kontinuierliche Datenentnahme
durch die Datensenke der Pufferspeicher vollständig entleert wird, so dass
die Zuführung
von Daten zu der Datensenke unterbrochen werden könnte. Um
dies zu vermeiden wird die Priorität der Datenquelle von PN auf PH erhöht, wobei
die Priorität
PH größer als
die Priorität
PM der Benutzerschnittstelle ist. Während der
Prioritätenumschaltung
von PN auf PH liegt
ein Ausnahmezustand A des technischen Systems vor, in dem ein niedriger
Füllstand
QN des Pufferspeichers vorliegt. Aufgrund
der höheren
Priorität
der Datenquelle kann nunmehr ein erneutes Befüllen des Datenspeichers erfolgen,
wobei die Aktivierung der Benutzerschnittstelle bis zum Erreichen eines
oberen Schwellwertes SWO nicht berücksichtigt wird.
-
Der
obere Schwellwert SWO ist im Ausführungsbeispiel
zum Zeitpunkt t5 erreicht. Zu diesem Zeitpunkt
erfolgt eine erneute Prioritätsumschaltung. Dies
bedeutet, dem Prozess der Datenquelle wird wiederum die ursprüngliche,
niedrige Priorität
PN zugewiesen. Aufgrund der höheren Priorität PM der Benutzerschnittstelle wird diese wieder
aktiv, wodurch ein erneutes Leeren des Pufferspeichers bis zum Zeitpunkt
t6 erfolgt. Da zum Zeitpunkt t6 der
untere Schwellwert SWU noch nicht erreicht
ist, erfolgt zu diesem Zeitpunkt keine erneute Prioritätenumschaltung.
Mit Beendigung der Benutzerschnittstelle zum Zeitpunkt t6 kann die Datenquelle den Pufferspeicher erneut
auffüllen.
Mit dem Zeitpunkt t5 ist damit wiederum
ein Normalzustand N des technischen Systems erreicht.
-
Wie
aus 3 unschwer zu erkennen ist, ist der Datensenke
eine Priorität
PI zugewiesen, welche höher als die Prioritäten PH, PM und PN ist. Im Ausführungsbeispiel gilt: PI > PH > PM > PN.
-
Technisch
kann die Erfindung dadurch realisiert werden, dass eine Füllstandsüberwachung
des Pufferspeichers vorgenommen wird. Diese kann zweckmäßigerweise
durch die ohnehin vorhandene Datensenke, den Geräte-Treiber oder die Treibersoftware,
realisiert sein. Hardwaretechnische Modifikationen sind bei dieser
Vorgehensweise nicht notwendig. Es sind nur geringfügige softwaretechnische
Modifikationen notwendig, die keine Architekturänderungen benötigen.
-
Es
wird, wie dies in 2 gezeigt ist, der Pufferspeicher
SP gegenüber
einem herkömmlichen technischen
System vergrößert werden.
Eine Vergrößerung des
Pufferspeichers ist insofern keine hardwaretechnische Modifikation,
da der Pufferspeicher aus einem großen Speichervorrat schöpft, der
in der Regel schon vorhanden ist. Der Pufferspeicher SP weist hierbei
einen Bereich SPH auf, der dem Pufferspeicher
SP aus 1 entspricht. Zusätzlich weist der Pufferspeicher
SP einen Bereich SPN auf. Solange die Datenquelle
Daten aus dem Bereich SPN entnehmen kann,
liegt der Normalzustand N des technischen Systems vor. Ist der Bereich
SPN des Pufferspeichers SP hingegen
entleert worden, und muss die Entnahme von Daten nunmehr aus dem
Bereich SPH erfolgen, so wird eine Prioritätenumschaltung
vorgenommen, bei der dem Prozess des Dekodierens und Auffüllen des
Pufferspeichers eine höhere
Priorität als
der Benutzerschnittstelle zugewiesen wird.
-
Solange
sich der Pufferstand des Pufferspeichers PS im Bereich des ursprünglichen
Puffers SPH befindet, sind die Systemmerkmale
im Vergleich zum Stand der Technik gleich. Befindet sich der Pufferstand
jedoch im Bereich des erweiterten Puffers SPN, tritt
eine Verbesserung gegenüber
dem Stand der Technik ein. Die Datenquelle behindert in diesem Fall nicht
mehr den Ablauf bzw. die Betätigung
der Benutzerschnittstelle, welche verzögerungsfrei ablaufen kann.
Dies ist so lange der Fall, wie der Füllstand in dem erweiterten
Bereich SPN liegt. Ist die Variabilität der Benutzerschnittstelle
hoch, d. h. Phasen starker Beanspruchung der Prozessorleistung wechseln
sich mit Phasen niedriger oder keiner Belastung ab, so erlaubt die
Erfindung so gut wie immer den Pufferstand in dem erweiterten Bereich
SPN zu halten und damit die Reaktions freudigkeit
des technischen Systems auf Benutzereingaben über die Benutzerschnittstelle deutlich
zu verbessern.
-
Wenn
Füllstand
des Pufferspeichers SP im Bereich des ursprünglichen Puffers SPH liegt, bleibt das Verfahren unverändert, d.
h. der Prozess des Dekodierens wird mit hoher Priorität PH vorgenommen. Hierdurch bleibt das Systemverhalten
im Vergleich zum Stand der Technik gleich. Läuft der ursprüngliche
Puffer SPH voll, so wird die Priorität des Dekodierens
von PH auf PN gesetzt,
wobei PN kleiner als die Priorität PM der Benutzerschnittstelle ist. Solange
der Prozess der Benutzerschnittstelle nicht benötigt wird, läuft der
Prozess des Dekodierens weiter, wodurch der erweitere Puffer SPN gefüllt
wird. Eine Deaktivierung des Dekodierens erfolgt, wenn auch der
erweitere Puffer SPN voll ist.
-
Umgekehrt
wird bei Unterschreitung des Füllstandes
vom vergrößerten in
den ursprünglichen Puffer
SPH die Priorität des Dekodierens auf die ursprünglich hohe
Priorität
PH angehoben. Damit kehrt das System zu
seinem ursprünglichen,
bekannten Verhalten zurück
und die Gefahr eines Leerlaufens des Pufferspeichers ist gebannt.
-
Die
Erfindung wurde anhand eines technischen Systems mit zwei Aufgaben
(Prozessen), dem Dekodieren von Daten und der Überwachung einer Aktivität der Benutzerschnittstelle
beschrieben. Die Erfindung lässt
sich auch in technischen Systemen einnetzen, in denen mehr als zwei
Aufgabe zu erledigen sind. In diesem Fall müssen mehr Abstufungen bei der
Prioritätenvergabe
vorgesehen werden. Zum Beispiel könnten zwei Dekodiervorgänge gleichzeitig aktiv
sein. In diesem Fall ist es sinnvoll, eine weitere Unterteilung
im Bereich des erweiterten Puffers einzuführen, ab der die Priorität weiter
abgesenkt wird. Hierdurch wird ein ähnlicher Effekt wie bei einem Zeitmultiplexing
(sog. Time Sharing) erreicht. Es ist auch eine Steuerung durch intrinsische,
anstatt von extrinsischen Faktoren möglich. So kann eine Steuerung
anhand von Pufferfüllständen anstatt
durch Zeit erfolgen.