-
HINTERGRUND
-
Feld
-
Die Offenbarung betrifft im Allgemeinen eine Vorrichtung zum Durchführen einer dynamischen Zeitablaufsteuerung für Frames, welche die Ansichten eines geographischen Informationsumfelds repräsentieren.
-
Unter Schutz gestellt werden und Gegenstand des Gebrauchsmusters sind dabei, entsprechend den Vorschriften des Gebrauchsmustergesetzes, lediglich Vorrichtungen wie in den beigefügten Schutzansprüchen definiert, jedoch keine Verfahren. Soweit nachfolgend in der Beschreibung gegebenenfalls auf Verfahren Bezug genommen wird, dienen diese Bezugnahmen lediglich der beispielhaften Erläuterung der in den beigefügten Schutzansprüchen unter Schutz gestellten Vorrichtung oder Vorrichtungen.
-
Hintergrund
-
Ein geographisches System (GIS) ist ein System zum Archivieren, Abrufen, Anzeigen, oder Manipulieren indizierter Daten gemäß den geographischen Koordinaten der Datenelemente. Bei den Datenelementen kann es sich um eine Vielzahl an Datentypen handeln, wie etwa Satellitenbilder, Karten, Gebäude- und Geländemodelle, und sonstige geographische Merkmale. Das GIS könnte es einem Benutzer ermöglichen, um einen virtuellen Globus herum zu navigieren und sich Satellitenbilder, Gelände, dreidimensionale Gebäude und georäumliche Inhalte in einem geographischen Informationsumfeld anzusehen, das auf einer Einrichtung angezeigt wird. Eine GIS-Anwendung kommuniziert mit einem Server, um Daten abzurufen, die zum Anzeigen auf einer Client-Einrichtung erforderlich sind. Beim Anzeigen von Inhalten verfügt die GIS-Anwendung möglicherweise über einen signifikanten Anteil an sichtbarem Stottern. Wenn ein Benutzer den Globus navigiert, ist die Benutzererfahrung wahrscheinlich angenehmer, wenn die Inhalte schnell und reibungslos angezeigt werden.
-
KURZE ZUSAMMENFASSUNG
-
Die Offenbarung betrifft im Allgemeinen die Steuerung des Zeitablaufs von Aufgaben, die in Frames, welche die Ansichten der geographischen Umgebungsinformationen repräsentieren, auszuführen sind. Ein exemplarisches Verfahren für die Steuerung des Zeitablaufs von Aufgaben in Frames, welche die Ansichten eines geographischen Informationsumfelds repräsentieren, das eine restliche Frameperiode in einem Frame bestimmt, welcher eine Ansicht der geographischen Umgebungsinformationen repräsentiert. Die restliche Frameperiode ist ein Zeitraum nachdem ein Satz an feststehenden Aufgaben im Frame und an einer Framegrenze des Frames ausgeführt worden sind. Das exemplarische Verfahren beinhaltet auch das Identifizieren einer dynamischen Aufgabe in einer Zeitablaufsteuerungswarteschlange. Die dynamische Aufgabe verfügt über einen nicht-bevorrechtigten Abschnitt, der sich zwischen dem Beginn der Aufgabe und einem Bevorrechtigungspunkt der Aufgabe befindet. Das exemplarische Verfahren beinhaltet ferner das Bestimmen einer geschätzten Ausführungszeit für das Ausführen der Aufgabe. Das exemplarische Verfahren beinhaltet auch den Zeitpunkt, an dem die geschätzte Ausführungszeit nicht größer als die restliche Frameperiode ist, wobei der nicht-bevorrechtigte Abschnitt der Aufgabe im Frame ausgeführt wird. Das exemplarische Verfahren beinhaltet ferner den Zeitpunkt, an dem die geschätzte Ausführungszeit größer als die restliche Frameperiode ist, wobei das Ausführen der Aufgabe im Frame verschoben wird.
-
Andere Ausführungsformen dieser Aspekte beinhalten entsprechende Systeme, Vorrichtungen und Computerprogrammprodukte, die ausgebildet sind, um die Aktionen dieser Verfahren, die auf Computerspeichereinrichtungen codiert sind, auszuführen.
-
Weitere Merkmale und Vorteile sowohl der hierin beschriebenen Ausführungsformen als auch der Struktur und des Betriebs verschiedener Ausführungsformen werden im Folgenden auf ausführliche Art und Weise und mit Bezugnahme auf die beiliegenden Zeichnungen beschrieben. Es wird darauf hingewiesen, dass die im Folgenden beschriebenen Ausführungsformen nicht auf die hierin beschriebenen spezifischen Ausführungsformen beschränkt sind. Derartige Ausführungsformen werden hier nur zu Illustrationszwecken dargelegt. Dem Fachmann des relevanten Gebiets werden zusätzliche Ausführungsformen auf der Basis der hier enthaltenen Lehren ersichtlich werden.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN/FIGUREN
-
Ausführungsbeispiele werden mit Bezugnahme auf die begleitenden Zeichnungen beschrieben. Die begleitenden Zeichnungen, die hierin beinhaltet sind, und die einen Teil der Spezifikation bilden, veranschaulichen die Ausführungsformen und dienen zusammen mit der Beschreibung weiterhin dazu, die Prinzipien der Ausführungsformen zu erläutern, und ermöglichen es einem einschlägigen Fachmann, die Ausführungsformen auszuführen und zu verwenden. In den Zeichnungen können gleiche Bezugsnummern identische oder funktionell ähnliche Elemente angeben. Die Zeichnung, in der ein Element zuerst erscheint, wird im Allgemeinen durch die am weitesten links gelegene Stelle der entsprechenden Bezugszahl angegeben.
-
1 stellt ein Diagramm gemäß einer Ausführungsform dar, das eine dynamische Aufgabe veranschaulicht, die über explizite Bevorrechtigungspunkte verfügt.
-
2 stellt ein Diagramm gemäß einer Ausführungsform dar, das eine Zeitablaufsteuerungseinrichtung darstellt, die eine dynamische Aufgabe in zwei unterschiedlichen Frames ausführt.
-
3 stellt ein Diagramm gemäß einer Ausführungsform dar, das feststehende und dynamische Aufgaben veranschaulicht, die in Frames ausgeführt werden, welche eine Ansicht in einem geographischen Informationsumfeld repräsentierten.
-
4 stellt ein exemplarisches Architekturdiagramm eines exemplarischen Clients eines GIS dar.
-
5 stellt ein Flussdiagramm eines exemplarischen Verfahrens für die Zeitablaufsteuerung und das Ausführen von Aufgaben in Frames gemäß einer Ausführungsform dar, welche Ansichten in einem geographischen Informationsumfeld repräsentierten.
-
6 stellt einen exemplarischen Code für eine Zeitablaufsteuerungsschnittstelle dar.
-
7 stellt eine Teilausführung eines Histogramms für eine Aufgabe ohne Bevorrechtigungspunkte gemäß der Ausführungsform dar.
-
8 stellt eine wahrgenommene Antwort eines Histogramms gemäß einer Ausführungsform dar.
-
9 stellt eine Tabelle einer Technik gemäß einer Ausführungsform dar, die verwendet wird, um die Ausführungszeit von Aufgaben abzuschätzen.
-
10 stellt einen Graphen gemäß einer Ausführungsform dar, der den Tradeoff zwischen den verpassten feststehenden Terminen und den durchschnittlichen Antwortzeiten für unterschiedliche zeitbezogene Prädiktoren veranschaulicht.
-
DETAILLIERTE BESCHREIBUNG
-
I. Übersicht
-
II. In Frames durchgeführte Aufgaben
-
- A. Bevorrechtigungspunkte in einer Aufgabe
- B. Zeitablaufsteuerungsaufgaben
- C. Threads
-
III. Frames, die eine Ansicht in einem geographischen Informationsumfeld repräsentieren
-
- A. Ausführung feststehender Tasks
- B. Ausführung dynamischer Tasks
- 1. Einzelne aktive sporadische Tasks und aperiodische Softtasks in Echtzeit
- 2. Aktualisierung einer Ansicht eines geographischen Informationsumfelds
- C. Vertikale Synchronisierung
-
IV. Exemplarische Systemarchitektur
-
- A. Zeitablaufsteuerungssystem
- 1. Die geschätzte Ausführungszeit ist nicht größer als die restliche Frameperiode
- 2. Die geschätzte Ausführungszeit ist größer als die restliche Frameperiode
- B. Die Zeitablaufsteuerung von Tasks in einem geographischen Informationsumfeld
-
V. Exemplarisches Verfahren für die Steuerung des Zeitablaufs von Aufgaben in Frames, die Ansichten eines geographischen Informationsumfelds repräsentieren
-
VI. Zeitablaufsteuerung
-
- A. Zeitablaufsteuerungswarteschlange
- B. Exemplarische Zeitablaufsteuerungsschnittstelle
- C. Geschätzte Ausführungszeit
-
VII. Schlussfolgerung
-
I. Übersicht
-
Die Offenbarung betrifft im Allgemeinen die Zeitablaufsteuerung und das Ausführen von Aufgaben in Frames auf Basis eines Zeitablaufsteuerungsalgorithmus.
-
Ein an einer Anzeigevorrichtung gerendertes Bild wird als Frame bezeichnet. Ein Frame kann eine Ansicht eines geographischen Informationsumfelds repräsentieren. Eine Anzahl an feststehenden und dynamischen Aufgaben können im Frame innerhalb der Frameperiode des Frames ausgeführt werden. Eine Frameperiode beinhaltet einen Zeitraum zwischen einem Beginn des Frames und einer Framegrenze des Frames. Die Framegrenze repräsentiert ein Ende des Frames. Wenn eine Aufgabe eine Framegrenze ausführt und darüber hinausgeht, schneidet das Rendering-Verfahren den Frame ab und der Benutzer sieht gewissermaßen, wie derselbe Frame zweimal wiedergegeben wird. Dementsprechend „stottert” der Frame und führt infolgedessen zu einer weniger angenehmen Benutzererfahrung.
-
Verfahren, Systeme und Computerprogrammprodukte werden für die Steuerung des Zeitablaufs von Aufgaben in Frame bereitgestellt, die Ansichten eines geographischen Informationsumfelds repräsentieren. Diese Offenbarung beschreibt die Zeitablaufsteuerung von Algorithmen, die die Anzahl von an der Framegrenze vorbeiziehenden Aufgaben, reduzieren können, um somit auch das Stottern des Frames reduzieren zu können. Sofern es wahrscheinlich ist, dass eine Aufgabe an den Frame Grenze vorbeizieht, kann das Ausführen der Aufgabe auf einen im Anschluss daran folgenden Frame verschoben werden. Aspekte können für geographische Information-Clients, die, wie etwa mobile Geräte, über begrenzte Rechenkapazitäten verfügen, von Vorteil sein.
-
In der folgenden ausführlichen Beschreibung ist durch Bezugnahmen auf „eine Ausführungsform”, „eine beispielhafte Ausführungsform”, usw. angegeben, dass die beschriebene Ausführungsform ein bestimmtes Merkmal, einen bestimmten Aufbau oder eine bestimmte Eigenschaft umfassen kann, wobei aber nicht jede Ausführungsform notwendigerweise das bestimmte Merkmal, den bestimmten Aufbau oder die bestimmte Eigenschaft haben muss. Außerdem beziehen sich solche Ausdrücke nicht unbedingt auf dieselbe Ausführungsform. Wenn des Weiteren ein besonderes Merkmal, ein besonderer Aufbau oder eine besondere Eigenschaft in Zusammenhang mit einer Ausführungsform beschrieben wird, wird zugrunde gelegt, dass es innerhalb des Wissens eines Fachmanns liegt, ein solches Merkmal, einen solchen Aufbau oder eine solche Eigenschaft in Verbindung mit anderen Ausführungsformen zu erwirken, ob sie nun explizit beschrieben sind oder auch nicht.
-
II. In Frames durchgeführte Aufgaben
-
Ein an einer Anzeigevorrichtung gerendertes Bild wird als Frame bezeichnet. Das Rendering kann in Frameperioden gleicher Größe unterteilt werden. Eine Frameperiode kann von Faktoren wie etwa dem Betreiben der Grafikhardware und der Anzeigevorrichtungen abhängig sein. Ein vertikales Synchronisierungsereignis findet statt, wenn die Anzeigevorrichtung Daten von einem Framepuffer abliest. Dieses Ablesen ist auf die Aktualisierungsrate der Anzeigevorrichtung abgestimmt. Falls die Aktualisierungsrate einer Anzeigevorrichtung beispielsweise auf 60 Hz eingestellt ist, verfügen die Frameperioden für die Frame über eine Länge von 16,67 ms.
-
Es ergibt sich keinen Vorteil aus einem Rendering, das schneller als die Aktualisierungsrate ist. Ein Rendering, das langsamer als die Aktualisierungsrate ist, kann jedoch durch das erneute Zeichnen des vorhergehenden Frames Artefakte einführen, und somit ein merkliches Framestottern erzeugen. Zeitablaufsteuerungsmechanismen in Echtzeit können verwendet werden, um das Framestottern zu reduzieren.
-
A. Bevorrechtigungspunkte in einer Aufgabe
-
Ein einziger Frame, der eine Ansicht eines geographischen Informationsumfelds repräsentiert, wird durch das Ausführen einer Anzahl von Aufgaben im Frame erstellt. Aufgaben können in einem Benutzer-Level Programm vollständig aufgeführt sein. In einem Benutzer-Level-Programm können Kernel-Scheduling-Primitive unzugänglich sein und eine Aufgabe kann nicht nach Belieben gestoppt und gewechselt werden, um eine andere Aufgabe auszuführen. Um diesem Problem entgegenzuwirken können Bevorrechtigungspunkte in Aufgaben mit eingebaut werden, was ein vermindertes Framestottern zur Folge hat.
-
Ferner kann eine moderne Grafikanwendung auf mehreren Plattformen, Betriebssystemen und Systemen von beispielsweise Desktopcomputern bis hin zu Smartphones laufen. Aufgrund dieser Diversität kann es schwierig sein, eine Ausführungszeit für das Ausführen einer Aufgabe abzuschätzen. So können unterschiedliche Systeme beispielsweise über unterschiedliche Cache- und Prozessorgeschwindigkeiten verfügen. Demgemäß sind viele Offline-Analysen der Ausführungszeit von Aufgaben als unpraktisch anzusehen. Um das Gefühl einer fließenden Bewegung durch ein dreidimensionales Umfeld aufrechtzuerhalten, kann die Anwendung darüber hinaus mit einer Aktualisierungsrate der Anzeigevorrichtung (z. B. 60 Hz) rendern.
-
Eine Zeitablaufsteuerungseinrichtung steuert den Zeitablauf von auszuführenden Aufgaben und führt Aufgaben in einem Frame aus. Eine Aufgabe kann mindestens einen Bevorrechtigungspunkt beinhalten. Ein Bevorrechtigungspunkt einer Aufgabe ist ein Punkt, während der Ausführung, bei dem eine Aufgabe sicher gestoppt werden kann und die Steuerung auf sichere Weise zurück an die Zeitablaufsteuerungseinrichtung zurückgegeben werden kann. In einer Ausführungsform ruft eine Aufgabe die Zeitablaufsteuerungseinrichtung auf wenn der Bevorrechtigungspunkt erreicht ist. Wenn der Bevorrechtigungspunkt erreicht ist, kann die Aufgabe beispielsweise einen Anruf an die Zeitablaufsteuerungseinrichtung machen, um zu ermitteln, ob sie mit der Ausführung fortfahren soll. Die Zeitablaufsteuerungseinrichtung kann ermitteln, ob die Aufgabe im Frame weiterhin ausgeführt werden soll, oder ob das Ausführen der Aufgabe im Frame auf Basis einer geschätzten Ausführungszeit für das Ausführen der Aufgabe verschoben werden soll.
-
In einer Ausführungsform weiß die Zeitablaufsteuerungseinrichtung im Voraus wann Bevorrechtigungspunkte in der Aufgabe erscheinen. In einer anderen Ausführungsform weiß die Zeitablaufsteuerungseinrichtung nicht im Voraus wann Bevorrechtigungspunkte in der Aufgabe erscheinen.
-
1 stellt ein Diagramm gemäß einer Ausführungsform dar, das eine dynamische Aufgabe 100 veranschaulicht, die über explizite Bevorrechtigungspunkte 105, 110, 115 und 120 verfügt. Aufgabe 100 kann auf Basis ihrer Bevorrechtigungspunkte in nicht bevorrechtigte Abschnitte unterteilt werden. Eine Aufgabe enthält einen anfänglichen nicht-bevorrechtigten Abschnitt, null oder mehrere nicht-bevorrechtigte Abschnitte an post-bevorrechtigten Punkten, und einen längsten nicht-bevorrechtigten Abschnitt an einem post-bevorrechtigten Punkt.
-
Eine Aufgabe kann über zwei nicht-bevorrechtigte Abschnittstypen verfügen. Bei einem ersten nicht bevorrechtigten Abschnittstyp kann es sich um einen anfänglichen nicht bevorrechtigten Abschnitt handeln, der sich zwischen einem Aufgabenstart und seinem ersten Bevorrechtigungspunkt befindet. Aufgabe 100 verfügt beispielsweise über einen anfänglichen nicht bevorrechtigten Abschnitt 130, der sich zwischen einem Aufgabenstart 100 Bevorrechtigungspunkt 105 befindet.
-
Bei einem zweiten nicht-bevorrechtigten Abschnittstyp kann es sich um einen nicht-bevorrechtigten Abschnitt an einem post-bevorrechtigten Punkt handeln. Die nicht-bevorrechtigten Abschnitte an post-bevorrechtigten Punkten betragen Null oder mehr an nicht-bevorrechtigten Abschnitten nach dem anfänglichen nicht-bevorrechtigten Abschnitt. Diese nicht-bevorrechtigten Abschnitte an post-bevorrechtigten Punkten können sich zwischen zwei Bevorrechtigungspunkten und der Aufgabe oder zwischen einem Bevorrechtigungspunkt der Aufgabe und einem Ende der Aufgabe befinden. Aufgabe 100 verfügt beispielsweise über nicht-bevorrechtigte Abschnitte 135, 140, 145 und 150 an post-bevorrechtigten Punkten. Ein post-bevorrechtigtes Punktintervall 155 beinhaltet beispielsweise die nicht-bevorrechtigten Abschnitte 135, 140, 145 und 150 an post-bevorrechtigten Punkten. Die nicht-bevorrechtigten Abschnitte 135, 140, 145 an post-bevorrechtigten Punkten befinden sich je zwischen zwei Bevorrechtigungspunkten der Aufgabe 100, und der nicht-bevorrechtigte Abschnitt 150 an post-bevorrechtigten Punkten befindet sich zwischen einem Bevorrechtigungspunkt der Aufgabe 100 und einem Ende der Aufgabe 100.
-
Innerhalb des Satzes an nicht-bevorrechtigten Abschnitten an post-bevorrechtigten Punkten einer Aufgabe kann der längste Abschnitt (oder ein beliebiger längster sofern sie gleich lang sind) als der längste nicht-bevorrechtigte Abschnitt an post-bevorrechtigten Punkten bezeichnet werden. Nicht-bevorrechtigter Abschnitt 145 an post-bevorrechtigten Punkten ist der längste nicht-bevorrechtigte Abschnitt an post-bevorrechtigten Punkten in Aufgabe 100.
-
Das Ausführen von Aufgabe 100 kann an den Bevorrechtigungspunkten 105, 110, 115, und 120 sicher gestoppt werden und später am Punkt, an dem Aufgabe 100 gestoppt wurde, wiederaufgenommen werden. In einem Beispiel führt eine Zeitablaufsteuerungseinrichtung Aufgabe 100 aus, infolgedessen der anfängliche nicht bevorrechtigte Abschnitt 130 aus Aufgabe 100 ausgeführt wird. Am Bevorrechtigungspunkt 105 stoppt Aufgabe 100 die Ausführung und speichert ihren Zustand. Aufgabe 100 ruft die Zeitablaufsteuerungseinrichtung an, um zu ermitteln, ob Aufgabe 100 mit der Ausführung fortfahren sollte. Die Zeitablaufsteuerungseinrichtung ermittelt, ob das Ausführen von Aufgabe 100 fortgeführt werden sollte oder das Ausführen von Aufgabe 100 am Bevorrechtigungspunkt 105 gestoppt werden sollte. In 1 fährt die Zeitablaufsteuerungseinrichtung mit dem Ausführen von Aufgabe 100 fort, infolgedessen das Ausführen von Aufgabe 100 von Bevorrechtigungspunkt 105 aus erneut aufgenommen wird. Dementsprechend wird der nicht-bevorrechtigte Abschnitt 135 an post-bevorrechtigten Punkten ausgeführt.
-
Am Bevorrechtigungspunkt 110 stoppt Aufgabe 100 die Ausführung und speichert ihren Zustand ab. Aufgabe 100 ruft die Zeitablaufsteuerungseinrichtung an, um zu ermitteln, ob Aufgabe 100 mit der Ausführung fortfahren sollte. Die Zeitablaufsteuerungseinrichtung ermittelt, ob das Ausführen von Aufgabe 100 fortgeführt werden sollte oder das Ausführen von Aufgabe 100 am Bevorrechtigungspunkt 110 gestoppt werden sollte. In 1 stoppt die Zeitablaufsteuerungseinrichtung das Ausführen von Aufgabe 100 während dem bevorrechtigten Intervall. Während diesem Intervall kann die Zeitablaufsteuerungseinrichtung Null oder mehr Aufgaben ausführen. Zu einem späteren Zeitpunkt nimmt die Zeitablaufsteuerungseinrichtung das Ausführen der Aufgabe 100 erneut auf, was das Ausführen des nicht-bevorrechtigten Abschnitts 140 an post-bevorrechtigten Punkten zur Folge hat. Dieses Verfahren kann fortgeführt werden bis Aufgabe 100 die Ausführung beendet.
-
B. Zeitablaufsteuerungsaufgaben
-
Eine Aufgabe wird freigesetzt, wenn sie in eine Zeitablaufsteuerungswarteschlange gesetzt wird, um ausgeführt zu werden. Die Zeitablaufsteuerungseinrichtung kann potentielle auszuführende Aufgaben in der Zeitablaufsteuerungswarteschlange identifizieren. Die Zeitablaufsteuerungseinrichtung kann bestimmte Aufgaben, die in einem Frame ausgeführt werden sollen, je nach Faktoren, wie etwa einer restlichen Frameperiode, in der dynamische Aufgaben auszuführen sind oder einer geschätzten Ausführungszeit zum Ausführen der Aufgabe, auswählen.
-
Eine Aufgabe kann mit einem Task in Verbindung gebracht werden. Ein Task kann über einen Termin verfügen. Ein weicher Termin ist ein Termin, der verpasst werden kann. Sofern jedoch verpasst wird, sollte die Verspätung so gering wie möglich ausfallen. Das zu Ende führen eine Aufgabe nach Ablauf des weichen Termins ist ebenfalls von Bedeutung. Ein feststehender Termin ist ein Termin, nach dem eine Aufgabe nicht zu Ende geführt werden sollte, sondern stattdessen entfernt werden sollte. Das verpassen eines feststehenden Termins ist kostspielig aber nicht katastrophal.
-
In einer Ausführungsform verfügen alle Aufgaben, die innerhalb eines einzelnen Frames freigesetzt werden über denselben Termin an der Framegrenze. Die Zeitablaufsteuerungseinrichtung kann versuchen einen Task vor der vertikalen Synchronisationszeit zu beenden anstatt den vertikalen Synchronisationstask aufgrund des feststehenden Termins dieses Tasks neben anderen Arbeiten einzuplanen.
-
In einer Ausführungsform führt die Zeitablaufsteuerungseinrichtung eine Aufgabe nicht aus, bei der die Zeitablaufsteuerungseinrichtung davon ausgeht, dass diese zu einem verpassten Termin führt und stoppt das Ausführen einer Aufgabe, falls der Termin tatsächlich verpasst wird. Das Ausführen eine Aufgabe in einem Frame kann die Framegrenze des Frames übersteigen, infolgedessen es zu einem Framestottern kommen kann. Falls ermittelt wird, dass das Ausführen einer Aufgabe, dazu führt, dass die Framegrenze des Frames überschritten wird, kann die Zeitablaufsteuerungseinrichtung das Ausführen der Aufgabe im Frame stoppen. Die Zeitablaufsteuerungseinrichtung kann das Ausführen der Aufgabe in einem nachfolgenden Frame einplanen und kann die Aufgabe im nachfolgenden Frame ausführen.
-
2 stellt ein Diagramm 200 gemäß einer Ausführungsform dar, das eine Zeitablaufsteuerungseinrichtung 205 darstellt, die eine dynamische Aufgabe 210 in zwei unterschiedlichen Frame ausführt. Aufgabe 210 verfügt über die Bevorrechtigungspunkte 215, 220 und 225. Zeitablaufsteuerungseinrichtung 205 bestimmt, ob Aufgabe 210 in Frame 1 ausgeführt werden soll, oder ob das Ausführen von Aufgabe 210 in Frame 1 auf einen späteren Zeitpunkt angesetzt werden soll. Zeitablaufsteuerungseinrichtung 205 kann die Online-Prognose verwenden, um zu ermitteln, ob Aufgabe 210 in Frame 1 ausgeführt werden soll. In einer Ausführungsform identifiziert Zeitablaufsteuerungseinrichtung 205 Aufgabe 210 in einer Zeitablaufsteuerungswarteschlange und bestimmt eine geschätzte Ausführungszeit für das Ausführen von Aufgabe 210.
-
Die Zeitablaufsteuerungseinrichtung 205 führt Aufgabe 210 in den Frame 1 ein. Wenn Aufgabe 1 ausgeführt wird, wird der nicht-bevorrechtigte Abschnitt 235 von Aufgabe 210 auf effektive Weise ausgeführt. Bei Bevorrechtigungspunkt 215 ruft Aufgabe 210 die Zeitablaufsteuerungseinrichtung 205 an, um zu ermitteln, ob Aufgabe 210 mit der Ausführung fortfahren sollte. Zeitablaufsteuerungseinrichtung 205 bestimmt eine geschätzte Ausführungszeit für das Ausführen von Aufgabe 210.
-
Falls Aufgabe 210 Prognosen zufolge vor der vertikalen Synchronisierung beendet werden soll, ermittelt Zeitablaufsteuerungseinrichtung 205, dass das Ausführen von Aufgabe 210 in Frame 1 fortgesetzt werden soll. Dementsprechend kann Zeitablaufsteuerungseinrichtung 205 Aufgabe 210 darüber informieren, dass sie die Ausführung fortsetzen soll. Falls Aufgabe 210 jedoch Prognosen zufolge nicht vor der vertikalen Synchronisierung beendet werden soll, ermittelt Zeitablaufsteuerungseinrichtung 205, dass das Ausführen von Aufgabe 210 in Frame 1 nicht fortgesetzt werden soll. Dementsprechend kann Zeitablaufsteuerungseinrichtung 205 Aufgabe 210 darüber informieren, dass sie die Ausführung beenden soll. Zeitablaufsteuerungseinrichtung 205 kann die Ausführung von Aufgabe 210 bis zu einer sich daran anschließenden Frameperiode (z. B. die nächste Frameperiode) verschieben.
-
In 2 bestimmt die Zeitablaufsteuerungseinrichtung 205, dass Aufgabe 210 mit der Ausführung fortfahren sollte. Dementsprechend führt die Zeitablaufsteuerungseinrichtung 205 den nicht-bevorrechtigten Abschnitt 240 von Aufgabe 210 in Frame 1 aus. Bei Bevorrechtigungspunkt 220 ruft Aufgabe 210 die Zeitablaufsteuerungseinrichtung 205 an, um zu ermitteln, ob Aufgabe 210 mit der Ausführung fortfahren sollte.
-
Zeitablaufsteuerungseinrichtung 205 bestimmt, ob Aufgabe 210 mit dem Ausführen fortfahren sollte. Zeitablaufsteuerungseinrichtung 205 sollte eine geschätzte Ausführungszeit für das Ausführen von Aufgabe 210 ermitteln, und ermitteln, dass, falls Aufgabe 210 in Frame 1 ausführt, Aufgabe 210 die Framegrenze passieren wird und ein Framestottern zur Folge haben wird. Um zu verhindern, dass der vertikale Synchronisierungstermin verpasst wird, kann die Zeitablaufsteuerungseinrichtung 205 bestimmen, dass Aufgabe 210 das Ausführen beenden sollte und die Ausführung von Aufgabe 210 in Frame 1 dementsprechend verschoben werden sollte. Zeitablaufsteuerungseinrichtung 205 informiert Aufgabe 210 darüber, dass sie die Ausführung beenden soll. Dementsprechend speichert Aufgabe 210 ihren Zustand und gibt der Zeitablaufsteuerungseinrichtung 205 die Steuerung zurück. Der verschobene nicht-bevorrechtigte Abschnitt von Aufgabe 210 wird im sich daran anschließenden Frame 2 ausgeführt.
-
Während eines Zeitraums zwischen dem Bevorrechtigungspunkt 220 und einer Framegrenze 250 werden keine Aufgaben ausgeführt. Framegrenze 250 kann als vertikalen Synchronisierungstermin angesehen werden. Zeitablaufsteuerungseinrichtung 205 nimmt das Ausführen von Aufgabe 210 in Frame 2 erneut auf, und Aufgabe 210 nimmt das Ausführen dort wieder auf, wo sie zuvor aufgehört hatte, bevor Aufgabe 210 verschoben wurde. Dementsprechend führt Zeitablaufsteuerungseinrichtung 205 Aufgabe 210 in Frame 2 beginnend am nicht-bevorrechtigten Abschnitt 245 aus.
-
C. Threads
-
Eine geographische Anwendung enthält Verfahren, die mehrere Threads beinhalten können, die je über ihren eigenen Kontext und Ausführungspfad verfügen. Diese mehreren Threads können Teile desselben Verfahrens sein und einen gemeinsamen Speicher teilen. Ein erster vom Betriebssystem gestarteter Thread, auf dem die Hauptfunktionen laufen, ist der Hauptthread. Ein Arbeitsthread ist ein Thread, der den Hauptthread nicht beinhaltet. In einigen Systemen kann jeder direkte Zugang zur Grafikhardware auf dem Hauptthread stattfinden. Dies hängt mit den Vorgaben der Grafiktreiber auf den Systemen zusammenhängen, die von der geographischen Anwendung unterstützt werden.
-
In einer Ausführungsform wird jede Verarbeitung lediglich auf dem Hauptthread ausgeführt. In einer anderen Ausführungsform können Verfahren entweder auf dem Hauptthread oder auf Arbeitsthreads durchgeführt werden. In einer Ausführungsform können verschiedene Threads gleichzeitig auf unterschiedlichen Prozessoren ausgeführt werden.
-
III. Frames, die eine Ansicht in einem geographischen Informationsumfeld repräsentieren
-
3 stellt ein Diagramm 300 gemäß einer Ausführungsform dar, das feststehende und dynamische Aufgaben veranschaulicht, die in Frame ausgeführt werden, welche eine Ansicht in einem geographischen Informationsumfeld repräsentierten.
-
Jeder Frame verfügt über eine Frameperiode. Eine Frameperiode ist der Zeitraum zwischen einem Beginn eines Frames und einer Framegrenze. Ein Frame verfügt über drei Ausführungsstadien. In einer Ausführungsform beinhaltet ein erstes Stadium das Ausführen feststehender Tasks, ein zweites Stadium beinhaltet das Ausführen dynamischer Tasks, und ein drittes Stadium beinhaltet das Auftreten eines vertikalen Synchronisierungsereignisses.
-
A. Ausführung feststehender Tasks
-
In einem ersten Stadium werden feststehende Tasks ausgeführt. Feststehende Tasks werden bei jedem anderen Frame durchgeführt und können für einen bestimmten Zeitraum durchgeführt werden. In 3 laufen die feststehenden Tasks zu Beginn der Frame 1, 25 und 26. Die feststehenden Tasks können in einer bestimmten Reihenfolge ausgeführt werden. Wenn die feststehenden Tasks einen erhöhten Verarbeitungsaufwand in Anspruch nehmen, können mehrere Berechnungen durchgeführt werden und die Dauer, die verwendet wird, um feststehende Tasks auszuführen, ist eine Zeit nicht zur Verfügung steht (dargestellt als dicke schwarze Balken). Beispiele feststehender Tasks beinhalten das Durchqueren von Datenstrukturen um Aktualisierungen und Culling-Knoten durchzuführen, um Daten auf Grafikkarten hochzuladen und um Eingabeereignisse handzuhaben.
-
B. Ausführung dynamischer Tasks
-
In einem zweiten Stadium werden dynamische Tasks ausgeführt. Sobald die feststehenden Tasks zu Ende geführt wurden, kann der Rest der Frameperiode dynamischen Tasks gewidmet werden, die für eine Ausführung durch die Zeitablaufsteuerungseinrichtung angesetzt werden können. Die restliche Frameperiode im Frame kann ermittelt werden und die dynamischen Tasks können in der restlichen Frameperiode ausgeführt werden. Die restliche Frameperiode ist ein Zeitraum nach dem feststehende Aufgaben im Frame und an einer Framegrenze des Frames ausgeführt worden sind.
-
Die Ausführungszeiten feststehender und dynamischer Aufgaben können variieren. Eine Zeitdauer, die beispielsweise nach dem Ausführen der feststehenden Tasks vergeht, kann zwischen den Frameperioden extrem unterschiedlich ausfallen. Dementsprechend kann die Zeitdauer, in der dynamische Aufgaben in einer restlichen Frameperiode ausgeführt werden, von Frame zu Frame sehr stark variieren. Ein erster Frame kam beispielsweise 10 ms übrighaben, nachdem die feststehenden Aufgaben ausgeführt werden und ein zweiter Frame kann beispielsweise 2 ms übrighaben, nachdem die feststehenden Aufgaben ausgeführt werden. Wenn der Zeitablaufsteuerungseinrichtung die Steuerung überlassen wird, kann die Zeitablaufsteuerungseinrichtung durch eine Zeitablaufsteuerungswarteschlange laufen und Aufgaben identifizieren, die Prognosen nach, vor der Framegrenze ausgeführt und beendet werden sollen. Falls die Zeitablaufsteuerungseinrichtung eine falsche Prognose abgibt, wird der Frametermin und der Frame verpasst.
-
1. Einzelne aktive sporadische Tasks und aperiodische Softtasks in Echtzeit
-
Unter erneuter Bezugnahme auf 3 werden eine Sichtbarkeitsberechnung, Fetch 1, Fetch 2, und ein dynamischer Straßenzeichnungstask dargestellt. Die Sichtbarkeitsberechnungen und Straßenzeichnungstasks sind einzelne aktive sporadische Tasks und Fetch 1 und Fetch 2 sind aperiodische Softtasks in Echtzeit.
-
Dynamische Tasks können in zwei unterschiedliche Typen unterteilt werden. Bei der ersten Art dynamischer Tasks handelt es sich um einzelne aktive sporadische Tasks und bei der zweiten Art dynamischer Tasks handelt es sich um aperiodische Softtasks in Echtzeit. Bei einem einzelnen aktiven sporadischen Task wird eine Aufgabe in jedem Frame freigesetzt (z. B. vertikale Synchronisationszeit), es sei denn eine andere Aufgabe der Task, die jedoch noch nicht zu Ende geführt worden ist, wurde in einem vorhergehenden Frame freigegeben. Ein einzelner aktiver sporadischer Task gibt nach Möglichkeit eine Aufgabe einmal pro Frame frei. Das Freisetzen einer einzigen Aufgabe, die jedoch noch nicht zu Ende geführt worden ist, ist eine einfache Form der Anpassung, welche die Systemladung einschränkt. Es gibt auch komplexere attraktive Schemas, die einem Durchschnittsfachmann auf dem jeweiligen Fachgebiet normalerweise bekannt sind. Ein weicher Termin jeder Aufgabe stellt gemäß der Definition die vertikale Synchronisationszeit dar. In einer Ausführungsform verfügt jede Aufgabe über eine wahrgenommene Antwortzeit des einen Frames und eine Aufgabe wird bei jeder vertikalen Synchronisationszeit freigesetzt. Ein Beispiel eines einzelnen sporadischen Tasks ist ein Task, welcher die Bilder auf dem Bildschirm erneut zeichnet.
-
Im Gegensatz zu einem einzelnen aktiven sporadischen Task, die eine Aufgabe pro Frame freisetzen kann werden bei einer aperiodischen Softtask in Echtzeit Aufgaben als Antwort auf Eingabe-/Ausgabeereignisse, eine etwa dem Empfang neuer Bilder über das Netzwerk, freigesetzt. Da große Mengen an Daten gleichzeitig angefordert werden können, ist das Netzwerkverhalten in gewisser Weise unvorhersehbar. Die Freisetzungszeit derartiger Tasks unterliegt möglicherweise keinerlei Einschränkungen. Neue Daten geben normalerweise an, dass die Bildschirmansicht nicht mehr aktuell ist. Jede Aufgabe kann nach ihrer Freisetzung demnach auch über einen weichen Termin an der nächsten vertikalen Synchronisationszeit verfügen. Diese Aufgaben können als aperiodische Softtasks in Echtzeit ohne Verweis auf die Tasks, modelliert sein. Eine aperiodische Softtask in Echtzeit kann abgebrochen werden, falls die Anwendung ermittelt, dass sie nicht länger relevant ist. Eine Netzwerkantwort mit Einzelheiten über ein dreidimensionales Gebäude, das nicht mehr gesehen werden kann, muss nicht verarbeitet werden.
-
Ferner kann der vertikale Synchronisierungsbetrieb als periodische Task mit einer Ausführungszeit von ε (für ein beliebig kleines ε) und einer Frameperiode von 16,67 ms mit einem feststehenden Termin an der vertikalen Synchronisierungszeit modelliert werden und ε Einheiten zuvor freigesetzt werden. Es könnte wünschenswert sein sicherzustellen, dass keine andere Aufgabe läuft, wenn der Termin ansteht.
-
2. Aktualisierung einer Ansicht eines geographischen Informationsumfelds
-
Wie vorstehend beschrieben, aktualisiert ein exemplarischer dynamischer Task eine Ansicht eines geographischen Informationsumfelds. Das Aktualisieren einer Ansicht kann das Ausführen zahlreicher Aufgaben beinhalten. Die Aufgaben treffen in der Regel in Bursts ein. Wenn ein Benutzer beispielsweise den Ansichtsort ändert, werden gleichzeitig zahlreiche Aufgaben zum laden und rendern der neuen Szene geladen. Eine virtuelle Kamera definiert eine Perspektive, mittels der Inhalte der dreidimensionalen Umgebung angesehen werden können. Ein Frame, der die aktualisierte Ansicht repräsentiert, beruht auf einer Position der virtuellen Kamera. Eine Ansicht kann aktualisiert werden, wenn ein Benutzer die virtuelle Kamera bewegt.
-
Ausgehend von der Position der virtuellen Kamera, kann ein Sichtbarkeitsberechnungstask eine Auflistung sichtbarer Regionen erstellen und die Auflistung sichtbarer Regionen mit den bereits bestehenden Regionen vergleichen. In 3 kann eine restliche Frameperiode in Frame 1 ermittelt werden. Die restliche Frameperiode kann ein Zeitraum sein, nachdem der Satz an feststehenden Aufgaben in Frame 1 und an einer Framegrenze des Frames 1 ausgeführt worden sind. Der Sichtbarkeitsberechnungstask beinhaltet zwei Bevorrechtigungspunkte, die verwendet werden können, um zu ermitteln, ob die Sichtbarkeitsberechnungstask die Ausführung in Frame 1 fortführen sollte. Im sich daran anschließenden Frame 25 verpasst der Sichtbarkeitsberechnungstask ihren Termin am Ende des Frame 25. Dementsprechend setzt der Sichtbarkeitsberechnungstask keine neue Aufgabe für Frame 26 frei.
-
Nachdem der Sichtbarkeitsberechnungstask die Ausführungen im Frame 1 beendet hat, kann eine aktualisierte restliche Frameperiode in Frame 1 ermittelt werden. Die aktualisierte restliche Frameperiode kann ein Zeitraum nach dem Ausführen der Sichtbarkeitsberechnungstask in Frame 1 und an einer Framegrenze des Frame 1 sein. Andere dynamische Tasks können in der aktualisierten restlichen Frameperiode ausgeführt werden. In 3 wird beispielsweise nach Abschluss des Sichtbarkeitsberechnungstasks ein Straßenzeichnungstask in Frame 1 durchgeführt.
-
Falls die Regionen derzeit nicht geladen werden, oder über unterschiedliche Auflösungen verfügen wird ein Satz an Fetches in eine Warteschlange gesetzt, um die erforderlichen Regionen anzufordern. Falls die erforderlichen Bildkacheln gegenwärtig nicht geladen werden und die erforderlichen Geländekacheln nicht über die richtige Auflösung verfügen, werden die erforderlichen Bild- und Geländekacheln angefordert und vom Server eingeholt. Wenn der Server auf diese Anforderungen antwortet, werden die erforderlichen Regionen verarbeitet.
-
In 3 können die Fetch 1 und Fetch 2 Aufgaben das Verarbeiten der erforderlichen Regionen beinhalten. Das Verarbeiten dieser Daten könnte das Decodieren von Daten, das Laden der Daten in Datenstrukturen, das Laden der Daten in den Graphikspeicher, das Speichern der Daten in einem Cache und das Aktualisieren der Datenstrukturen beinhalten. Diese neuen Daten können eine Anzahl von anderen Datenstrukturen dazu veranlassen mittels sporadischer Tasks aktualisiert zu werden. Wenn beispielsweise Geländedaten einer höheren auf Loslösung eingeholt werden, können andere Tasks sich selbst aktualisieren. Die Geländedaten höherer Auflösung können die Höhen der Straßensegmente beispielsweise dazu veranlassen, auf der Grundlage der neuen Geländedaten aktualisiert zu werden. Falls die Straßensegmenthöhen nicht aktualisiert werden, erscheinen die Straßensegmente auf dem alten Gelände und verfügen folglich über eine verformte Ansicht. Der Straßenzeichnungstask kann sich als aufwendiger herausstellen, wenn neue Daten verarbeitet worden sind.
-
Im Gegensatz zu der hohen Datenverarbeitung, die stattfindet, wenn eine virtuelle Kamera bewegt wird, stehen alle für das Rendering des Frames erforderlichen Daten bereit wenn eine virtuelle Kamera unbewegt bleibt und es werden keine neuen Daten eingeholt. Dementsprechend kann eine kurze Zeitdauer infolge dieser Aktualisierung vergehen, da keine neue Einholung mehr stattfindet.
-
In den Frame 1, 25 und 26 kann ein Ende jeder Frameperiode im Leerlauf bleiben, um zu verhindern, dass Aufgaben ausgeführt werden, die laut Prognosen den feststehenden vertikalen Synchronisierungstermin verpassen würden.
-
C. Vertikale Synchronisierung
-
In einem dritten Stadium des Frames findet eine vertikale Synchronisierung statt. Wenn eine Aufgabe vor dem Termin der vertikalen Synchronisierung beendet wird, kann das Framestottern verringert werden. Die wahrgenommene Antwortzeit einer Aufgabe ist die Anzahl an vollständigen oder teilweise vollständigen Frameperioden zwischen der Freisetzung einer Aufgabe und der nächsten erfolgreichen vertikalen Synchronisierung nach der Beendigung der Aufgabe. Falls eine Aufgabe zum Beispiel freigesetzt wird und zwischen zwei vertikalen Synchronisierungssignalen beendet wird und die zweite vertikale Synchronisierung erfolgreich verläuft, beträgt die Antwortzeit der Aufgabe eine Frameperiode. Es ist wünschenswert, dass die wahrgenommene Antwortzeit einer Aufgabe so kurz wie möglich ausfällt. Aus der Perspektive eines Benutzers ist die Beendigung einer Aufgabe bis zur nächsten erfolgreichen vertikalen Synchronisierung nicht sichtbar. Falls die Aktualisierungsrate der Anzeigevorrichtung auf 60 Hz eingestellt ist, hat der Benutzer in der Regel den Eindruck, dass die Inhalte schnell und reibungslos angezeigt werden, wenn 60 Frame pro Sekunde auf der Anzeigevorrichtung gerendert werden. Der Frame verfügt über einen vertikalen Synchronisierungstermin von 60 Frame pro Sekunde. Falls dieser länger als 60 Frame pro Sekunde andauert, stottert der Frame und der Benutzer könnte denselben Frame als zweimal gerendert wahrnehmen.
-
Ein sichtbares Stottern wird ist für einen Benutzer auffälliger als eine Verzögerung von einigen Sekunden. Demzufolge wird dem Verhindern einer Auslassung der vertikalen Synchronisierung im Allgemeinen eine höhere Priorität als dem Erreichen einer kurzen wahrgenommenen Antwortzeit eingeräumt.
-
VI. Exemplarische Systemarchitektur
-
4 wird ein exemplarisches Architekturdiagramm eines exemplarischen Clients 400 eines GIS dargestellt. In einer Ausführungsform beinhaltet Client 400 ein Zeitablaufsteuerungssystem 401, ein Benutzerdialogmodul 420, einen lokalen Speicher 430, einen Cache-Knotenmanager 440, ein Renderer-Modul 450, einen Framepuffer 470, und eine Anzeigevorrichtung 480.
-
In einer Ausführungsform können die Komponenten des Client 400 beispielsweise als Software, die auf einer Clientmaschine ausgeführt wird, implementiert werden. Client 400 interagiert mit einem GIS Server (nicht dargestellt), um dem Client 400 Bilder der Erde und sonstige georäumliche Daten zur Verfügung zu stellen, damit diese vom Benutzer gesehen werden können. Gemeinsam bilden die Bilder der Erde und sonstige georäumliche Daten ein dreidimensionales Modell in einer dreidimensionalen Umgebung. In einer Ausführungsform werden Softwareobjekte gemäß Funktionen, die asynchron (z. B. zeitunabhängig) voneinander ausgeführt werden können, gruppiert.
-
A. Zeitablaufsteuerungssystem
-
Zeitablaufsteuerungssystem 401 plant Aufgaben, die ausgeführt werden müssen ein und führt Aufgaben in Frame, die Ansichten eines geographischen Informationsumfelds repräsentieren, aus. Das Zeitablaufsteuerungssystem 401 beinhaltet eine statische Zeitablaufsteuerungseinrichtung 405, eine dynamische Zeitablaufsteuerungseinrichtung 408, einen Prädiktor 410. Die statische Zeitablaufsteuerungseinrichtung 405 kann feststehende Aufgaben ausführen.
-
Die dynamische Zeitablaufsteuerungseinrichtung 408 kann dynamische Aufgaben einplanen und in einer Zeitablaufsteuerungswarteschlange ausführen. Die dynamische Zeitablaufsteuerungseinrichtung 408 kann eine erste restliche Frameperiode in einem Frame, der eine Ansicht eines geographischen Informationsumfelds repräsentiert, ermitteln. Bei der ersten restlichen Frameperiode handelt es sich um einen Zeitraum nach dem feststehende Aufgaben im Frame und an einer Framegrenze des Frames ausgeführt worden sind. Die dynamische Zeitablaufsteuerungseinrichtung 408 kann eine dynamische Aufgabe in einer Zeitablaufsteuerungswarteschlange identifizieren. Die dynamische Aufgabe kann über einen nicht bevorrechtigten Abschnitt, der sich zwischen dem Beginn der Aufgabe und einem ersten Bevorrechtigungspunkt der Aufgabe befindet, verfügen.
-
Prädiktor 410 kann eine erste geschätzte Ausführungszeit für das Ausführen der Aufgabe ermitteln. In einer Ausführungsform kann Prädiktor 410 eine erste geschätzte Ausführungszeit für das Ausführen der Aufgabe ermitteln, basierend zumindest teilweise auf das vergangene Verhalten der Aufgabe, eine geschätzte Ausführungszeit für das Ausführen des anfänglichen nicht-bevorrechtigten Abschnitts der Aufgabe, eine Task-Kennung der Aufgabe, eine Art des nicht-bevorrechtigten Abschnitts der Aufgabe, oder eine Abschnittslänge, die mindestens genauso lang ist wie der nicht-bevorrechtigte Abschnitt der Aufgabe (z. B. eine längste Abschnittslänge eines nicht-bevorrechtigten Abschnitts der Aufgabe).
-
1. Die geschätzte Ausführungszeit ist nicht größer als die restliche Frameperiode
-
Prädiktor 410 könnte eine geschätzte Ausführungszeit an der Laufzeit ermitteln. Wenn die erste geschätzte Ausführungszeit nicht größer als die erste restliche Frameperiode ausfällt, kann die dynamische Zeitablaufsteuerungseinrichtung 408 den nicht-bevorrechtigten Abschnitt der Aufgabe im Frame ausführen. Die dynamische Zeitablaufsteuerungseinsrichtung 408 kann eine zweite restliche Frameperiode im Frame nach dem Ausführen des nicht bevorrechtigten Abschnitts der Aufgabe ermitteln. Die zweite restliche Frameperiode ist ein Zeitraum nach dem Ausführen des nicht-bevorrechtigten Abschnitts der Aufgabe und an der Framegrenze des Frames
-
Die dynamische Zeitablaufsteuerungseinrichtung 408 kann bestimmen, ob die Aufgabe über einen sich daran anschließenden nicht-bevorrechtigten Abschnitt verfügt. Der sich daran anschließende nicht-bevorrechtigte Abschnitt kann sich zwischen dem ersten Bevorrechtigungspunkt der ersten Aufgabe und einem sich daran anschließenden Bevorrechtigungspunkt der ersten Aufgabe oder zwischen dem ersten Bevorrechtigungspunkt der ersten Aufgabe unter einem Ende der ersten Aufgabe befinden.
-
Falls die Aufgabe über einen sich daran anschließenden nicht-bevorrechtigten Abschnitt verfügt, kann der Prädiktor 410 eine zweite geschätzte Ausführungszeit für das Ausführen der ersten Aufgabe ermitteln. Wenn die zweite geschätzte Ausführungszeit nicht größer als die zweite restliche Frameperiode ausfällt, kann die dynamische Zeitablaufsteuerungseinrichtung 408 den sich daran anschließenden nicht-bevorrechtigten Abschnitt der ersten Aufgabe im ersten Frame ausführen. Wenn die zweite geschätzte Ausführungszeit größer als die zweite restliche Frameperiode ausfällt, kann die dynamische Zeitablaufsteuerungseinrichtung 408 das Ausführen der ersten Aufgabe am ersten Bevorrechtigungspunkt verschieben.
-
2. Die geschätzte Ausführungszeit ist größer als die restliche Frameperiode
-
Wenn die erste geschätzte Ausführungszeit nicht größer als die erste restliche Frameperiode ausfällt, kann die dynamische Zeitablaufsteuerungseinrichtung 408 eine zweite dynamische Aufgabe in der Zeitablaufsteuerungswarteschlange für ein potentielles Ausführen identifizieren. Die zweite dynamische Aufgabe verfügt über einen anfänglichen nicht-bevorrechtigten Abschnitt, der sich zwischen dem Beginn der zweiten Aufgabe und einem ersten Bevorrechtigungspunkt der zweiten Aufgabe befindet.
-
Prädiktor 410 kann eine zweite geschätzte Ausführungszeit für das Ausführen des nicht-bevorrechtigten Abschnitts der zweiten Aufgabe ermitteln. Wenn die zweite geschätzte Ausführungszeit nicht größer als die erste restliche Frameperiode ausfällt, kann die dynamische Zeitablaufsteuerungseinrichtung 408 die zweite Aufgabe im ersten Frame ausführen. Wenn die zweite geschätzte Ausführungszeit größer als die erste restliche Frameperiode ausfällt, kann die dynamische Zeitablaufsteuerungseinrichtung 408 das Ausführen der zweiten Aufgabe im ersten Frame verschieben. Die dynamische Zeitablaufsteuerungseinrichtung 408 kann dazu übergehen, eine andere Aufgabe in der Zeitablaufsteuerungswarteschlange für das potentielle Ausführen und das Fortsetzen dieses Verfahrens zu identifizieren.
-
Jedes an der Anzeigevorrichtung 480 gerenderte Bild wird als Frame bezeichnet. Die Daten, die an einen Benutzer gerendert werden sollen, können in einem Framepuffer 470 abgelegt werden. Ein vertikales Synchronisierungsereignis findet statt, wenn die Anzeigevorrichtung 480 Daten von einem Framepuffer 470 abliest. Dieses Ablesen ist auf die Aktualisierungsrate der Anzeigevorrichtung 480 abgestimmt.
-
B. Die Zeitablaufsteuerung von Tasks in einem geographischen Informationsumfeld
-
Das Benutzerdialogmodul 420, der lokale Speicher 430, der Cache-Knotenmanager 440, und das Renderer-Modul 450 sind Tasks, die auszuführende Aufgaben einplanen und Aufgaben in eine Zeitablaufsteuerungswarteschlange hochladen. Das Zeitablaufsteuerungssystem 401 steuert das Ausführen der sich in der Zeitablaufsteuerungswarteschlange befindlichen Aufgaben. Falls Zeit übrigbleibt, nachdem ein fester Satz an Aufgaben ausgeführt worden ist, durchsucht die dynamische Zeitablaufsteuerungseinrichtung 108 die Zeitablaufsteuerungswarteschlange und identifiziert potentielle auszuführende Aufgaben.
-
In einer Ausführungsform geht Client 400 wie folgt vor. Das Benutzerdialogmodul 420 beinhaltet eine grafische Benutzeroberfläche (GUI) 425 und ein Bewegungsmodul 429. Der örtliche Speicher 430 beinhaltet eine Ansichtsspezifikation 435 und eine Quad-Knoten-Baumstruktur 439. Das Benutzerdialogmodul 420 erhält eine Nutzereingabe hinsichtlich des Standortes, den ein Benutzer sehen möchte und baut eine Ansichtsspezifikation 435 durch das Bewegungsmodul 429. Ein Benutzer kann unter Verwendung einer GUI 425 Standortinformationen eingeben. Dies führt beispielsweise zur Generation der Ansichtsspezifikation 435. Die Ansichtsspezifikation 435 definiert das einsehbare Volumen einer virtuellen Kamera innerhalb eines dreidimensionalen Raums, das als das View-Frustum bekannt ist, und die Position und Orientierung des View-Frustum bezogen beispielsweise auf eine dreidimensionale Karte. Die Ansichtsspezifikation 435 befindet sich im lokalen Speicher 430, wo sie vom Renderer-Modul 450 verwendet wird. In einer Ausführungsform verwendet das Renderer-Modul 450 die Ansichtsspezifikation 435, um Daten zur Anzeige wiederzugeben (zu rendern).
-
In einer Ausführungsform erzeugt Cache-Knoten-Manager 440 eine Quad-Knoten-Baumstruktur 439, indem er sie mit Quad-Knoten auf Basis der Ansichtsspezifikation 435 füllt. In einer Ausführungsform identifiziert der Cache-Knoten-Manager 440, welche Cache-Knoten vom Server erforderlich sind, um eine Prüfung zu bestehen und fordert diese Cache-Knoten an. Der Cache-Knoten-Manager 440 beinhaltet eine Abrufliste 445, die eine Liste an Informationen hält, mittels der sich Cache-Knoten identifizieren lassen, die angefordert und von einem GIS Server heruntergeladen werden müssen. Der Cache-Knoten-Manager 440 generiert eine Quad-Knoten-Baumstruktur 439 im lokalen Speicher 430, indem er sie mit Quad-Knoten, die vom GIS Server (den GIS Servern) abgerufen worden sind, füllt.
-
In einer Ausführungsform führt die Zeitablaufsteuerungseinrichtung 405 feststehende und mit diesen Tasks in Verbindung stehende Aufgaben durch. Die Tasks können Aufgaben in eine Zeitablaufsteuerungswarteschlange freisetzen, und die dynamische Zeitablaufsteuerungseinrichtung 408 kann dynamische Aufgaben aus der Zeitablaufsteuerungswarteschlange einplanen und ausführen.
-
V. Exemplarisches Verfahren für die Steuerung des Zeitablaufs von Aufgaben in Frame, die Ansichten eines geographischen Informationsumfelds repräsentieren
-
5 stellt ein Flussdiagramm 500 eines exemplarischen Verfahrens für die Zeitablaufsteuerung und das Ausführen von Aufgaben in Frame gemäß einer Ausführungsform dar, welche Ansichten in einem geographischen Informationsumfeld repräsentierten.
-
In einem Stadium 510 wird eine restliche Frameperiode in einem Frame, die eine Ansicht eines geographischen Informationsumfeldes repräsentiert, bestimmt, wobei die restliche Frameperiode einen Zeitraum nach dem Ausführen eines Satzes an feststehenden Aufgaben im Frame und an einer Framegrenze des Frames, darstellt. Die dynamische Zeitablaufsteuerungseinrichtung 408 kann beispielsweise eine restliche Frameperiode in einem Frame, die eine Ansicht des geographischen Informationsumfeldes repräsentiert, bestimmen, wobei die restliche Frameperiode einen Zeitraum nach dem Ausführen eines Satzes an feststehenden Aufgaben im Frame und an einer Framegrenze des Frames, darstellt.
-
An einem Stadium 520 wird eine dynamische Aufgabe in einer Zeitablaufsteuerungswarteschlange identifiziert, wobei die dynamische Aufgabe über einen nicht bevorrechtigten Abschnitt verfügt, der sich zwischen dem Beginn der Aufgabe und einem Bevorrechtigungspunkt der Aufgabe befindet. Eine dynamische Zeitablaufsteuerungseinrichtung 408 kann beispielsweise eine dynamische Aufgabe in einer Zeitablaufsteuerungswarteschlange identifizieren, wobei die dynamische Aufgabe über einen nicht bevorrechtigten Abschnitt verfügt, der sich zwischen dem Beginn der Aufgabe und einem Bevorrechtigungspunkt der Aufgabe befindet.
-
Bei einem Stadium 530 wird eine geschätzte Ausführungszeit für das Ausführen der Aufgabe ermittelt. Prädiktor 410 kann zum Beispiel eine geschätzte Ausführungszeit für das Ausführen der Aufgabe ermitteln.
-
Bei einem Stadium 540, bei dem die geschätzte Ausführungszeit nicht größer als die restliche Frameperiode ist, wird der nicht-bevorrechtigte Abschnitt der Aufgabe im Frame ausgeführt. Die dynamische Zeitablaufsteuerungseinrichtung 408 kann z. B. den nicht-bevorrechtigten Abschnitt der Aufgabe im Frame ausführen, wenn die geschätzte Ausführungszeit nicht größer als die restliche Frameperiode ausfällt.
-
Bei einem Stadium 550 wird das Ausführen der Aufgabe im Frame verschoben, wenn die geschätzte Ausführungszeit größer als die restliche Frameperiode ausfällt. Die dynamische Zeitablaufsteuerungseinrichtung 408 kann das Ausführen der Aufgabe im Frame verschieben, wenn die geschätzte Ausführungszeit größer als die restliche Frameperiode ausfällt.
-
VI. Zeitablaufsteuerung
-
A. Zeitablaufsteuerungswarteschlange
-
Die Reihenfolge, in der Aufgaben in einer Zeitablaufsteuerungswarteschlange ausgeführt werden, kann flexibel sein und von einer Zeitablaufsteuerungseinrichtung bestimmt werden. Die Zeitablaufsteuerungseinrichtungen kann dynamische Aufgaben für eine Ausführung einplanen und die dynamischen Aufgaben dann in einer entsprechenden Reihenfolge ausführen. Die Einplanung der dynamischen Aufgaben in einer entsprechenden in einem Frame auszuführenden Reihenfolge kann das Stottern des Frames reduzieren.
-
In einer Ausführungsform ist die Zeitablaufsteuerungswarteschlange eine Prioritätszeitablaufsteuerungswarteschlange, die Aufgaben mit Prioritätsidentifikatoren beinhaltet. Falls eine verschobene Aufgabe sehr lang ist und sich mehrere kurze Aufgaben in der Zeitablaufsteuerungswarteschlange befinden, kann die verschobene Aufgabe durchgehend und mit einem Potenzial zum Verhungern verschoben werden. Um das Verhungern von Aufgaben, die über lange prognostizierte Laufzeiten verfügen, zu verhindern, kann eine Zeitablaufsteuerungseinrichtung die Aufgabe mit der höchsten Priorität in einem Frame zuerst ausführen. Die Zeitablaufsteuerungseinrichtung kann das Ausführen der Aufgabe selbst dann fortsetzen, wenn sie Prognosen zufolge eine Framegrenze überschreiten wird, statt die verbliebenen Aufgaben mit kurzen Laufzeiten auszuführen, welche die Framegrenze laut Prognosen nicht überschreiten werden.
-
Aufgaben können gemäß einer FIFO(First In – First Out)-Priorität ausgeführt werden, wobei jede Aufgabe, die Prognosen zufolge eine Framegrenze überschreiten wird, auf die nächste Frameperiode verschoben wird, ohne den Prioritätsidentifikator der Aufgabe zu ändern. Je älter eine Aufgabe in diesem Beispiel ist, desto höher ist die relative Priorität, die dieser Aufgabe eingeräumt wird.
-
B. Exemplarische Zeitablaufsteuerungsschnittstelle
-
6 stellt einen exemplarischen Code für eine Zeitablaufsteuerungsschnittstelle IJobScheduler dar. In einer Ausführungsform ist die Zeitablaufsteuerungseinrichtung eine Uniprozessor-Zeitablaufsteuerungseinrichtung. Eine Zeitablaufsteuerungsschnittstelle kam Aufgaben beispielsweise nur auf einem Hauptthread am Ende eines Frames, einplanen. In einer Ausführungsform ist die Zeitablaufsteuerungseinrichtung eine Uniprozessor-Zeitablaufsteuerungseinrichtung. Eine Schnittstelle des IJobScheduler kann Aufgaben auf einem Hauptthread am Ende eines Frames einplanen und kann auch Arbeitsthreadaufgaben einplanen.
-
In einer Ausführungsform ruft die Zeitablaufsteuerungseinrichtungen gewisse Funktionen wiederholt auf Basis von Zeitablaufsteuerungseinschränkungen an. Jede angerufene Funktion kann einen Task darstellen und jeder Anruf an eine Funktion kann eine Aufgabe darstellen. Wenn eine Aufgabe ihre eigenen Funktionsanrufe tätigt, können diese als Teil der Aufgabe, und nicht als separate Aufgaben angesehen werden. Mit jedem eingeplanten Task befindet sich die Aufgabe einen einzelnen Funktionsanruf von der Zeitablaufsteuerungseinrichtung entfernt.
-
Der Schnittstellen-IJobScheduler kann einen Mechanismus beinhalten, um eine Aufgabe sicher zu stoppen und um der Zeitablaufsteuerungseinrichtung die Steuerung zu geben. Wenn eine Aufgabe zum Beispiel auf sichere Art und Weise gestoppt werden kann, kann die Aufgabe eine Funktion ShouldContinue () auf der Zeitablaufsteuerungseinrichtung anrufen. Der Anruf der Funktion ShouldContinue () kann wahlweise eine geschätzte Ausführungszeit beinhalten, gemäß der bestimmt wird, wie lange die Aufgabe voraussichtlich laufen wird, bevor sie ShouldContinue () als nächstes anruft oder zu Ende gebracht wird. Die Zeitablaufsteuerungseinrichtung kann ermitteln, ob die Ausführung der Arbeit fortgesetzt werden soll, oder ob die Ausführung der Arbeit verschoben werden soll. Die Zeitablaufsteuerungseinrichtung kann ihre Entscheidung zumindest teilweise auf die geschätzte Ausführungszeit stützen. Die Zeitablaufsteuerungseinrichtung kann ihre Entscheidung der Aufgabe zurückgeben.
-
Eine Zeitablaufsteuerungseinrichtung kann eine steckbare Schnittstelle enthalten, um eine geschätzte Ausführungszeit für das Ausführen einer Aufgabe zu bestimmen. Eine entsprechende Zeitvorhersagefunktion kann ausgewählt werden, um die Leistung zu verbessern. Die Nichteinhaltung von Terminen kann gegen die wahrgenommene Antwortzeit einer Aufgabe konkurrieren. Falls die Zeitablaufsteuerungseinrichtung beispielsweise zu optimistisch ist, können folglich viele Termine nicht eingehalten werden. Die Nichteinhaltung von Terminen kann die wahrgenommene Antwortzeit erhöhen, da die Leistungen von Aufgaben, die nach dem Termin zu Ende geführt werden, erst zur nächsten erfolgreichen vertikalen Synchronisierung, wahrgenommen werden. Falls die Zeitablaufsteuerungseinrichtung jedoch zu pessimistisch ist, kann dies lange wahrgenommene Antwortzeiten zur Folge haben, da die Aufgaben auf spätere Frameperioden verschoben werden.
-
C. Geschätzte Ausführungszeit
-
Die Ausführungszeit kann auf vielfältige Art und Weise prognostiziert werden. Die geschätzte Ausführungszeit einer Aufgabe kann beispielsweise zumindest zum Teil auf vergangenes Verhalten der Aufgabe, einem Taskidentifikator der Aufgabe, einer nichtbevorrechtigten Abschnittsart der Aufgabe, einer Ausführungszeit eines nichtbevorrechtigten Abschnitts der Aufgabe, oder einer Abschnittslänge des nicht-bevorrechtigten Abschnitts (der nicht-bevorrechtigten Abschnitte) des Ersteren (z. B. längster nicht-bevorrechtigter Abschnitt einer Aufgabe) basieren. Die geschätzte Ausführungszeit kann während der Laufzeit ermittelt werden.
-
Eine Zeitablaufsteuerungseinrichtung kann den Empfang einer geschätzten Ausführungszeit für das Ausführen einer Aufgabe von der Aufgabe unterstützen. Wenn die Aufgabe eine geschätzte Ausführungszeit für das Ausführen der Aufgabe bereitstellt, kann die Zeitablaufsteuerungseinrichtung das Ermitteln einer geschätzten Ausführungszeit für das Ausführen der Aufgabe fortsetzen. Die Zeitablaufsteuerungseinrichtung kann dann die zwei geschätzten Ausführungszeiten miteinander vergleichen und das pessimistischste Ergebnis auswählen. Ausgehend von diesem Ergebnis kann die Zeitablaufsteuerungseinrichtung ermitteln, ob die Aufgabe in einem Frame auszuführen ist oder ob das Ausführen der Aufgabe in einem Frame verschoben werden sollte.
-
In einer Ausführungsform kann eine geschätzte Ausführungszeit für das Ausführen einer Aufgabe zumindest teilweise auf einem Punkt während der Aufgabe basieren, ab dem das Ausführen beginnt, oder fortgesetzt wird. Ein unterschiedlicher Codepfad läuft beispielsweise zu Beginn einer Aufgabe, wenn nach einem Anruf zu ShouldContinue () ein nicht-bevorrechtigter Abschnitt ausgeführt wird. Dementsprechend können die Zeitplanungsstatistiken für diese beiden Fälle separat gehandhabt werden. Des Weiteren können die Codepfade zwischen ShouldContinue () Anrufen sich voneinander unterscheiden. In einer anderen Ausführungsform wird die schlechteste nicht-bevorrechtigte Abschnittszeit, die für jede Aufgabe nach einem ShouldContinue()-Anruf gemessen wird, als Messgröße für die nichtbevorrechtigten Abschnitte, die einem ShouldContinue () Anruf folgen, verwendet.
-
In einer Ausführungsform wird ein Prädiktor für jeden Satz von Aufgaben, die einen einzelnen Taskidentifikator teilen, erstellt. Sämtliche Prädiktoren gleichen einander. Bei sporadischen Tasks entspricht jeder Taskidentifikator einem tatsächlichen Task. Mehrere aperiodische Tasks, die denselben Codepfad ausführen, können mit demselben Taskidentifikator ausgestattet werden, um einen nützlichen Verhaltensverlauf zu erfassen.
-
In einer Ausführungsform wird eine geschätzte Ausführungszeit von Null für jeden nichtbevorrechtigten Abschnitt einer Aufgabe geschätzt. Wenn ein Termin als solcher tatsächlich eingehalten worden ist, oder wenn eine Aufgabe eine geschätzte Ausführungszeit für die Aufgabe bereitstellt, kann einer Ausführung auf Basis der Zeitplanung verhindert werden. Ferner kann die Zeitablaufsteuerungseinrichtung die Ausführung der Aufgabe stoppen, sobald die Zeitablaufsteuerungseinrichtung prognostiziert, dass ein nicht-bevorrechtigter Abschnitt einer Aufgabe nicht vor der Framegrenze beendet werden wird. Diese Messungen können als Baseline verwendet werden.
-
In einer Ausführungsform wird eine maximal beobachtete Ausführungszeit für jede Art von nicht-bevorrechtigtem Abschnitt als die geschätzte Ausführungszeit für die Aufgabe verwendet. Dies kann für die im schlimmsten Fall durchgeführte Ausführungszeit Abschätzung verwendet werden und kann empfindlich für Ausreißer sein. Falls das Betriebssystem die Entscheidung trifft, die geographische Anwendung während des Ausführens einer Aufgabe zu bevorrechtigten, könnte die gemessene nicht-bevorrechtigte Abschnittslänge sehr groß ausfallen. Die pessimistische Annahme, dass alle Aufgaben desselben Tasks eine derartig lange Ausführungszeit erfordern, könnte starke Verzögerungen und eine als lang wahrgenommene Antwortzeit für derartige Aufgaben zur Folge haben. Um diesen Effekt einzuschränken, können gemessene Werte ablaufen. Die schlimmste beobachtete Antwortzeit über die letzten 6 Sekunden kann beispielsweise seit dem Beginn der geographischen Anwendung verwendet werden.
-
In einer Ausführungsform wird ein Programm vergangener nicht-bevorrechtigter Abschnittszeiten gespeichert. Dies kann die Wahrscheinlichkeit der falschen Prognose eines Wertes steuern. In einer Ausführungsform wird eine Bin-Größe von 10–3 Millisekunden verwendet und es kann ein konfigurierbares Prozentil des Histogramms ausgewählt werden. Wenn zum Beispiel ein 95-prozentiges Histogramm verwendet wird, werden die am weitesten links gelegenen 95% der Werte ausgewählt, und der Höchstwert im entsprechenden Bin-Bereich, kann als Ausfertigungszeitschätzer verwendet werden. Das Aufrechterhalten des Hilfsprogramms kann eine robuste Behandlung der Ausreißer zur Folge haben.
-
In einer Ausführungsform werden die mittleren und standardmäßigen Abweichungswerte der nicht-bevorrechtigten Abschnittslängen einer Aufgabe gemessen. Dies kann für jede Art von nichtbevorrechtigten Abschnitt durchgeführt werden. (z. B. anfänglicher nicht-bevorrechtigter Abschnitt und nicht-bevorrechtigte Abschnitte an post-bevorrechtigten Punkten). Diese Werte können selbst dann online gemessen werden, wenn die tatsächlichen Mittelwerte und Varianzwerte unbekannt sind. Das ausschließliche Verwenden des Mittelwertes der nichtbevorrechtigten Abschnittslänge einer Aufgabe, um die Ausführungszeit zu bestimmen, kann die Hälfte der Zeit eine Untervorhersage der Ausführungszeit zur Folge haben. Durch das Verwenden des Mittelwertes plus eine gewisse Anzahl (z. B. konfigurierbare Zahl) an Standardabweichungen kann eine geschätzte Ausführungszeit mit einem ähnlichen Pessimismus für das Ausführungshistogramm ermittelt werden. Dies könnte den Aufwand verringern.
-
7 stellt eine Teilausführung eines Histogramms für eine Aufgabe ohne Bevorrechtigungspunkte gemäß der Ausführungsform dar. Die Ausführung seichten verfügen über eine breite Streuung und ein schweres Schwanzstück. In 7 Beträgt der am längsten beobachtete schlimmste Fall für diese Aufgabe 15 ms, aber ein Durchschnittsfall befindet sich eine Größenordnung darunter.
-
8 stellt eine wahrgenommene Antwort eines Histogramms gemäß einer Ausführungsform dar. Bei der wahrgenommenen Antwort eines ist Histogramms kann es sich um die typische wahrgenommene Antwort eines Histogramms handeln. In diesem Histogramm fällt die Länge des Schwanzstücks unterschiedlich aus.
-
9 stellt eine Tabelle von Techniken gemäß einer Ausführungsform dar, die verwendet wird, um die Ausführungszeit von Aufgaben abzuschätzen. Die Tabelle beinhaltet Daten wie etwa die verwendete Plattform, den verpassten feststehenden Termin, die schlechteste mittlere Antwort (innerhalb der Task), die durchschnittliche Antwortzeit, und die schlechteste mit der ausgeführten Aufgabe in Verbindung gebrachte Antwortzeit.
-
10 stellt einen Graphen gemäß einer Ausführungsform dar, der den Tradeoff zwischen den verpassten feststehenden Terminen (dunkle Balken) und den durchschnittlichen Antwortzeiten (gestreifte Balken) für unterschiedliche zeitbezogene Prädiktoren veranschaulicht. Der Graph wird aus der dritten und der fünften Säule der Tabelle aus 9. Obwohl der 6.0 Prädiktor über eine schnelle Antwortzeit verfügt, kann dies erhebliches Stottern zur Folge haben. Wie in 10 erstellt, wobei andere Prädiktoren, wie etwa NoExpire sehr selten ein Frame auf Kosten längerer Antwortzeiten verpassen. Ein ausgewogenes Gleichgewicht kann unter Verwendung der mittleren oder Histogramm-Prognose erzielt werden.
-
VII. Schlussfolgerung
-
Es versteht sich von selbst, dass der Abschnitt der detaillierten Beschreibung und nicht die Abschnitte der Zusammenfassung und der Übersicht vorgesehen sind, um zur Auslegung der Ansprüche verwendet zu werden. Die Abschnitte der Zusammenfassung und der Übersicht können eine oder mehrere aber nicht alle beispielhaften Ausführungsformen der vorliegenden Erfindung, wie durch den (die) Erfinder vorgesehen, darlegen und sind daher nicht geeignet, um die vorliegende Erfindung und die beigefügten Ansprüche in irgendeiner Weise zu begrenzen.
-
Die vorliegende Offenbarung ist vorstehend mit Hilfe funktionaler Bausteine, die die Implementierung spezifischer Funktionen und Beziehungen davon veranschaulichen, beschrieben worden. Die Grenzen dieser funktionalen Bausteine wurden zum besseren Verständnis der Beschreibung hierin willkürlich definiert. Alternative Grenzen können definiert werden, solange deren spezifizierte Funktionen und Beziehungen angemessen durchgeführt werden.
-
Die obenstehende Beschreibung der spezifischen Ausführungsformen offenbart so vollständig die allgemeinen Eigenschaften der Offenbarung, damit Andere durch die Verwendung des Wissens aus dem Stand der Technik diese spezifischen Ausführungsformen ohne unzumutbares Experimentieren leicht ändern und/oder für verschiedene Anwendungen anpassen können, ohne sich von dem allgemeinen Konzept der vorliegenden Offenbarung zu entfernen. Daher sind solche Anpassungen und Modifizierungen auf Basis der hierin präsentierten Lehre und Anleitung als innerhalb der Bedeutungen des Bereichs der Äquivalente der offenbarten Ausführungsformen zu betrachten. Es versteht sich, dass die hierin enthaltene Phraseologie oder Terminologie dem Zweck der Beschreibung und nicht der Einschränkung dient, sodass die Terminologie oder Phraseologie der vorliegenden Spezifikation von Fachleuten angesichts der Lehren und Anleitung zu interpretieren ist.
-
Die Breite und der Schutzbereich der vorliegenden Offenbarung sollten durch die oben beschriebenen beispielhaften Ausführungsformen in keiner Weise beschränkt werden, sondern sollten nur gemäß den folgenden Ansprüchen und ihren Äquivalenten definiert werden.