DE102016203965A1 - Überwachung eines Rechensystems - Google Patents
Überwachung eines Rechensystems Download PDFInfo
- Publication number
- DE102016203965A1 DE102016203965A1 DE102016203965.2A DE102016203965A DE102016203965A1 DE 102016203965 A1 DE102016203965 A1 DE 102016203965A1 DE 102016203965 A DE102016203965 A DE 102016203965A DE 102016203965 A1 DE102016203965 A1 DE 102016203965A1
- Authority
- DE
- Germany
- Prior art keywords
- computing system
- processes
- procedure
- running
- rights
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3024—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0736—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
- G06F11/0739—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function in a data processing system embedded in automotive or aircraft systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/0757—Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3017—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3495—Performance evaluation by tracing or monitoring for systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/805—Real-time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/483—Multiproc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/485—Resource constraint
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
Abstract
Ein Rechensystem ist zum dynamischen Ausführen von Prozessen eingerichtet. Ein Verfahren zum Überwachen des Rechensystems umfasst Schritte des Bestimmens einer Anzahl auf dem Rechensystem laufender Prozesse; des Bestimmens einer maximal erwarteten Anzahl Prozesse; des Bestimmens, dass mehr Prozesse laufen als erwartet; und des Deaktivierens des Rechensystems.
Description
- Die Erfindung betrifft die Überwachung eines Rechensystems. Insbesondere betrifft die Erfindung die Überwachung eines Rechensystems, das zum dynamischen Ausführen von Prozessen eingerichtet ist.
- Stand der Technik
- In einer sicherheitsrelevanten Anwendung, beispielsweise an Bord eines Kraftfahrzeugs, wird eine Steueraufgabe üblicherweise mittels eines Rechensystems bearbeitet, das ausschließlich zum Ausführen von statischen Prozessen eingerichtet ist. Welche und wie viele Prozesse auf dem Rechensystem ablaufen, wird dabei üblicherweise zum Zeitpunkt der Bereitstellung von Programmen entschieden, die die Prozesse implementieren. Außerdem wird üblicherweise darauf geachtet, dass Software unterschiedlicher Prozesse nicht mehrfach verwendet wird. Das bedeutet, dass keine Funktionalität beispielsweise in mehrfach genutzten Bibliotheken bereitgestellt wird. Dadurch kann sichergestellt werden, dass die Prozesse getrennt voneinander und möglichst ausfallsicher ausgeführt sind. Insbesondere kann verhindert werden, dass ein Prozess Probleme für einen anderen Prozess bereitet. Ein derartiges Rechensystem umfasst üblicherweise ein Echtzeit-Betriebssystem wie OSEK-OS.
- Um auch eine Funktionalität eines Drittanbieters zu unterstützen, ist ein solches statisches System jedoch schlecht geeignet. Es kann daher ein Rechensystem verwendet werden, das zum dynamischen Ausführen von Prozessen eingerichtet ist und ein Betriebssystem wie beispielsweise Linux umfasst. Dabei kann jedoch problematisch sein, dass ein Prozess einen anderen beeinträchtigen oder viele Prozesse so viel Verarbeitungsleistung erfordern können, dass ein wichtiger Prozess nicht zuverlässig ausgeführt werden kann.
- Der Erfindung liegt die Aufgabe zugrunde, eine Technik zum Überwachen eines Rechensystems bereitzustellen, die einen verbesserten Schutz gegen unerwartet ausgeführte Prozesse bereitstellt. Die Erfindung löst diese Aufgabe mittels der Gegenstände der unabhängigen Ansprüche. Unteransprüche geben bevorzugte Ausführungsformen wieder.
- Offenbarung der Erfindung
- Ein Rechensystem ist zum dynamischen Ausführen von Prozessen eingerichtet. Ein Verfahren zum Überwachen des Rechensystems umfasst Schritte des Bestimmens einer Anzahl auf dem Rechensystem laufender Prozesse; des Bestimmens einer maximal erwarteten Anzahl Prozesse; des Bestimmens, dass mehr Prozesse laufen als erwartet; und des Deaktivierens des Rechensystems.
- Das Rechensystem kann ein übliches programmierbares Computersystem umfassen, das beispielsweise an Bord eines Kraftfahrzeugs angeordnet sein kann. Das Computersystem kann einen oder mehrere Prozessoren mit jeweils einer oder mehreren Recheneinheiten, eine oder mehrere Kommunikationsschnittstellen und einen oder mehrere Speicher umfassen. Anders ausgedrückt kann das Computersystem auf übliche Weise, zentral oder dezentral, aufgebaut sein. Durch seine Eignung zur Ausführung dynamischer Prozesse können zur Laufzeit neue Prozesse gestartet oder bestehende Prozesse beendet werden. Durch das Überwachen einer erwarteten Maximalzahl von Prozessen kann unmittelbar darauf reagiert werden, wenn ein zusätzlicher, überzähliger Prozess gestartet wird. Dieser Prozess kann allgemein schädlich sein oder zusammen mit den erwarteten Prozessen die Belastung einer ausführenden Hardware (Computersystem) so weit erhöhen, dass die Ausführsicherheit eines oder mehrerer Prozesse gefährdet ist.
- Das Bestimmen der Anzahl auf dem Rechensystem laufender Prozesse kann einfach durchgeführt werden, viele Betriebssysteme bieten hierfür eine Schnittstelle oder bereits ein fertiges Werkzeug an. Bei einem Unix-Betriebssystem kann dies insbesondere das Systemprogramm ps („process status“) sein.
- Durch das Deaktivieren kann sich das Rechensystem an das Prinzip des „silent fail“ (in etwa: lautloses Versagen) halten, indem es bei Bekanntwerden eines Fehlers das Ausgeben von möglicherweise falschen Informationen, Bestimmungen, Berechnungen oder Steuersignalen durch einen der Prozesse verhindert. Die Arbeit des Rechensystems wird unmittelbar eingestellt um zu verhindern, dass durch falsche Ergebnisse weiterer Schaden angerichtet wird.
- In einer weiteren bevorzugten Ausführungsform werden Systemrechte der laufenden Prozesse bestimmt, die bestimmten Systemrechte werden mit vorbestimmten Systemrechen verglichen, es wird bestimmt, dass einer der laufenden Prozesse erweiterte Systemrechte erlangt hat, und das Rechensystem wird deaktiviert.
- Die Systemrechte können einfach auf entsprechende Weise wie die Anzahl der auf dem Rechensystem laufenden Prozesse bestimmt werden. Beispielsweise kann das Systemprogramm ps dazu verwendet werden, in Erfahrung zu bringen, auf welche Speicherbereiche ein angezeigter Prozess Schreibzugriff hat. Stimmt diese Angabe mit einem vorbestimmten Systemrecht, beispielsweise einer Aufstellung von rechtmäßig durch den Prozess beschreibbaren Speicherteilen, überein, so kann das Rechensystem ebenfalls deaktiviert werden.
- Das Deaktivieren kann auf unterschiedliche Weisen erfolgen. In einer ersten Variante umfasst das Deaktivieren das Rücksetzen des Rechensystems. Dadurch werden alle laufenden Prozesse beendet und können bei einem anschließenden, erneuten Hochfahren des Rechensystems neu gestartet werden. Ein fehlerhaft gestarteter Prozess oder ein Prozess, der erweiterte Systemrechte erlangt hat, kann so unschädlich gemacht werden.
- Das Rücksetzen kann das Ausführen einer Software-Rücksetzanforderung umfassen. Anders ausgedrückt kann das Verfahren ein Verarbeitungssignal absetzen, das beispielsweise von einem Betriebssystem des Rechensystems empfangen wird und das Rücksetzen des Rechensystems herbeiführt (Reset). Das Rücksetzen des Rechensystems per Software kann vorteilhafterweise den Einsatz zusätzlicher Hardware einsparen, wodurch Kosten bei Herstellung und Betrieb des Rechensystems verringert sein können. In einer anderen Ausführungsform kann auch eine Rücksetzanforderung in Hardware bewirkt werden, wie unten genauer beschrieben wird.
- Das Rechensystem kann eine Verarbeitungseinrichtung und einen Überwachungsschaltkreis umfassen, wobei das Deaktivieren durch den Überwachungsschaltkreis gesteuert wird. Die Sicherheit, mit der das Rücksetzen des Rechensystems ausgelöst wird, kann dadurch gesteigert sein.
- Allgemein ist bevorzugt, dass das Verfahren periodisch ausgeführt wird. Die Integrität des Rechensystems kann so fortlaufend sichergestellt sein.
- Der oben erwähnte Überwachungsschaltkreis kann insbesondere einen Wachhund-Zeitgeber („watchdog timer“) umfassen, der bei Ablaufen das Rechensystem deaktiviert, wobei der Zeitgeber auf einen vorbestimmten Wert gesetzt wird, wenn das Rechensystem nicht deaktiviert werden soll. Der Wachhund-Zeitgeber kann auf diese Weise sicher für ein Rücksetzen des Rechensystems sorgen, wenn, beispielsweise durch einen Fehler in einem der Prozesse, das oben beschriebene Verfahren versagt, beispielsweise weil die Anzahl oder Systemrechte der laufenden Prozesse nicht bestimmt werden können.
- In einer anderen Variante umfasst das Rechensystem eine Kommunikationsschnittstelle, wobei das Deaktivieren ein Abschalten der Kommunikationsschnittstelle umfasst. Dadurch kann unmittelbar verhindert werden, dass einer der Prozesse eine unerwünschte Außenwirkung mittels einer Nachricht über die Kommunikationsschnittstelle veranlasst. Durch das Abschalten der Kommunikationsschnittstelle kann ein Teil des Rechensystems faktisch deaktiviert werden, ohne andere Teile des Rechensystems funktionsunfähig zu machen.
- In einer weiteren Ausführungsform sind einem der Prozesse mehrere leichtgewichtige Prozesse (Threads) zugeordnet, wobei das Rechensystem deaktiviert wird, wenn eine Anzahl Threads eine erwartete maximale Anzahl übersteigt.
- Dadurch kann verhindert werden, dass ein Prozess mehr Threads startet als beabsichtigt. Dadurch kann verhindert werden, dass mehr Threads gestartet werden als für einen sicheren Betrieb des Rechensystems toleriert werden kann.
- Ein Thread unterscheidet sich im Allgemeinen dadurch von einem Prozess, dass mehrere Threads, die zum gleichen Prozess gehören, gegenseitigen Zugriff auf Variablen oder Speicherbereiche haben können, ohne dass hierfür ein spezieller Mechanismus zur Interprozesskommunikation wie ein Semaphor oder ein mehrfach genutzter Speicherbereich aktiv angefordert werden muss.
- Ein Computerprogrammprodukt umfasst Programmcodemittel zur Durchführung des oben beschriebenen Verfahrens, wenn das Computerprogrammprodukt auf einer Verarbeitungseinrichtung, insbesondere dem Rechensystem, abläuft oder auf einem computerlesbaren Datenträger gespeichert ist.
- Ein Rechensystem ist dazu eingerichtet, dynamische Prozesse und das oben beschriebene Verfahren auszuführen. Dadurch kann das Rechensystem einerseits dazu verwendet werden, dynamische Prozesse auszuführen, die beispielsweise von einem Drittanbieter implementiert sein können, und andererseits die Ausführsicherheit eines ablaufenden Prozesses zu verbessern bzw. sicherzustellen.
- Kurze Beschreibung der Figuren
- Die Erfindung wird nun mit Bezug auf die beigefügten Figuren genauer beschrieben, wobei
-
1 ein Rechensystem, insbesondere zur Anwendung an Bord eines Kraftfahrzeugs; -
2 eine schematische Darstellung eines Prozesses, der in einem Betriebssystem auf einem Rechensystem abläuft; -
3 eine schematische Darstellung eines Rechensystems mit einem externen Wachhund-Zeitgeber; und -
4 ein Ablaufdiagramm eines Verfahrens zur Steuerung eines Rechensystems
darstellt. -
1 zeigt ein Rechensystem100 , insbesondere zur Anwendung an Bord eines Kraftfahrzeugs. Das Rechensystem100 ist dazu eingerichtet, eine Steueraufgabe an Bord des Kraftfahrzeugs auszuführen. Das Rechensystem100 umfasst bevorzugterweise ein Steuergerät105 , das bevorzugterweise mit einem oder mehreren Sensoren110 verbunden ist und weiter bevorzugt eine Kommunikationsschnittstelle115 zur Kommunikation mit einer anderen Einrichtung wie einem weiteren Steuergerät105 oder einer Benutzerschnittstelle aufweist. Die Kommunikation mit der Kommunikationsschnittstelle115 und/oder den Sensoren110 kann beispielsweise mittels eines Netzwerks120 erfolgen. Als ausführende Einrichtung umfasst das Steuergerät105 eine oder mehrere Verarbeitungseinrichtungen125 , die jeweils durch einen programmierbaren Mikrocomputer oder eine CPU mit einem oder mehreren Kernen realisiert sein kann. Auf jeder Verarbeitungseinrichtung125 läuft bevorzugterweise ein Betriebssystem130 , wobei sich auch ein Betriebssystem130 über mehrere Verarbeitungseinrichtungen125 erstrecken kann. - Das Rechensystem
100 ist dazu eingerichtet, dynamisch Prozesse135 auszuführen. Die Prozesse135 können dynamisch gestartet und beendet werden, wobei das Starten durch das Betriebssystem130 , durch einen anderen Prozess135 oder auf der Basis eines beispielsweise zeitlichen Ereignisses erfolgen kann. Jeder Prozess135 kann einen oder mehrere leichtgewichtige Prozesse (Threads)140 umfassen. Dabei laufen alle Threads140 eines Prozesses135 üblicherweise als User-Threads in der gleichen Umgebung und mit den gleichen Betriebsmitteln, die dem übergeordneten Prozess135 zugeordnet sind. - Ein Prozess
135 kann insbesondere eine Steuerungsaufgabe wahrnehmen, wobei eine Umgebungsvariable mittels eines Sensors110 abgetastet, das Ergebnis verarbeitet und mittels der Kommunikationsschnittstelle115 ein Aktor betätigt werden kann, der üblicherweise direkt oder mittelbar auf den Sensor110 zurückwirkt. - Um das Ausführen von Prozessen
135 auf dem Rechensystem100 zu ermöglichen, die zu einem Zeitpunkt der Konzeption des Rechensystems100 noch nicht bekannt waren, sich seit der Konzeption verändert (weiterentwickelt) haben oder erst später auf dem Rechensystem100 installiert wurden, wird vorgeschlagen, nicht nur ein Betriebssystem130 zu verwenden, das die Ausführung dynamischer Prozesse135 erlaubt, sondern zusätzlich dafür zu sorgen, dass nicht übermäßig viele Prozesse135 auf dem Rechensystem100 laufen. -
2 zeigt eine schematische Darstellung eines Prozesses135 , der in einem Betriebssystem130 auf einem Rechensystem100 wie dem von1 abläuft. Das Betriebssystem130 stellt eine Überwachungsfunktion205 bereit, die dazu eingerichtet ist, Informationen über Prozesse135 , die auf dem Rechensystem100 ablaufen oder zum Ablaufen bereitstehen, zu liefern. Bei einem Unix-artigen Betriebssystem130 kann die Überwachungsfunktion205 beispielsweise das Systemprogramm ps umfassen, das die gewünschten Informationen von einem Dateisystem210 des Betriebssystems130 abfragen kann. Unter Unix weist ein Prozess135 Eigenschaften einer Datei auf, die über das Dateisystem210 verwaltet werden können. Bei anderen Betriebssystemen130 kann ein anderer Mechanismus eingesetzt werden. - Es wird vorgeschlagen, die Überwachungsfunktion
205 dazu zu verwenden, mittels eines Verfahrens215 Informationen über laufende Prozesse135 oder Threads140 zu erlangen und zu analysieren. Wird dabei eine Anomalie festgestellt, so kann eine Maßnahme eingeleitet werden, die das Versenden eines Signals220 umfassen kann, das dafür sorgt, dass möglichst alle Prozesse135 , die auf dem Rechensystem100 ablaufen, möglichst sofort beendet werden, inhibiert werden oder ihre Kommunikation, insbesondere zu einem Aktor, unterbrochen wird. -
3 zeigt eine schematische Darstellung eines Rechensystems100 mit einem externen Wachhund-Zeitgeber („watchdog“)305 . Wird durch das Verfahren215 bestimmt, dass eine Unregelmäßigkeit an einem der Prozesse135 oder einem der Threads140 vorliegt, so kann eine interne Aktion durchgeführt werden, die rein softwarebasiert ist, oder eine externe Aktion, die den Wachhund-Zeitgeber305 erfordert. Beide Aktionen können das Ausgeben eines Signals220 umfassen, um entweder das Rechensystem100 rückzusetzen (Reset)100 oder eine Unterbrechung einer Kommunikation mittels der Kommunikationsschnittstelle115 zu bewirken. Wird der Wachhund-Zeitgeber305 nicht verwendet, so kann über das Verfahren215 selbst oder über das Betriebssystem130 das Rücksetzen oder Sperren der Kommunikationsschnittstelle115 ausgelöst werden. - Andererseits können beide Funktionalitäten auch unabhängig voneinander über den Wachhund-Zeitgeber
305 bewirkt werden. Hierbei ist besonders von Vorteil, dass der Wachhund-Zeitgeber305 dazu angesteuert werden kann, die beschriebene Maßnahme einzuleiten, wenn ein komplementäres Signal220 , das besagt, dass keine Anomalie festgestellt wurde, länger als eine vorbestimmte Zeit ausbleibt. Das Verfahren215 wird bevorzugterweise periodisch durchgeführt und immer dann, wenn keine Anomalie bestimmt wurde, wird der Wachhund-Zeitgeber305 auf eine Zeit gesetzt, die der Periodendauer der Ausführung des Verfahrens215 entspricht oder sie übersteigt. Beispielsweise kann das Verfahren215 sekündlich durchgeführt werden und der Wachhund-Zeitgeber305 immer dann, wenn keine Anomalie festgestellt wurde, auf eine Laufzeit von ≥ 1 Sekunde eingestellt werden. Kann das Verfahren215 einmal nicht ausgeführt werden, beispielsweise weil seine Ausführung länger als eine Sekunde in Anspruch nimmt oder wichtige Systemressourcen des Rechensystems100 nicht verfügbar sind, so läuft der Wachhund-Zeitgeber305 ab und bewirkt das Unterbrechen der Kommunikation über die Kommunikationsschnittstelle115 oder ein Rücksetzen des Rechensystems100 bzw. des Steuergeräts105 oder auch nur einer der Verarbeitungseinrichtungen125 . -
4 zeigt ein Ablaufdiagramm eines Verfahrens400 zur Steuerung eines Rechensystems100 wie dem einer der vorangehenden Figuren. Das Verfahren400 kann insbesondere dem Verfahren215 von2 entsprechen. In der folgenden Beschreibung wird von einer Anzahl Prozessen135 ausgegangen, dabei ist das Verfahren400 in entsprechender Weise auch für Threads140 geeignet. Das Verfahren400 wird bevorzugterweise periodisch ausgeführt, beispielsweise gesteuert durch einen Zeitgeber. - In einem ersten Schritt
405 wird eine maximale Anzahl Prozesse135 bestimmt, von der erwartet wird, dass sie auf dem Rechensystem100 (gleichzeitig) ablaufen. Diese maximale Anzahl kann fest vorgegeben sein und beispielsweise nur dann verändert werden, wenn ein neuer Prozess135 auf dem Rechensystem100 installiert bzw. nachgerüstet wird. In einer anderen Ausführungsform kann die maximale Anzahl Prozesse135 auch dynamisch sein, indem vor dem Starten eines Prozesses135 eine entsprechende Nachricht beispielsweise an das Betriebssystem130 geschickt wird, um die maximale Anzahl Prozesse135 entsprechend anzupassen. - In einem Schritt
410 wird die aktuelle Anzahl Prozesse135 bestimmt. Dazu kann insbesondere die Überwachungsfunktion205 verwendet werden. In einer weiteren Ausführungsform können auch weitere Informationen über die Prozesse135 abgefragt werden, insbesondere die vorliegenden Systemberechtigungen der laufenden Prozesse135 . - In einem Schritt
415 werden die gewonnenen Informationen daraufhin untersucht, ob eine Unregelmäßigkeit vorliegt. Insbesondere kann überprüft werden, ob die aktuelle Anzahl Prozesse135 die bestimmte maximale Anzahl Prozesse135 übersteigt. Ist dies der Fall, so kann das Verfahren400 mit einem Schritt435 fortfahren, der unten noch genauer beschrieben wird. - Andernfalls können in einem Schritt
420 vorbestimmte Systemrechte eines oder mehrerer Prozesse135 bestimmt werden. In einem Schritt425 können dann, ähnlich wie in Schritt410 , Informationen über Systemrechte von Prozessen135 auf dem Rechensystem100 bestimmt werden. In einem Schritt430 werden die vorbestimmten und die tatsächlichen Systemrechte miteinander verglichen und der Schritt435 kann angesteuert werden, falls die tatsächlichen Systemrechte eines Prozesses135 die vorbestimmten Systemrechte übersteigen. Andernfalls kann das Verfahren400 zum Schritt405 zurückkehren und erneut durchlaufen. - Im Schritt
435 wird optional eine Kommunikation mittels der Kommunikationsschnittstelle115 unterbunden. Dazu kann die Kommunikationsschnittstelle115 abgeschaltet werden oder ein Teil des Betriebssystems130 , das zur Benutzung der Kommunikationsschnittstelle115 erforderlich ist, kann den Zugriff verweigern. - Zusätzlich oder alternativ kann in einem Schritt
440 ein Rücksetzen des Rechensystems100 veranlasst werden. Die Schritte435 und440 können unabhängig voneinander jeweils per Software oder per Hardware, insbesondere mittels des Wachhund-Zeitgebers305 , veranlasst werden, wie oben ausgeführt ist.
Claims (11)
- Verfahren (
400 ) zum Überwachen eines Rechensystems (100 ), das zum dynamischen Ausführen von Prozessen (135 ) eingerichtet ist, wobei das Verfahren (400 ) folgende Schritte umfasst: – Bestimmen (410 ) einer Anzahl auf dem Rechensystem (100 ) laufender Prozesse (135 ); – Bestimmen (405 ) einer maximal erwarteten Anzahl Prozesse (135 ); – Bestimmen (415 ), dass mehr Prozesse (135 ) laufen als erwartet; und – Deaktivieren (435 ,440 ) des Rechensystems (100 ). - Verfahren (
400 ) nach Anspruch 1, ferner folgende Schritte umfassend: – Bestimmen (425 ) von Systemrechten der laufenden Prozesse (135 ); – Vergleichen (430 ) der bestimmten Systemrechte mit vorbestimmten Systemrechten; – Bestimmen (430 ), dass einer der laufenden Prozesse (135 ) erweiterte Systemrechte erlangt hat; und – Deaktivieren (435 ,440 ) des Rechensystems (100 ). - Verfahren (
400 ) nach Anspruch 1 oder 2, wobei das Deaktivieren das Rücksetzen (440 ) des Rechensystems (100 ) umfasst. - Verfahren (
400 ) nach Anspruch 3, wobei das Rücksetzen (440 ) das Ausführen einer Software-Rücksetzanforderung umfasst. - Verfahren (
400 ) nach Anspruch 3, wobei das Rechensystem (100 ) eine Verarbeitungseinrichtung (125 ) und einen Überwachungsschaltkreis (305 ) umfasst und das Deaktivieren (435 ,440 ) durch den Überwachungsschaltkreis (305 ) gesteuert wird. - Verfahren (
400 ) nach einem der vorangehenden Ansprüche, wobei das Verfahren (400 ) periodisch ausgeführt wird - Verfahren (
400 ) nach Ansprüchen 5 und 6, wobei der Überwachungsschaltkreis einen Wachhund-Zeitgeber (305 ) umfasst, der bei Ablaufen das Rechensystem (100 ) deaktiviert (435 ,440 ), wobei der Zeitgeber (305 ) auf einen vorbestimmten Wert gesetzt wird, wenn das Rechensystem (100 ) nicht deaktiviert werden soll. - Verfahren (
400 ) nach einem der vorangehenden Ansprüche, wobei das Rechensystem (100 ) eine Kommunikationsschnittstelle (115 ) umfasst und das Deaktivieren ein Abschalten (435 ) der Kommunikationsschnittstelle (115 ) umfasst. - Verfahren (
400 ) nach einem der vorangehenden Ansprüche, wobei einem der Prozesse (135 ) mehrere leichtgewichtige Prozesse (140 ) zugeordnet sind und das Rechensystem (100 ) deaktiviert wird, wenn eine Anzahl leichtgewichtiger Prozesse (140 ) eine erwartete maximale Anzahl leichtgewichtiger Prozesse (140 ) übersteigt. - Computerprogrammprodukt mit Programmcodemitteln zur Durchführung des Verfahrens (
400 ) nach einem der vorangehenden Ansprüche, wenn das Computerprogrammprodukt auf einer Verarbeitungseinrichtung (125 ) abläuft oder auf einem computerlesbaren Datenträger gespeichert ist. - Rechensystem (
100 ), das dazu eingerichtet ist, dynamische Prozesse (135 ) und ein Verfahren (400 ) nach einem der Ansprüche 1 bis 9 auszuführen.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102016203965.2A DE102016203965A1 (de) | 2016-03-10 | 2016-03-10 | Überwachung eines Rechensystems |
US15/447,495 US10282240B2 (en) | 2016-03-10 | 2017-03-02 | Monitoring of a processing system |
CN201710135235.5A CN107179980B (zh) | 2016-03-10 | 2017-03-08 | 用于监视计算系统的方法和相应的计算系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102016203965.2A DE102016203965A1 (de) | 2016-03-10 | 2016-03-10 | Überwachung eines Rechensystems |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102016203965A1 true DE102016203965A1 (de) | 2017-09-14 |
Family
ID=59700324
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102016203965.2A Pending DE102016203965A1 (de) | 2016-03-10 | 2016-03-10 | Überwachung eines Rechensystems |
Country Status (3)
Country | Link |
---|---|
US (1) | US10282240B2 (de) |
CN (1) | CN107179980B (de) |
DE (1) | DE102016203965A1 (de) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11425149B2 (en) | 2019-01-31 | 2022-08-23 | Rapid7, Inc. | Multi-baseline unsupervised security-incident and network behavioral anomaly detection in cloud-based compute environments |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6594774B1 (en) * | 1999-09-07 | 2003-07-15 | Microsoft Corporation | Method and apparatus for monitoring computer system objects to improve system reliability |
US7080379B2 (en) * | 2002-06-20 | 2006-07-18 | International Business Machines Corporation | Multiprocessor load balancing system for prioritizing threads and assigning threads into one of a plurality of run queues based on a priority band and a current load of the run queue |
US20050240699A1 (en) * | 2004-03-31 | 2005-10-27 | Yoder Michael E | Safe process deactivation |
US20050235136A1 (en) * | 2004-04-16 | 2005-10-20 | Lucent Technologies Inc. | Methods and systems for thread monitoring |
US8332826B2 (en) * | 2005-05-26 | 2012-12-11 | United Parcel Service Of America, Inc. | Software process monitor |
US7730248B2 (en) * | 2007-12-13 | 2010-06-01 | Texas Instruments Incorporated | Interrupt morphing and configuration, circuits, systems and processes |
US8365177B2 (en) * | 2009-01-20 | 2013-01-29 | Oracle International Corporation | Dynamically monitoring and rebalancing resource allocation of monitored processes based on execution rates of measuring processes at multiple priority levels |
IT1395644B1 (it) * | 2009-05-27 | 2012-10-16 | Bitmanufaktur Gmbh | Dispositivo hardware wireless per il rilevamento di relazioni di distanza, e sistema di monitoraggio di relazioni di distanza tra dispositivi hardware wireless |
US8255529B2 (en) * | 2010-02-26 | 2012-08-28 | Red Hat, Inc. | Methods and systems for providing deployment architectures in cloud computing environments |
US8572229B2 (en) * | 2010-05-28 | 2013-10-29 | Microsoft Corporation | Distributed computing |
US8990830B2 (en) * | 2011-07-19 | 2015-03-24 | International Business Machines Corporation | Thread management in parallel processes |
JP5900061B2 (ja) * | 2012-03-19 | 2016-04-06 | 富士通株式会社 | 試験方法、試験装置及びプログラム |
CN103793667A (zh) * | 2012-11-03 | 2014-05-14 | 上海欧朋软件有限公司 | 服务器关机方法 |
US9135117B2 (en) * | 2012-12-10 | 2015-09-15 | International Business Machines Corporation | Recovery for long running multithreaded processes |
EP2979211B1 (de) * | 2013-03-27 | 2020-09-09 | Irdeto B.V. | Schutz einer softwareanwendung |
US9218223B2 (en) * | 2013-08-13 | 2015-12-22 | Qualcomm Incorporated | Barrier synchronization with dynamic width calculation |
US9515965B2 (en) * | 2013-09-18 | 2016-12-06 | International Business Machines Corporation | Managing data paths in an operator graph |
CN104699530B (zh) * | 2013-12-04 | 2018-12-11 | 腾讯科技(深圳)有限公司 | 一种进程控制方法、装置及智能终端设备 |
US11093235B2 (en) * | 2015-06-05 | 2021-08-17 | Shell Oil Company | System and method for replacing a live control/estimation application with a staged application |
CN105116990B (zh) * | 2015-08-14 | 2018-10-23 | 董宇文 | 一种智能手机运行环境自动优化及节电方法和系统 |
-
2016
- 2016-03-10 DE DE102016203965.2A patent/DE102016203965A1/de active Pending
-
2017
- 2017-03-02 US US15/447,495 patent/US10282240B2/en active Active
- 2017-03-08 CN CN201710135235.5A patent/CN107179980B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107179980B (zh) | 2022-06-24 |
US10282240B2 (en) | 2019-05-07 |
CN107179980A (zh) | 2017-09-19 |
US20170262325A1 (en) | 2017-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102011005209B4 (de) | Programmanweisungsgesteuerte Instruktionsflusskontrolle | |
DE102014102582A1 (de) | Fehlertolerantes Steuerungssystem | |
DE102013015172A1 (de) | Challenge-and-response-Verfahren für Sicherheitssystem unter Verwendung eines modifizierten Watchdog-Zeitgebers | |
EP1854007A2 (de) | Verfahren, betriebssysem und rechengerät zum abarbeiten eines computerprogramms | |
EP3273314B1 (de) | Speicherprogrammierbare steuerung mit managementsystem | |
EP3841438B1 (de) | Automatisierungssystem zur überwachung eines sicherheitskritischen prozesses | |
DE102016108666A1 (de) | Zeitgeber für Peripheriefunktionswächter | |
EP1262856B1 (de) | Programmgesteuerte Einheit | |
EP3559796B1 (de) | Verfahren zum erstellen einer datensicherung einer virtualisierten automatisierungslösung, computerprogramm mit einer implementation des verfahrens und nach dem verfahren arbeitender virtualisierungsserver | |
DE102005009813B4 (de) | Elektronisches Steuerungssystem und -Verfahren mit Microcomputerüberwachungs-Unterdrückungsfunktion | |
DE102015202326A1 (de) | Verfahren zum Betreiben einer Datenverarbeitungseinheit eines Fahrerassistenzsystems und Datenverarbeitungseinheit | |
WO2006045754A1 (de) | Verfahren, betriebssystem und rechengerät zum abarbeiten eines computerprogramms | |
DE102016203965A1 (de) | Überwachung eines Rechensystems | |
DE102015218898A1 (de) | Verfahren zur redundanten Verarbeitung von Daten | |
DE102015002717A1 (de) | Numerische Steuerung | |
WO2006136189A1 (de) | Verfahren und vorrichtung zum überwachen eines unerlaubten speicherzugriffs einer rechenvorrichtung, insbesondere in einem kraftfahrzeug | |
WO2020048756A1 (de) | Verfahren zum installieren eines programmcodepakets in ein gerät sowie gerät und kraftfahrzeug | |
DE102020116959A1 (de) | Watchdog-schaltung, schaltung, system-auf-chip, verfahren zum betrieb einer watchdog-schaltung, verfahren zum betrieb einer schaltung und verfahren zum betrieb eines systems-auf-chip | |
DE112018002612T5 (de) | Fahrzeugsteuervorrichtung | |
DE102009000874A1 (de) | Verfahren zur Verbesserung der Analysierbarkeit von Softwarefehlern in einem Mikrocontroller | |
DE102016222695A1 (de) | Verfahren zur automatischen und dynamischen Re-Konfiguration einer Speicherschutz-Einheit sowie ein Mikrocontroller mit einer Speicherschutz-Einheit | |
DE102016217762A1 (de) | Überwachung von sicherheitsrelevanten Funktionen durch eine nicht sichere Recheneinheit | |
DE102019006412A1 (de) | Numerische steuerung | |
DE102023125501A1 (de) | Steuervorrichtung und steuerverfahren | |
DE102004051967A1 (de) | Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed |