-
Technisches Gebiet
-
Die vorliegende Erfindung betrifft eine Computervorrichtung, ein Aufgabeneinleitungsprogramm und ein Aufgabeneinleitungsverfahren.
-
Hintergrund zum Stand der Technik
-
Nichtpatentliteratur 1 offenbart ein Computersystem unter Verwendung eines Echtzeit-Betriebssystems (OS = Operating System) für eingebettete Geräte. Das Computersystem der Nichtpatentliteratur 1 hat zwei Arten von Interrupt-Behandlern: einen Kernel-verwalteten Interrupt-Behandler, der vom OS abhängig ist, und einen nicht-Kernel-verwalteten Interrupt-Behandler, welcher vom OS unabhängig ist. Der Kernel-verwaltete Interrupt-Behandler wird auch als OS-abhängiger Interrupt-Behandler bezeichnet. Der nicht-Kernel-verwaltete Interrupt-Behandler wird auch als OS-unabhängiger Interrupt-Behandler bezeichnet.
-
Der OS-abhängige Interrupt-Behandler kann innerhalb des OS-abhängigen Interrupt-Behandlers einen OS-Dienstaufruf ausgeben. Ein während der Verarbeitung des Dienstaufrufs erzeugtes OS-abhängiges Interrupt wird allerdings so lange verzögert, bis das OS-abhängige Interrupt akzeptiert werden kann.
-
Der OS-unabhängige Interrupt-Behandler kann innerhalb des OS-unabhängigen Interrupt-Behandlers einen OS-Dienstaufruf ausgeben. Ein OS-unabhängiges Interrupt, das während der Verarbeitung eines Dienstaufrufs erzeugt wird, kann jedoch auch in einem Abschnitt akzeptiert werden, in dem OS-abhängige Interrupte nicht akzeptiert werden können.
-
Referenzliste
-
Patentliteratur
-
Patentliteratur 1:
JP 2001-092676 A
-
Nicht-Patentliteratur
-
- Nicht-Patentliteratur 1: M3T-MR30/4 V.4.01 Benutzerhandbuch (3.6 Interrupts)
- Nicht-Patentliteratur 2: Mitsubishi Electric Technical Report, Februar 2003, „Third-Generation Mobile Phone Technology“ (Leitartikel: Basic Software for W-CDMA Portable Devices)
-
Zusammenfassung der Erfindung
-
Technisches Problem
-
In kleinen eingebetteten Geräten, wie elektrischen Haushaltsgeräten und Motorsteuerungen, ist es notwendig, ein OS-unabhängiges Interrupt zu verwenden, wenn eine Verzögerung eines Interrupts als eine Folge der Verwendung eines OS-abhängigen Interrupts nicht toleriert werden kann.
-
Dementsprechend gibt es eine Technik, bei der ein OS-unabhängiger Interrupt-Behandler einen Prozess einer durch das OS verwalteten Aufgabe über einen OS-abhängigen Interrupt-Behandler einleitet. Insbesondere gibt es, wie in Patentliteratur 1, eine Technik, bei der ein mit einem periodischen Timer-Interrupt erzeugter OS-abhängiges Interrupt verwendet wird, um den Zustand eines zu aktualisierenden Flags zu überwachen, wenn eine Aufgabe durch ein OS-unabhängiges Interrupt eingeleitet werden soll, um die Aufgabe bei Bedarf einzuleiten.
-
Mit der Technik der Patentliteratur 1 müssen jedoch OS-abhängige Interrupte regelmäßig erzeugt werden, auch wenn das Flag nicht gesetzt ist, d.h. auch wenn es nicht notwendig ist, die Aufgabe einzuleiten. Daher wird die Auslastung einer zentralen Verarbeitungseinheit (CPU) verschwendet.
Da OS-abhängige Interrupte immer periodisch erzeugt werden müssen, kann außerdem ein in Nichtpatentliteratur 2 offenbartes Tickless-Timer-Verfahren nicht eingesetzt werden, und der Energieverbrauch einer Computervorrichtung wird verschwendet. Das Tickless-Timer-Verfahren ist ein Verfahren, bei dem Systemuhr-Interrupte nur bei Bedarf erzeugt werden können.
-
Es ist ein Gegenstand der vorliegenden Erfindung, das Tickless-Timer-Verfahren als ein Zeitverwaltungsverfahren des OS zu übernehmen und eine durch das OS verwaltete Aufgabe von einem OS-abhängigen Interrupt-Behandler über einen nicht-periodischen OS-abhängigen Interrupt-Behandler einzuleiten.
-
Lösung des Problems
-
Eine Computervorrichtung gemäß der vorliegenden Erfindung ist mit einem Gerät verbunden und umfasst eine OS-Ausführungseinheit, um ein Betriebssystem (OS) auszuführen und ein OS-abhängiges Interrupt zu erzeugen, wobei die Computervorrichtung umfasst:
- eine Speichereinheit, um ein Flag zu speichern;
- eine OS-unabhängige Interruptverarbeitungseinheit, um, wenn ein OS-unabhängiges Interrupt aufgrund eines Zustandes de Geräts auftritt, zu bestimmen, ob oder ob nicht eine Aufgabe eingeleitet werden soll, und wenn die Aufgabe eingeleitet werden soll, das Flag zu aktivieren und die OS-Ausführungseinheit zu veranlassen, das OS-abhängige Interrupt zu erzeugen; und
- eine OS-abhängige Interrupt-Verarbeitungseinheit, um, wenn das OS-abhängige Interrupt durch die OS-Ausführungseinheit erzeugt wird, zu bestimmen, ob ober ob nicht das Flag aktiviert ist, und wenn das Flag aktiviert ist, die Aufgabe einzuleiten und das Flag zu deaktivieren.
-
Vorteilhafte Wirkungen der Erfindung
-
In einer Computervorrichtung gemäß der vorliegenden Erfindung, wenn ein OS-unabhängiges Interrupt auftritt, bestimmt eine OS-unabhängige Interrupt-Verarbeitungseinheit, ob oder ob nicht eine Aufgabe eingeleitet werden soll, und, wenn die Aufgabe eingeleitet werden soll, das Flag aktiviert und eine OS-Ausführungseinheit veranlasst, das OS-abhängige Interrupt zu erzeugen. Wenn das OS-abhängige Interrupt erzeugt wird, um, bestimmt eine OS-abhängige Interrupt-Verarbeitungseinheit, ob ober ob nicht das Flag aktiviert ist, und wenn das Flag aktiviert ist, die Aufgabe einzuleiten und das Flag zu deaktivieren. Daher ist es gemäß der Computervorrichtung der vorliegenden Erfindung möglich, beim Auftreten eines OS-unabhängigen Interrupts ein OS-abhängiges Interrupt unregelmäßig zu erzeugen und eine Aufgabe durch die OS-abhängige Interrupt-Verarbeitungseinheit einzuleiten. Dadurch kann die CPU-Auslastung verbessert und Energieverbrauch reduziert werden.
-
Figurenliste
-
- 1 ist ein Konfigurationsdiagramm einer Computervorrichtung 100 gemäß einer ersten Ausführungsform;
- 2 ist eine beispielhafte Konfiguration einer Anordnung eines Flags 141 gemäß der ersten Ausführungsform;
- 3 ist ein Diagramm einer Korrespondenz zwischen Elementnummern und Flagwerten des Flags 141 gemäß der ersten Ausführungsform;
- 4 ist ein Flussdiagramm, darstellend einen Aufgabeneinleitungsprozess S100 eines Aufgabeneinleitungsverfahrens 510 und ein Aufgabeneinleitungsprogramm 520 der Computervorrichtung 100 gemäß der ersten Ausführungsform;
- 5 ist ein Flussdiagramm, darstellend einen OS-abhängigen Interrupt-Prozess S10 gemäß der ersten Ausführungsform;
- 6 ist ein Flussdiagramm, darstellend einen OS-unabhängigen Interrupt-Prozess S20 gemäß der ersten Ausführungsform;
- 7 ist ein Diagramm, darstellend einen Interrupt-Auftretenszeitpunkt, der in einem bestimmten Beispiel des OS-abhängigen Interrupt-Prozesses S10 gemäß der ersten Ausführungsform angenommen wird;
- 8 ist ein Diagramm, darstellend eine Timeout-Warteschlange und Aufgabenverwaltungsinformationen, die 7 entsprechen;
- 9 ist ein Diagramm, darstellend ein bestimmtes Beispiel des OS-abhängigen Interrupt-Prozesses, in dem Fall, in dem nur ein OS-abhängiges Interrupt auftritt;
- 10 ist ein Diagramm, darstellend ein bestimmtes Beispiel des OS-abhängigen Interrupt-Prozesses, in dem Fall, in dem ein OS-abhängiges Interrupt zu einem Zeitpunkt T1 auftritt, der 3 ms nach dem Startpunkt einer dem im Prozess in 9 gezeigten Zeitdauer liegt;
- 11 ist ein Konfigurationsdiagramm einer Computervorrichtung 100 gemäß einem Modifikationsbeispiel einer ersten Ausführungsform;
-
Beschreibung der Ausführungsformen
-
Eine Ausführungsform der vorliegenden Erfindung wird nachfolgend unter Bezugnahme auf die Zeichnungen erläutert. In den Zeichnungen sind gleiche oder entsprechende Teile durch die gleichen Bezugszeichen bezeichnet. In der Beschreibung der Ausführungsform wird auf die Beschreibung gleicher oder entsprechender Teile verzichtet oder diese gegebenenfalls vereinfacht.
-
Erste Ausführungsform
-
Beschreibung der Konfiguration
-
Eine Konfiguration einer Computervorrichtung 100 gemäß dieser Ausführungsform wird unter Bezugnahme auf 1 erläutert;
-
Die Computervorrichtung 100 ist mit einem Gerät 200 verbunden. Das Gerät 200 erzeugt ein OS-unabhängiges Interrupt 201 aufgrund eines Zustands des Geräts 200. Insbesondere ist das Gerät 200 ein Motor 210 oder ein Sensor 220. Das Gerät 200, wie beispielsweise der Motor 210 oder der Sensor 220, erzeugt als das OS-unabhängige Interrupt 201 ein Interrupt aufgrund einer Zustandsänderung, umfassend den Abschluss eines Betriebs oder einen Fehler. Anstatt das Gerät 200 das OS-unabhängige Interrupt 201 erzeugen zu lassen, kann die Computervorrichtung 100 einen Timer verwenden, um OS-unabhängige Interrupte periodisch zu erzeugen, um Änderungen im Zustand des Geräts 200 zu überwachen.
-
Wie in 1 dargestellt, ist die Computervorrichtung 100 ein Computer.
-
Die Computervorrichtung 100 umfasst Hardware, wie beispielsweise einen Prozessor 910, eine Speichereinrichtung 920, eine Eingabe/AusgabeSchnittstelle 930, einen Interrupt-Timer 160 und einen Uhr-Timer 170. Die Speichereinrichtung 920 umfasst einen Speicher 921 und eine Hilfsspeichereinrichtung 922.
-
Die Computervorrichtung 100 umfasst, als funktionale Komponenten, eine OS-abhängige Interrupt-Verarbeitungseinheit 110, eine OS-abhängige Interrupt-Verarbeitungseinheit 130, eine OS-Ausführungseinheit 120 und eine Speichereinheit 140. Die OS-abhängige Interrupt-Verarbeitungseinheit 110 umfasst eine Aufgabeneinleitungsbestimmungseinheit 111, eine Systemzeitverwaltungseinheit 112, eine Timeout-Verarbeitungseinheit 113 und eine Timeout-Einstellungseinheit 114. Die OS-unabhängige Interrupt-Verarbeitungseinheit 130 umfasst eine Aufgabeneinleitungsanforderungseinheit 131, eine Timer-Einstellungseinheit 132.
-
Die OS-abhängige Interrupt-Verarbeitungseinheit 110 ist ein OS-abhängiger Interrupt-Behandler. Die OS-unabhängige Interrupt-Verarbeitungseinheit 130 ist ein OS-unabhängiger Interrupt-Behandler.
-
Die Aufgabeneinleitungsbestimmungseinheit 111, die Systemzeitverwaltungseinheit 112, die Timeout-Verarbeitungseinheit 113 und die Timeout-Einstellungseinheit 114 werden von der OS-abhängigen Interrupt-Verarbeitungseinheit 110, die der OS-abhängige Interrupt-Behandler ist, aufgerufen. Die Aufgabeneinleitungsbestimmungseinheit 131 und die Timer-Einstellungseinheit 132 werden durch die OS-unabhängige Interrupt-Verarbeitungseinheit 130, die der OS-unabhängige Interrupt-Behandler ist, aufgerufen.
-
Die Funktionen der Aufgabeneinleitungsbestimmungseinheit 111, der Systemzeitverwaltungseinheit 112, die Timeout-Verarbeitungseinheit 113, der Timeout-Einstellungseinheit 114, der Aufgabeneinleitungsanforderungseinheit 131, der Timer-Einstellungseinheit 132 und der OS-Ausführungseinheit 1290 sind durch Software realisiert.
-
Die Speichereinheit 140 ist durch den Speicher 921 und die Hilfsspeichereinrichtung 922 realisiert. Die Speichereinheit 140 kann auch nur durch den Speicher 921 oder nur durch die Hilfsspeichereinrichtung 922 realisiert sein. Die Speichereinheit 140 kann durch irgendein Verfahren realisiert sein. Ein Flag 141, eine vorherige Ausführungszeit Tp und eine Timeout-Warteschlange 143 sind im Speicher 921 gespeichert. Eine Restzeit 144 ist in der Timeout-Warteschlange 143 eingestellt. Eine Aufgabe 145 ist in der Hilfsspeichereinrichtung 922 gespeichert.
-
Der Prozessor 910 ist mit anderen Hardwarekomponenten mit Signalleitungen verbunden und steuert diese Hardwarekomponenten. Der Prozessor 910 ist eine integrierte Schaltung (IC), die eine arithmetische Verarbeitung durchführt. Der Prozessor 910 ist eine zentrale Verarbeitungseinheit (CPU) oder eine Mikroprozessoreinheit (MPU).
-
Insbesondere ist die Hilfsspeichereinrichtung 922 ein Nur-LeseSpeicher (ROM), ein Flash-Speicher oder eine Festplatte (HDD). Insbesondere ist der Speicher 921 ein Direktzugriffsspeicher (RAM).
-
Die Eingabe/Ausgabe-Schnittstelle 930 funktioniert als eine Eingabeschnittstelle und funktioniert auch als eine Ausgabeschnittstelle. Beim Funktionieren als die Eingabeschnittstelle, ist die Eingabe/AusgabeSchnittstelle 930 ein Port, der mit einer Eingabeeinrichtung, wie beispielsweise einer Maus, einer Tastatur oder einem Berührungsfeld, verbunden ist. Insbesondere ist die Eingabe/Ausgabe-Schnittstelle 930 ein Universal-Serial-Bus-(USB)-Anschluss. Die Eingabe/Ausgabe-Schnittstelle 930 kann auch ein Port sein, der mit einem lokalen Netzwerk (LAN) verbunden ist. Die Eingabe/Ausgabe-Schnittstelle 930 ist mit dem Gerät 200 verbunden und akzeptiert das OS-unabhängige Interrupt 201 vom Gerät 200.
-
Beim Funktionieren als die Eingabeschnittstelle, ist die Eingabe/AusgabeSchnittstelle 930 ein Port, mit dem ein Kabel einer Anzeigeeinrichtung, wie eine Anzeige, verbunden ist. Insbesondere ist die Ausgabeschnittstelle ein USB-Anschluss oder ein High-Definition-Multimedia-Interface-(HDMI)-(eingetragene Marke)-Anschluss. Insbesondere ist die Anzeige eine Flüssigkristallanzeige (LCD).
-
Die Hilfsspeichereinrichtung 922 speichert ein Programm zum Realisieren der Funktionen der Aufgabeneinleitungsbestimmungseinheit 111, der Systemzeitverwaltungseinheit 112, der Timeout-Verarbeitungseinheit 113, der Timeout-Einstellungseinheit 114, der Aufgabeneinleitungsanforderungseinheit 131, der Timer-Einstellungseinheit 132 und der OS-Ausführungseinheit 120. Das Programm zum Realisieren der Funktionen der Aufgabeneinleitungsbestimmungseinheit 111, der Systemzeitverwaltungseinheit 112, der Timeout-Verarbeitungseinheit 113, der Timeout-Einstellungseinheit 114, der Aufgabeneinleitungsanforderungseinheit 131, der Timer-Einstellungseinheit 132 und der OS-Ausführungseinheit 120 wird auch als ein Aufgabeneinleitungsprogramm 520 bezeichnet. Dieses Programm wird in den Speicher 921 geladen, durch den Prozessor 910 gelesen und durch den Prozessor 910 ausgeführt. Die Hilfsspeichereinrichtung 922 speichert auch ein OS. Zumindest ein Teil des OS ist in den Speicher 921 geladen. Dann führt der Prozessor 910 das Aufgabeneinleitungsprogramm 520 während des Ausführens des OS aus. Die Aufgabe 145 wird durch einen Serviceaufruf eingeleitet, den das OS bereitstellt, unter Verwendung des Interrupt-Timers 160.
-
Die Computervorrichtung 100 kann nur einen Prozessor 910 umfassen, oder kann eine Vielzahl von Prozessoren 910 umfassen. Die Vielzahl von Prozessoren 910 können zusammenwirken, um das Programm zum Realisieren der Funktionen der Aufgabeneinleitungsbestimmungseinheit 111, der Systemzeitverwaltungseinheit 112, der Timeout-Verarbeitungseinheit 113, der Timeout-Einstellungseinheit 114, der Aufgabeneinleitungsanforderungseinheit 131, der Timer-Einstellungseinheit 132 und der OS-Ausführungseinheit 120 auszuführen.
-
Informationen, Daten, Signalwerte und Variablenwerte, anzeigend Ergebnisse der Verarbeitung durch die Aufgabeneinleitungsbestimmungseinheit 111, die Systemzeitverwaltungseinheit 112, die Timeout-Verarbeitungseinheit 113, die Timeout-Einstellungseinheit 114, die Aufgabeneinleitungsanforderungseinheit 131, die Timer-Einstellungseinheit 132 und die OS-Ausführungseinheit 910, sind in der Hilfsspeichereinrichtung 922 und dem Speicher 921 der Computervorrichtung 100 oder in einem Register oder Cache-Speicher im Prozessor 910 gespeichert.
-
Das Programm zum Realisieren der Funktionen der Aufgabeneinleitungsbestimmungseinheit 111, der Systemzeitverwaltungseinheit 112, der Timeout-Verarbeitungseinheit 113, der Timeout-Einstellungseinheit 114, der Aufgabeneinleitungsanforderungseinheit 131, der Timer-Einstellungseinheit 132 und der OS-Ausführungseinheit 120 können in einem tragbaren Aufzeichnungsmedium, wie einer magnetischen Platte, einer flexiblen Platte, einer optischen Platte, einer Compact Disk, einer Blu-ray-(eingetragene Marke)-Disc und einer Digitalen Versatilen Disc (DVD) gespeichert sein.
-
Es ist zu beachten, dass ein Aufgabeneinleitungsprogrammprodukt ein Speichermedium oder eine Speichereinrichtung ist, in der das Aufgabeneinleitungsprogramm 520 aufgezeichnet ist. Das Aufgabeneinleitungsprogrammprodukt bezieht sich auf ein Objekt, in das ein computerlesbares Programm geladen wurde, unabhängig vom Aussehen.
-
Beschreibung funktionaler Komponenten
-
Die funktionalen Komponenten in 1 werden nun erläutert.
-
Die OS-Ausführungseinheit 120 verwaltet die Ausführung der Aufgabe 145 in der Computervorrichtung 100. Die OS-Ausführungseinheit 120 stellt auch eine Funktion des Einleitens der Aufgabe 145 in der Computervorrichtung 100 bereit.
-
Das Gerät 200 erzeugt ein OS-unabhängiges Interrupt 201 aufgrund einer Zustandsänderung, umfassend den Abschluss eines Betriebs oder einen Fehler.
-
Der Interrupt-Timer 160 wird verwendet, um die OS-Ausführungseinheit 120 zu veranlassen, ein OS-abhängiges Interrupt 202 zu erzeugen. Das heißt, das OS-abhängige Interrupt 202 wird durch die Funktion des Interrupt-Timers 160 erzeugt. Der Interrupt-Timer 160 wird auch als ein Systemuhr-Interrupt-Timer bezeichnet.
-
Der Uhr-Timer 170 ist ein Timer zum Nachverfolgen der Systemzeit. Der Uhr-Timer 170 wird auch als ein Systemzeit-Uhr-Timer bezeichnet. Insbesondere ist der Uhr-Timer 170 ein Timer unter Verwendung einer freilaufenden Timerfunktion.
-
Wenn das OS-unabhängige Interrupt 201 aufgrund eines Zustandes des Geräts 200 auftritt, bestimmt die Aufgabeneinleitungsanforderungseinheit 131, ob oder ob nicht eine Aufgabe 145 eingeleitet werden soll. Wenn die Aufgabe 145 eingeleitet werden soll, aktiviert die Aufgabeneinleitungsanforderungseinheit 131 das Flag 141 und veranlasst die OS-Ausführungseinheit 120, ein OS-abhängiges Interrupt 202 zu erzeugen. Die Aufgabe 145 ist irgendeine durch das OS verwaltete Aufgabe. Aktivieren des Flags 141 bedeutet Setzen des Flags, insbesondere Setzen seines Wertes auf „1“.
Das Flag 141 ist mit einer Datenstruktur konfiguriert, die das Bestimmen eines entsprechenden Geräts 200 ermöglicht, wenn das Flag 141 durch die Aufgabeneinleitungsanforderungseinheit 131 gesetzt ist. Die Datenstruktur des Flags 141 ermöglicht auch das Bestimmen einer einzuleitenden Aufgabe 145, wenn es eine Vielzahl von Aufgaben 145 gibt. Es kann eine Vielzahl von Flags 141 vorhanden sein. Das Flag 141 wird auch als ein Meldungsanforderungsflag bezeichnet.
-
Eine exemplarische Konfiguration einer Anordnung des Flags 141 gemäß dieser Ausführungsform wird unter Bezugnahme auf 2 beschrieben. Wie in 2 dargestellt, sind in dem Flag 141 eine Elementnummer und ein Flagwert einander zugeordnet. Es ist zu beachten, dass eine Elementnummer einem Gerät im Voraus zugeordnet wird. Wenn Aufgabeneinleitung für ein Gerät erforderlich ist, wird der Flagwert der Elementnummer entsprechend dem Gerät auf „1“ gesetzt.
-
3 ist ein Diagramm, darstellend eine Korrespondenz zwischen Elementnummern und Flagwerten des Flag 141 gemäß dieser Ausführungsform; Wie in 3 dargestellt, wenn der Flagwert entsprechend einer Elementnummer „0“ ist, bedeutet dies, dass eine Meldungsanforderung für das der Elementnummer zugeordnete Gerät nicht vorliegt. Wenn der Flagwert entsprechend einer Elementnummer „1“ ist, bedeutet dies, dass eine Meldungsanforderung für das der Elementnummer zugeordnete Gerät vorliegt.
-
Die Konfiguration des Flags 141, wie vorstehend beschrieben, ermöglicht es der Aufgabeneinleitungsbestimmungseinheit 111, ein Gerät zu identifizieren, auf die sich die Benachrichtigungsanforderung bezieht, und eine geeignete Aufgabe einzuleiten.
-
Die Timer-Einstellungseinheit 132 veranlasst die OS-Ausführungseinheit 120, ein OS-abhängiges Interrupt 202 zu erzeugen durch Einstellen eines Zählerwerts im Interrupt-Timer 160. Insbesondere stellt die Timer-Einstellungseinheit 132 im Interrupt-Timer 160 als den Zählerwert einen Wert, der veranlasst, dass der Zählerwert sofort 0 wird, wie z.B. 0 ms, 1 ms oder 0,5 ms.
-
Die OS-Ausführungseinheit 120 erzeugt das OS-abhängige Interrupt 202 unter Verwendung des Interrupt-Timers 160. Insbesondere erzeugt die OS-Ausführungseinheit 120 das OS-abhängige Interrupt 202, wenn der Zählerwert des Interrupt-Timers 160 0 wird.
-
Wenn das OS-abhängige Interrupt 202 durch die OS-Ausführungseinheit 120 erzeugt wird, bestimmt die Aufgabeneinleitungsbestimmungseinheit 111, ob ober ob nicht das Flag (141) aktiviert ist. Wenn das Flag 141 aktiviert ist, leitet die Aufgabeneinleitungsbestimmungseinheit 111 die Aufgabe 145 ein und deaktiviert das Flag 141. Deaktivieren des Flags 141 bedeutet Herabsetzen des Flags, insbesondere Setzen seines Wertes auf „0“. Das heißt, basierend auf dem Zustand des Flags 141, leitet die Aufgabeneinleitungsbestimmungseinheit 111 die Aufgabe 145 ein und deaktiviert das Flag 141. Insbesondere ist „0“ im Flag 141 gesetzt.
-
Die Systemzeitverwaltungseinheit 112 berechnet eine abgelaufene Zeit basierend auf der aktuellen Zeit, die die aktuelle Systemzeit ist, die vom Uhr-Timer 170 erhalten wurde, und der vorherigen Ausführungszeit Tp, die die zuletzt erhaltene Systemzeit ist.
-
Die Timeout-Verarbeitungseinheit 113 führt einen Timeout-Prozess einer Aufgabe oder eines Timer-Ereignis-Behandlers durch. Die Computervorrichtung 100 umfasst eine Timeout-Warteschlange 143, die die Restzeit 144 der Aufgabe oder den Timer-Ereignis-Behandler verwaltet. Die Timeout-Verarbeitungseinheit 113 setzt die Restzeit 144 der Tiemout-Warteschlange 143 zurück, basierend auf der vorherigen Ausführungszeit Tp, zu der die Aufgabe zuletzt eingeleitet wurde, und der aktuellen Zeit. Insbesondere ist der Timer-Ereignis-Behandler ein Behandler, wie ein zyklischer Behandler oder ein Alarm-Behandler, in einem Echtzeit-OS basierend auf der µlTRON-Spezifikation.
-
Die Timeout-Einstellungseinheit 114 verwaltet eine Timeout-Warteschlange einer Aufgabe oder einen Timer-Ereignis-Behandler. Nachfolgend bedeutet die Timeout-Warteschlange 143 die Timeout-Warteschlange der Aufgabe oder die Timer-Ereignis-Behandler-Warteschlange. Die Timeout-Einstellungseinheit 114 berechnet eine nächste Interruptzeit, um das OS-abhängige Interrupt 202 zu erzeugen und stellt einen Zählerwert im Interrupt-Timer 160 ein, um das OS-abhängige Interrupt 202 zur nächsten Interruptzeit zu erzeugen.
-
Beschreibung des Betriebs
-
4 ist ein Flussdiagramm, darstellend einen Aufgabeneinleitungsprozess S100 eines Aufgabeneinleitungsverfahrens 510 und das Aufgabeneinleitungsprogramm 520 der Computervorrichtung 100 gemäß dieser Ausführungsform. Das Aufgabeneinleitungsprogramm 520 veranlasst die Computervorrichtung 100, welche ein Computer ist, jeden nachfolgend zu erläuternden Prozess auszuführen.
-
Der Aufgabeneinleitungsprozess S100 umfasst einen OS-abhängigen Interrupt-Prozess S10 und einen OS-unabhängigen Interrupt-Prozess S20.
-
In Schritt S1, falls das OS-abhängige Interrupt 202 aufgetreten ist, geht die Computervorrichtung 100 weiter zum OS-abhängigen Interrupt-Prozess S10. Falls das OS-abhängige Interrupt 201 aufgetreten ist, geht die Computervorrichtung 100 weiter zum OS-unabhängigen Interrupt-Prozess S20. Falls kein Interrupt aufgetreten ist, wiederholt die Computervorrichtung 100 Schritt S1.
-
OS-abhängiger Interrupt-Prozess S10
-
5 ist ein Flussdiagramm, darstellend einen OS-unabhängigen Interrupt-Prozess S10 gemäß dieser Ausführungsform;
-
Der OS-abhängige Interrupt-Prozess S10 wird gestartet, wenn das OS-abhängige Interrupt 202 durch den Interrupt-Timer 160 der Systemuhr veranlasst wird, aufzutreten. Wenn das OS-abhängige Interrupt 202 durch den Interrupt-Timer 160 veranlasst wird, aufzutreten, wird der OS-abhängige Interrupt-Behandler durch die Interrupt-Funktion der OS-Ausführungseinheit 120 des Prozessors 910 eingeleitet. Dann ruft der OS-abhängige Interrupt-Behandler die Aufgabeneinleitungsbestimmungseinheit 111 auf.
-
In dem OS-abhängigen Interrupt-Prozess 510, wenn das OS-abhängige Interrupt 202 durch die OS-Ausführungseinheit 120 erzeugt wird, bestimmt die OS-abhängige Interrupt-Verarbeitungseinheit 110, ob oder ob nicht das Flag 141 aktiviert ist. Falls das Flag 141 aktiviert ist, leitet die OS-abhängige Interrupt-Verarbeitungseinheit 110 die Aufgabe 145 ein und deaktiviert das Flag 141.
-
In Schritt S11 bestimmt die Aufgabeneinleitungsbestimmungseinheit 111, ob oder ob nicht das Flag 141 gesetzt ist. Falls das Flag 141 gesetzt ist, geht der Prozess weiter zu Schritt S12. Falls das Flag 141 deaktiviert ist, geht der Prozess weiter zu Schritt S13.
-
In Schritt S12 leitet die Aufgabeneinleitungsbestimmungseinheit 111 die auszuführende Aufgabe 145 unter Verwendung eines durch das OS bereitgestellten Dienstaufrufs ein und deaktiviert das Flag 141. Der Prozess geht weiter zu Schritt S13, der durch die Systemzeitverwaltungseinheit 112 ausgeführt wird.
-
Als nächstes erhält die Systemzeitverwaltungseinheit 112 in Schritt S13 die aktuelle Systemzeit als eine Ausführungszeit Tn vom Uhr-Timer 170 der Systemzeit.
-
In Schritt S14 erhält die Systemzeitverwaltungseinheit 112 die vorherige Ausführungszeit Typ, die in der Speichereinheit 140 zuvor gespeichert wurde, wenn die das vorherige Interrupt aufgetreten ist. Die Systemzeitverwaltungseinheit 112 vergleicht die vorherige Ausführungszeit Tp mit der Ausführungszeit Tn und berechnet eine abgelaufene Zeit Tk von der vorherigen Ausführungszeit Tp bis zur Ausführungszeit Tn. Die vorherige Ausführungszeit Tp hat einen Anfangswert von 0. Der Prozess geht weiter zu Schritt S15, der durch die Timeout-Verarbeitungseinheit 113 ausgeführt wird.
-
In Schritt S15 führt die Timeout-Verarbeitungseinheit 113 den Timeout-Prozess der Aufgabe oder den Alarm-Behandler basierend auf der abgelaufenen Zeit Tk, die durch die Systemzeitverwaltungseinheit 112 berechnet wurde, durch. Ein spezifisches Beispiel des Timeout-Prozesses wird später erläutert. Der Prozess geht weiter zu Schritt S16, der durch die Timeout-Einstellungseinheit 114 ausgeführt wird.
-
In Schritt S16 speichert die Timeout-Einstellungseinheit 114 die Ausführungszeit Tn, die durch die Systemzeitverwaltungseinheit 112 erhalten wurde, in der Speichereinheit 140 als die vorherige Ausführungszeit Tp.
-
Dann überprüft die Timeout-Einstellungseinheit 114 in Schritt S17 die im Kopfelement jeder Timeout-Warteschlange 143 eingestellte Restzeit 144 und bestimmt eine nächste Interruptzeit Tf basierend auf der kleinsten Restzeit 144.
-
Schließlich stellt die Timeout-Einstellungseinheit 114 in Schritt S18 den Zählerwert des Interrupt-Timers 160 so ein, dass ein Interrupt des Interrupt-Timers 160 der Systemuhr zur nächsten Interruptzeit Tf auftritt.
-
Damit ist der OS-abhängige Interrupt-Prozess S10 abgeschlossen.
-
OS-unabhängiger Interrupt-Prozess S20
-
6 ist ein Flussdiagramm, darstellend einen OS-unabhängigen Interrupt-Prozess S20 gemäß dieser Ausführungsform;
-
In einem Aufgabeneinleitungsanforderungsprozess S21 wird der OS-unabhängige Interrupt-Behandler eingeleitet, wenn das OS-unabhängige Interrupt 201 vom Gerät 200 auftritt. Dann ruft der OS-abhängige Interrupt-Behandler die Aufgabeneinleitungsanforderungseinheit 131 auf.
-
Im OS-unabhängigen Interrupt-Prozess S20 bestimmt die OS-unabhängige Interrupt-Verarbeitungseinheit 130 beim Auftreten des OS-unabhängigen Interrupts 201 aufgrund des Zustands des Geräts 200, ob die Aufgabe 145 eingeleitet werden soll oder nicht. Falls die Aufgabe (145) eingeleitet werden soll, aktiviert die OS-unabhängige Interrupt-Verarbeitungseinheit 130 das Flag (141) und veranlasst die OS-Ausführungseinheit 120, ein OS-abhängiges Interrupt 202 zu erzeugen.
-
In Schritt S21 bestimmt die Aufgabeneinleitungsanforderungseinheit 131, ob die Aufgabe 145 eingeleitet werden muss oder nicht. Die Aufgabeneinleitungsanforderungseinheit 131 kann bestimmen, ob die Aufgabe 145 eingeleitet werden muss oder nicht, basierend auf irgendeiner Bedingung. Falls die Aufgabe 145 eingeleitet werden muss, geht der Prozess weiter zu Schritt S22. Falls die Aufgabe 145 nicht eingeleitet werden muss, endet der Prozess.
-
In Schritt S22 setzt die Aufgabeneinleitungsanforderungseinheit 131 das Flag 141. Der Prozess geht weiter zu Schritt S23, der durch die Timer-Einstellungseinheit 132 ausgeführt wird.
-
Schließlich stellt die Timeout-Einstellungseinheit 132 in Schritt S23 den Zählerwert des Interrupt-Timers 160 so ein, dass das OS-abhängige Interrupt 202 sofort auftritt. Insbesondere stellt die Timer-Einstellungseinheit 132 den Interrupt-Timer 160 auf einen Zählerwert, wie 0 ms, 1 ms oder 2 ms, ein, so dass das OS-abhängige Interrupt 202 sofort auftritt.
-
Damit ist der OS-unabhängige Interrupt-Behandler-Prozess S20 abgeschlossen.
-
Es ist zu beachten, dass der Zählerwert des Interrupt-Timers 160, der durch die Timer-Einstellungseinheit 132 eingestellt wurde, gemäß irgendeiner Bedingung dynamisch bestimmt werden kann. Insbesondere, wenn die abgelaufene Zeit seit dem letzten Überschreiben des Zählerwerts kurz ist, kann die Timer-Einstellungseinheit 132 einen großen Zählerwert gezielt einstellen. Alternativ kann die Timer-Einstellungseinheit 132 das Durchführen des Überschreibens des Zählerwerts weglassen. Eine solche Einstellung des Zählerwerts kann als Teil der Funktion der Timer-Einstellungseinheit 132 vorgesehen sein. Alternativ kann eine Verarbeitungseinheit zum Bestimmen, ob oder ob nicht ein Zählerwert bestimmt werden soll, die Einstellung des Zählerwerts durchführen. Alternativ kann eine Verarbeitungseinheit zum Bestimmen, ob oder ob nicht ein Zählerwert überschrieben werden soll, die Einstellung des Zählerwerts durchführen.
-
In dieser Ausführungsform bestimmt die Aufgabeneinleitungsbestimmungseinheit 111, ob eine Aufgabe im Prozess eines OS-abhängigen Interrupts, das in Verbindung mit einem Timer-Interrupt auftritt, eingeleitet werden muss oder nicht. Die Aufgabeneinleitungsbestimmungseinheit 111 kann jedoch bestimmen, ob oder ob nicht eine Aufgabe im Prozess eines Interrupts, das aufgrund eines anderen Faktors auftritt, eingeleitet werden muss oder nicht.
-
Ein bestimmtes Beispiel des OS-abhängigen Interrupt-Prozesses S10 durch die Computervorrichtung 100 gemäß dieser Ausführungsform wird nun unter Bezugnahme auf 7 bis 10 beschrieben.
-
7 zeigt eine Interrupt-Auftretenszeit, welche in diesem bestimmten Beispiel angenommen wird. Es wird dargestellt, dass im Interrupt-Timer 160 eine Zeitdauer von 10 ms eingestellt ist, und das OS-unabhängige Interrupt 201 zu einem Zeitpunkt T1 auftritt, der 3 ms nach dem Startpunkt der Zeitdauer liegt. In 7 bis 10 ist das OS-abhängige Interrupt 202 als kernel_int bezeichnet und das OS-unabhängige Interrupt 201 als nonkernel-int bezeichnet.
-
8 zeigt eine Timeout-Warteschlange und Aufgabenverwaltungsinformationen. Die Aufgabenverwaltungsinformationen sind als TCB (Task Control Block = Aufgabenkontrollblock) bezeichnet. Die Timeout-Warteschlange ist eine Information, in der TCBs in der Reihenfolge des Timeouts verkettet sind. Basierend auf der Restzeit der Timeout-Warteschlange bezieht sich das OS auf den Inhalt eines entsprechenden TCBs zu dem Zeitpunkt, der als angeforderte Ausführung der Aufgabe gesetzt ist, um den Prozess der Aufgabe auszuführen.
-
9 ist ein Diagramm, darstellend ein bestimmtes Beispiel des OS-abhängigen Interrupt-Prozesses, in dem Fall, in dem nur ein OS-abhängiges Interrupt auftritt; Ein bestimmtes Beispiel des Prozesses von Schritt S15 bis Schritt S18 in 5 in dem Fall, in welchem nur ein OS-abhängiges Interrupt auftritt, wird unter Bezugnahme auf 9 beschrieben. Nachfolgend entsprechen (11) bis (13) den in 9 dargestellten (11) bis (13).
-
In Schritt S15 prüft die Timeout-Verarbeitungseinheit 113, ob es oder ob es keine Aufgabe gibt, deren Ausführungszeit abgelaufen ist. Falls es eine Aufgabe gibt, deren Ausführungszeit abgelaufen ist, veranlasst die Timeout-Verarbeitungseinheit 113 das OS, den Prozess dieser Aufgabe auszuführen. Falls eine Aufgabe vorhanden ist, für welche die Restzeit, die abgelaufene Zeit ≤ 0 ist, veranlasst die Timeout-Verarbeitungseinheit 113 das OS, den Prozess dieser Aufgabe auszuführen. Wie in (11) gemäß 9 dargestellt, beträgt die Restzeit am Kopf der Timeout-Warteschlange 10 ms und die abgelaufene Zeit Tk ist 10 ms, so dass 10 - 10 = 0. Daher veranlasst die Timeout-Verarbeitungseinheit 113 das OS, den Prozess der Aufgabe 1 auszuführen. Dann aktualisiert die Timeout-Verarbeitungseinheit 113 die Adresse, die durch den Kopfzeiger der Timeout-Warteschlange angezeigt ist, auf das nächste Element. Wie in (12) von 9 dargestellt, ändert die Timeout-Verarbeitungseinheit 113 die Adresse, auf die der Kopfzeiger der Timeout-Warteschlange zeigt, von der Adresse des Elements 0 auf die Adresse des Elements 1.
-
In Schritt S16 speichert die Timeout-Verarbeitungseinheit 113 die Ausführungszeit Tn in der Speichereinheit 140 als die vorherige Ausführungszeit Tp.
-
In Schritt S17 bestimmt die Timeout-Verarbeitungseinheit 113 die nächste Interruptzeit Tf. Es kann eine Vielzahl von Timeout-Warteschlangen, aufweisend eine Timeout-Warteschlange für einen Timer-Ereignis-Behandler und eine Timeout-Warteschlange für einen Alarm-Behandler, vorhanden sein. Daher vergleicht die Timeout-Verarbeitungseinheit 113 die Restzeiten der Kopfblöcke aller Timeout-Warteschlangen, um die nächste Interruptzeit Tf zu bestimmen.
-
In Schritt S18 stellt die Timeout-Verarbeitungseinheit 113 einen Zählerwert im Interrupt-Timer 160 ein. Der Zählerwert des Interrupt-Timers 160 ist so eingestellt, dass ein OS-abhängiges Interrupt zur nächsten Interruptzeit Tf auftritt. Wie in (13) von 9 dargestellt, stellt die Timeout-Verarbeitungseinheit 113 7 ms im Interrupt-Timer 160 ein.
-
10 ist ein Diagramm, darstellend ein bestimmtes Beispiel des OS-abhängigen Interrupt-Prozesses, in dem Fall, in dem ein OS-abhängiges Interrupt zu einem Zeitpunkt T1 auftritt, der 3 ms nach dem Startpunkt einer dem Prozess in 9 folgenden Zeitdauer liegt;
-
Ein bestimmtes Beispiel des Prozesses von Schritt S15 bis Schritt S18 in 5 in dem Fall, in welchem nur ein OS-unabhängiges Interrupt zum Zeitpunkt T1 auftritt, wird unter Bezugnahme auf 10 beschrieben. Nachfolgend entsprechen (21) bis (23) den in 10 dargestellten (21) bis (23). In dem Fall von 10 beträgt die abgelaufene Zeit Tk ab dem Startpunkt der Zeitdauer 3 ms.
-
In Schritt S15 prüft die Timeout-Verarbeitungseinheit 113, ob es oder ob es keine Aufgabe gibt, deren Ausführungszeit abgelaufen ist. Falls es eine Aufgabe gibt, deren Ausführungszeit abgelaufen ist, veranlasst die Timeout-Verarbeitungseinheit 113 das OS, den Prozess dieser Aufgabe auszuführen. Falls eine Aufgabe vorhanden ist, für welche (die verbleibende Zeit - die abgelaufene Zeit) ≤ 0 ist, veranlasst die Timeout-Verarbeitungseinheit 113 das OS, den Prozess dieser Aufgabe auszuführen. Wie in (21) gemäß 10 dargestellt, beträgt die Restzeit am Kopf der Timeout-Warteschlange 7 ms und die abgelaufene Zeit Tk ist 3 ms, so dass 7 - 3 = 4. Daher ist keine Aufgabe für die Timeout-Verarbeitungseinheit 113 auszuführen. Die Timeout-Verarbeitungseinheit 113 aktualisiert die Restzeit der Timeout-Warteschlange. Wie in (22) von 10 dargestellt, ist Tk = 3 ms seit der vorherigen Ausführungszeit Tp abgelaufen, so dass die Rstzeit von 7 ms auf (7 - 3) = 4 ms aktualisiert wird.
-
In Schritt S16 speichert die Timeout-Verarbeitungseinheit 113 die Ausführungszeit Tn in der Speichereinheit 140 als die vorherige Ausführungszeit Tp.
-
In Schritt S17 bestimmt die Timeout-Verarbeitungseinheit 113 die nächste Interruptzeit Tf.
-
In Schritt S18 stellt die Timeout-Verarbeitungseinheit 113 einen Zählerwert im Interrupt-Timer 160 ein. Der Zählerwert ist im Interrupt-Timer 160 eingestellt, so dass ein OS-abhängiges Interrupt zur nächsten Interruptzeit Tf auftritt. Wie in (23) von 10 dargestellt, stellt die Timeout-Verarbeitungseinheit 113 4 ms im Interrupt-Timer 160 ein.
-
Damit ist die Beschreibung des konkreten Beispiels für den OS-abhängigen Interrupt-Prozess S10 durch die Computervorrichtung 100 gemäß dieser Ausführungsform beendet.
-
Weitere Konfigurationen
-
Die Computervorrichtung 100 kann eine Kommunikationseinrichtung umfassen. Die Kommunikationseinrichtung umfasst einen Empfänger und einen Übertrager. Insbesondere ist die Kommunikationseinrichtung ein Kommunikationschip oder eine Netzwerkschnittstellenkarte (NIC). Die Kommunikationseinrichtung funktioniert als eine Kommunikationseinheit, die Daten kommuniziert. Der Empfänger funktioniert als eine Empfangseinheit, die Daten empfängt, und der Übertrager funktioniert als eine Übertragungseinheit, die Daten überträgt.
-
In dieser Ausführungsform sind die Funktionen der Aufgabeneinleitungsbestimmungseinheit 111, der Systemzeitverwaltungseinheit 112, die Timeout-Verarbeitungseinheit 113, der Timeout-Einstellungseinheit 114, der Aufgabeneinleitungsanforderungseinheit 131, der Timer-Einstellungseinheit 132 und der OS-Ausführungseinheit 120 durch Software realisiert. Als ein Modifikationsbeispiel können allerdings die Funktionen der Aufgabeneinleitungsbestimmungseinheit 111, der Systemzeitverwaltungseinheit 112, die Timeout-Verarbeitungseinheit 113, der Timeout-Einstellungseinheit 114, der Aufgabeneinleitungsanforderungseinheit 131, der Timer-Einstellungseinheit 132 und der OS-Ausführungseinheit 120 durch Hardware realisiert sein.
-
Eine Konfiguration einer Computervorrichtung 100 gemäß dieses Modifikationsbeispiels wird unter Bezugnahme auf 11 erläutert.
-
Wie in 11 dargestellt, umfasst die Computervorrichtung 100 Hardware, wie eine Verarbeitungsschaltung 909, eine Eingabe/Ausgabe-Schnittstelle 930, einen Interrupt-Timer 160 und einen Uhr-Timer 170.
-
Die Verarbeitungsschaltung 909 ist eine dedizierte elektronische Schaltung, die die Speichereinheit 140 und die Funktionen der Aufgabeneinleitungsbestimmungseinheit 111, der Systemzeitverwaltungseinheit 112, die Timeout-Verarbeitungseinheit 113, der Timeout-Einstellungseinheit 114, der Aufgabeneinleitungsanforderungseinheit 131, der Timer-Einstellungseinheit 132 und der OS-Ausführungseinheit 120, die vorangehend beschrieben sind, realisiert. Insbesondere ist die Verarbeitungsschaltung 909 eine Einzelschaltung, eine Verbundschaltung, ein programmierter Prozessor, ein parallel programmierter Prozessor, ein Logik-IC, ein GA, eine ASIC oder ein FPGA. GA ist eine Abkürzung für Gate Array. ASIC ist eine Abkürzung für Application Specific Integrated Circuit (Anwendungsspezifische Integrierte Schaltung). FPGA ist eine Abkürzung für Feldprogrammierbares Gate Array.
-
Die Funktionen der Aufgabeneinleitungsbestimmungseinheit 111, der Systemzeitverwaltungseinheit 112, die Timeout-Verarbeitungseinheit 113, der Timeout-Einstellungseinheit 114, der Aufgabeneinleitungsanforderungseinheit 131, der Timer-Einstellungseinheit 132 und der OS-Ausführungseinheit 120 können durch eine einzelne Verarbeitungsschaltung 909 realisiert sein, oder können durch Verteilung auf eine Vielzahl von Verarbeitungsschaltungen 909 realisiert sein.
-
Als ein weiteres Modifikationsbeispiel können die Funktionen der Computervorrichtung 100 durch eine Kombination von Software und Hardware realisiert sein. Da heißt, eine oder mehrere der Funktionen der Computervorrichtung 100 können durch dedizierte Hardware realisiert sein, und der Rest der Funktionen kann durch Software realisiert sein.
-
Der Prozessor 910, die Speichereinrichtung 920 und die Verarbeitungsschaltung 909 der Computervorrichtung 100 werden kollektiv als „Verarbeitungsschaltkreis“ bezeichnet. Das heißt, unabhängig davon, ob die Konfiguration der Computervorrichtung 100 die in 1 oder 11 dargestellte Konfiguration ist, sind die Speichereinheit 140 und die Funktionen der Aufgabeneinleitungsbestimmungseinheit 111, der Systemzeitverwaltungseinheit 112, der Timeout-Verarbeitungseinheit 113, der Timeout-Einstellungseinheit 114, der Aufgabeneinleitungsanforderungseinheit 131, der Timer-Einstellungseinheit 132 und der OS-Ausführungseinheit 120 durch den Verarbeitungsschaltkreis realisiert.
-
Eine „Einheit“ kann mit einem „Schritt“, „Vorgang“ oder „Prozess“ ersetzt sein. Die Funktion einer „Einheit“ kann durch Firmware realisiert sein.
-
Beschreibung der Wirkungen dieser Ausführungsform
-
Gemäß der Computervorrichtung 100 dieser Ausführungsform wird ein Flag gesetzt und ein OS-abhängiges Interrupt erzeugt. Daher ist es möglich, eine Aufgabe jederzeit einzuleiten, ohne das Flag mit einem periodischen OS-abhängigen Interrupt zu überwachen. Somit ist es gemäß der Computervorrichtung 100 dieser Ausführungsform möglich, das Tickless-Timer-Verfahren als das Zeitverwaltungsverfahren des OS zu übernehmen und die CPU-Auslastung und den Energieverbrauch zu reduzieren. Darüber hinaus ist es gemäß der Computervorrichtung 100 dieser Ausführungsform nicht erforderlich, das Flag periodisch zu überprüfen, so dass es möglich ist, auf eine Meldungsanforderung in der kürzesten Zeit, die mit dem Interrupt-Timer eingestellt werden kann, zu antworten.
-
Gemäß der Computervorrichtung 100 dieser Ausführungsform kann ein OS-abhängiges Interrupt erzeugt werden und eine Aufgabe früher eingeleitet werden als die durch die Timeout-Einstellungseinheit eingestellte Zeit.
-
Gemäß der Computervorrichtung 100 dieser Ausführungsform wird die Systemzeitverwaltungseinheit, die die Systemzeit verwaltet, bereitgestellt. Daher ist es gemäß der Computervorrichtung 100 dieser Ausführungsform möglich, dass die Aufgabe und der Alarm-Behandler zur richtigen Zeit arbeiten können, auch wenn der Zählerwert des Interrupt-Timers durch die Timer-Einstellungseinheit überschrieben wird. Darüber hinaus umfasst die Computervorrichtung 100 dieser Ausführungsform die Timeout-Einstellungseinheit, die die Timeout-Warteschlange der Aufgabe und die Ereignis-Behandler-Warteschlange verwaltet und den Zählerwert des Interrupt-Timers setzt. Daher ist es gemäß der Computervorrichtung 100 dieser Ausführungsform möglich, ein OS-abhängiges Interrupt zur richtigen Zeit arbeiten zu lassen, auch wenn der Zählerwert des Interrupt-Timers durch die Timer-Einstellungseinheit überschrieben wird.
-
In dieser Ausführungsform bilden die Aufgabeneinleitungsbestimmungseinheit 111, der Systemzeitverwaltungseinheit 112, die Timeout-Verarbeitungseinheit 113, die Timeout-Einstellungseinheit 114, die Aufgabeneinleitungsanforderungseinheit 131, die Timer-Einstellungseinheit 132 und die OS-Ausführungseinheit 120 die Computervorrichtung 100 als unabhängige funktionale Blöcke. Es ist jedoch nicht erforderlich, die Konfiguration wie in der oben beschriebenen Ausführungsform vorzusehen, und die Computervorrichtung 100 kann eine beliebige Konfiguration aufweisen. Die funktionalen Blöcke der Computervorrichtung 100 können irgendwelche funktionalen Blöcke sein, vorausgesetzt, dass die in der vorangehenden Ausführungsform beschriebenen Funktionen realisiert werden können. Die Computervorrichtung kann durch irgendeine Kombination dieser funktionalen Blöcke gebildet sein. Die Computervorrichtung kann auch durch irgendeine Blockkonfiguration dieser funktionalen Blöcke gebildet sein.
-
Die Computervorrichtung kann eine einzelne Vorrichtung sein oder kann ein durch eine Vielzahl von Vorrichtungen gebildetes Computersystem sein.
-
Die erste Ausführungsform wurde erläutert. Eine Vielzahl von Teilen dieser Ausführungsform kann in Kombination implementiert sein. Eine Vielzahl von Teilen dieser Ausführungsform kann in Kombination implementiert sein. Alternativ kann eine Vielzahl von Teilen dieser Ausführungsform als ein Ganzes oder teilweise in irgendeiner Kombination implementiert sein.
-
Die vorstehend beschriebene Ausführungsform ist ein im Wesentlichen bevorzugtes Beispiel und soll den Umfang der vorliegenden Erfindung sowie die Anwendungsbereiche und Verwendungszwecke der vorliegenden Erfindung nicht einschränken, und es sind gegebenenfalls verschiedene Modifikationen möglich.
-
Bezugszeichenliste
-
100: Computervorrichtung, 110: OS-abhängiges-Interrupt-Verarbeitungseinheit, 130: OS-unabhängiges-Interrupt-Verarbeitungseinheit, 120: OS-Ausführungseinheit, 140: Speichereinheit, 111: Aufgabeneinleitungsbestimmungseinheit, 112: Systemzeitverwaltungseinheit, 113: Timeout-Verarbeitungseinheit, 114: Timeout-Einstellungseinheit, 131: Aufgabeneinleitungsanforderungseinheit, 132: Timer-Einstellungseinheit, 141: Flag, 143: Timeout-Warteschlange, 144: Restzeit, 145: Aufgabe, 160: Interrupt-Timer, 170: Uhr-Timer, 200: Gerät, 210: Motor, 220: Sensor, 201: OS-unabhängiges Interrupt, 202: OS-abhängiges Interrupt, 510: Aufgabeneinleitungsverfahren, 520: Aufgabeneinleitungsprogramm, S10: OS-abhängiger Interrupt-Prozess, S20: OS-unabhängiger Interrupt-Prozess, S100: Aufgabeneinleitungsprozess, Tp: vorherige Ausführungszeit, Tn: Ausführungszeit, Tf: nächstes-Interrupt-Zeit, Tk: abgelaufene Zeit, 909: Verarbeitungsschaltung, 910: Prozessor, 920: Speichereinrichtung, 921: Speicher, 922: Hilfsspeichereinrichtung, 930: Eingabe/Ausgabe-Schnittstelle
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-