DE69316232T2 - System zum betrieb von anwendungs-software in einer sicherheitskritischen umgebung - Google Patents
System zum betrieb von anwendungs-software in einer sicherheitskritischen umgebungInfo
- Publication number
- DE69316232T2 DE69316232T2 DE69316232T DE69316232T DE69316232T2 DE 69316232 T2 DE69316232 T2 DE 69316232T2 DE 69316232 T DE69316232 T DE 69316232T DE 69316232 T DE69316232 T DE 69316232T DE 69316232 T2 DE69316232 T2 DE 69316232T2
- Authority
- DE
- Germany
- Prior art keywords
- application software
- safety
- critical
- data
- running
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 claims abstract description 22
- 238000012545 processing Methods 0.000 claims abstract description 20
- 230000006870 function Effects 0.000 claims description 37
- 230000015654 memory Effects 0.000 claims description 27
- 238000012360 testing method Methods 0.000 claims description 24
- 125000004122 cyclic group Chemical group 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000012544 monitoring process Methods 0.000 claims description 5
- 230000008878 coupling Effects 0.000 claims 4
- 238000010168 coupling process Methods 0.000 claims 4
- 238000005859 coupling reaction Methods 0.000 claims 4
- 230000002411 adverse Effects 0.000 claims 2
- 230000000694 effects Effects 0.000 abstract description 12
- 230000009471 action Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000010200 validation analysis Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000013502 data validation Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 208000027418 Wounds and injury Diseases 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 208000014674 injury Diseases 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 208000028571 Occupational disease Diseases 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 229940079593 drug Drugs 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- 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/0796—Safety measures, i.e. ensuring safe condition in the event of error, e.g. for controlling element
-
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
- G06F11/106—Correcting systematically all correctable errors, i.e. scrubbing
-
- 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/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
-
- 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/865—Monitoring of software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
- Storage Device Security (AREA)
- Safety Devices In Control Systems (AREA)
- Regulation And Control Of Combustion (AREA)
Description
- Die vorliegende Erfindung bezieht sich auf ein System und ein Verfahren zum Betreiben von Anwendungs-Software in einer sicherheitskritischen Umgebung. Unter einer sicherheitskritischen Umgebung versteht man dabei eine Umgebung, in der Computer-Software Aktivitäten (Prozesse, Funktionen usw.) ablaufen, deren Fehler, wie zum Beispiel unbeabsichtigte oder unerlaubte Ereignisse, vergebliche Startversuche von Ereignissen, fehlerhafte Werte oder unentdeckte Fehler in der Hardware, potentielle Gefahren oder den Verlust der Vorhersagbarkeit der vom System generierten Resultate zur Folge haben können. Eine sicherheitskritische Umgebung ist notwendig für sicherheitskritische Komponenten von Computer-Software, bei denen eine unbeabsichtigte Aktion möglicherweise direkt verantwortlich für einen Todesfall, eine Verletzung, eine Berufskrankheit oder eine bedeutende Operation sein kann, oder bei denen die Resultate einer durch den Computer durchgeführten Aktion als verläßliche Grundlage für Entscheidungen verwendet werden, die einen Todesfall, eine Verletzung oder eine bedeutende Aktion verursachen könnten. Eine sicherheitskritische Umgebung ist eine verbreitete Menge von Standards und Vereinbarungen und wird in militärischen Spezifikationen wie zum Beispiel MIL-STD-8828 behandelt, die gemeinsam mit Software agiert, die unter DOD-STD-2167 und DOD-STD-2168 entwickelt ist. Außerdem wird die Möglichkeit, die Operationen des Computerprogrammes zu inspizieren und zu prüfen, nachdem das Programm bereits vollständig ausgeführt wurde, um den korrekten Ablauf zu gewährleisten, zu einem Teil der sicherheitskritischen Umgebung.
- Bisher wurden nur speziell verwendbare Computer entworfen, deren in das System eingebaute Hardware und Firmware ganz speziell so hergestellt wurden, daß alle Anforderungen bezüglich der Leistung, des Tests und der Reporterstellung für eine sicherheitskritische Umgebung zum Betrieb von Anwendungssoftware erfüllt sind.
- Da jedoch staatliche Behörden, wie zum Beispiel das Ministerium für Nahrungs- und Arzneimittel, existierenden medizinischen Systemen sicherheitskritische Standards auferlegen und dies mit der Forderung verbinden, den Entwicklungsprozeß der Software und die korrekte Arbeitsweise der Software zu validieren, wenn sie in einer sicherheitskritischen Operation benutzt wird, entsteht die Nachfrage nach einer sicherheitskritischen Umgebung eingebettet in für allgemeine Zwecke entwickelte datenverarbeitende Systeme, wie etwa Systeme die unter kommerziellen Standard- Betriebssytemen, wie zum Beispiel DOS, System 7 für Macintosh, Windows, OS/2 usw. betrieben werden. Diese sicherheitskritische Umgebung wäre ebenso verantwortlich für die Überwachung und die Verifikation der korrekten Arbeitsweise, um damit einen offensichtlichen Beweis für das Funktionieren des Anwendungssystems zu erlauben.
- Der hauptsächliche Gegenstand der vorliegenden Erfindung ist es, eine sicherheitskritische Umgebung in einem datenverarbeitenden System zur Verfügung zu stellen, das normalerweise nicht dazu in der Lage ist, eine solche sicherheitskritische Umgebung zur Verfügung zu stellen, und das mit einem industriellen Standardbetriebssystem für einen Personal Computer betrieben wird.
- Diese und andere Aufgaben der vorliegenden Erfindung werden, wie in den beigefügten Patentansprüchen beschrieben, gemäß der vorliegenden Erfindung mittels einer intermediären Shell erreicht. Diese wird über ein auf Personal Computern genutztes Standardbetriebssystem, wie zum Beispiel DOS, das System 7 Betriebssystem für den Macintosh, Windows, 95/2 usw., gelegt. Die Funktion der intermediären Shell ist dabei, eine sicherheitskritische Umgebung für einen Personal Computer, der normalerweise kein sicherheitskritisches System darstellt, zu emulieren und als ein sicherheitskritisches Instrument die Integrität der Ausführung zu überwachen. Die Shell interagiert mit dem Betriebssystem um alle Systemfunktionen im Hinblick auf sicherheitskritische Abweichungen im Ablauf zu beobachten, und sie korrigiert diese Abweichungen in Echtzeit oder sie hindert das System am Fortfahren unter gleichzeitiger Verwendung einer "on-the-spot" (sofort aktivierten) Berichterstattungsfunktion. Die Shell hat außerdem die Funktion mit der Anwendungssoftware zu interagieren, so daß die Anwendungssoftware nicht mit dem normalen Betriebssystem interagieren muß. Somit stellt die intermediäre Shell eine standardisierte und ständige Betriebsumgebung für die Anwendungssoftware dar, die auf inh-rente Art und Weise den Anforderungen einer sicherheitskritischen Umgebung entspricht.
- Entsprechend der vorliegenden Erfindung liegt die intermediäre Shell über dem Betriebssystem, um dort ein sicherheitskritisches datenverarbeitendes System zu emulieren. Für Anwendungssoftware, die allgemein übliche Datenbasisoperationen und -strukturen und gebräuchliche Fähigkeiten zum Ansteuern des Bildschirms unterstützt, definiert die Shell vorzugsweise eine einheitliche Maschine.
- Einige der Charakteristiken des sicherheitskritischen Betriebs, die von der intermediären Shell ausgeführt werden, sind das Durchführen von Aktionen wie das Prüfen der Integrität der Datenbasis mit jedem Lesen und Schreiben in einer Datenbasis, die Überprüfung von Bereichszulässigkeiten, die ständige Überprüfung der Hardware und die Aufzeichnung von Problemen. Die intermediäre Shell führt außerdem die sicherheitskritischen Charakteristiken bezüglich der Redundanz aus. Zur Anwendung kommen dabei doppelte Vergleiche von Kopien sämtlicher Daten oder äquivalente Techniken, eine Validierung der Informationen in der Datenbasis durch zyklische Tests auf Redundanz für alle Datenelemente, eine Validierung der Hardware und eine variable Validierung der Daten einschließlich der Überprüfung der Bereiche und der Formate.
- Ein weiteres wichtiges Merkmal der vorliegenden Erfindung ist die Tatsache, daß die Shell die Anwendungssoftware im Vordergrund betreibt und die Hardware und die Integrität der Datenbasis im Hintergrund überprüft, so daß dies für den Benutzer nicht sichtbar ist.
- Diese und andere Merkmale und Vorteile der vorliegenden Erfindung werden aus der detaillierten Beschreibung der Erfindung zusammen mit den beigefügten Zeichnungen ersichtlich. Es zeigen:
- Figur 1 ein Blockdiagramm des Systems entsprechend der vorliegenden Erfindung;
- Figur 2 ein Blockdiagramm zur Interaktion zwischen dem Betriebssystem, der Shell und der Anwendungssoftware;
- Figur 3 ein Blockdiagramm der Funktionen der intermediären Shell aus den Figuren 1 und 2.
- Wie in Figur 1 abgebildet, beinhaltet ein System zum Betreiben von Anwendungssoftware in einem Personal Computer typischerweise eine Tastatur 1, ein Display 2, wie zum Beispiel einen Monitor, Plattenlaufwerke 3, eine primäre Speichereinheit mit Schreib- und Lesezugriff 4, typischerweise realisiert mittels einer Festplatte, eine Zentraleinheit (CPU) 5, wie zum Beispiel einen Intel 386 Prozessor, und einen Arbeitsspeicher (RAM) 6. Das Betriebssystem 7 kann normalerweise in der primären Speichereinheit 4 gespeichert oder über ein Plattenlaufwerk 3 geladen werden, oder es kann ein Teil der Firmware des Systems und in einem nur lesbaren Speicher-ROM als Teil der Zentraleinheit gespeichert sein. In Figur list das Betriebssystem dargestellt als wäre es in den Arbeitsspeicher 6 geladen, und das Betriebssystem funktioniert so, daß es die Interaktionen zwischen Tastatur, Anzeige, Plattenlaufwerken und Hauptspeicher steuert. Für Personal Computer sind viele Betriebssysteme verfügbar, unter anderem DOS, OS/2, Windows und das System 7 Betriebssystem für den Macintosh Computer.
- In einem typischen Computer wird die Anwendungssoftware 9 in den Arbeitsspeicher geladen, von wo sie mit dem Betriebssystem interagiert um die spezielle Anwendung auszuführen. Konventionelle Personal Computer stellen jedoch keine sicherheitskritische Umgebung in Übereinstimmung mit der militärischen Spezifikation MIL-STD-882B bereit.
- Deshalb wird durch die vorliegende Erfindung einer intermediäre Shell 8 zur Verfügung gestellt, die vorzugsweise aus dem Hauptspeicher in den Arbeitsspeicher geladen wird oder aber in einem nur lesbaren Speicher ROM als Teil der Zentraleinheit 5 enthalten ist und die das Betriebssystem 7 überlagert, um mit dem Betriebssystem zu interagieren, und die eine sicherheitskritische Umgebung für die Anwendungssoftware 9, die einzig und allein mit der Shell 8 interagiert, emuliert.
- Handelt es sich bei der Anwendungssoftware beispielsweise um eine medizinische Software, die diagnostische Schlüsse aus eingegebenen Daten zieht, so wird die Anwendungssoftware einzig und allein mit der Shell 8 interagieren, die wiederum mit dem Betriebssystem 7 interagiert und alle sicherheitskritischen Charakteristiken bereitstellt, die für die Anwendungssoftware 9 erforderlich sind.
- Die Funktionen der intermediären Shell 8 sind im Blockdiagramm von Figur 3 dargestellt. Wie darin gezeigt, besteht die Shell aus diversen funktionalen Blöcken, die für die Emulation der sicherheitskritischen Umgebung mittels Interaktion mit dem Betriebssystem sorgen.
- Im Speziellen besitzt die Shell eine Schnittstelle für benutzerdefinierte Anwendungen, die mit der Anwendungssoftware interagiert. Die Shell stellt die einzige Interaktion mit der Anwendungssoftware während ihrer Anwendung dar. Die Schnittstelle 10 für benutzerdefinierte Anwendungen besitzt eine Einheit zum Selbsttest, die dafür sorgt, daß das korrekte Arbeiten der Shell sichergestellt ist und daß Bereichsüberprüfungen und Programmüberprüfungen 12 für die Anwendungssoftware durchgeführt werden, um deren Integrität zu überprüfen. Die Schnittstelle für benutzerdefinierte Anwendungen operiert im Vordergrund, während sämtliche Funktionen der sicherheitskritischen Umgebung im Hintergrund ausgeführt werden, so daß sie für den Benutzer nicht sichtbar sind.
- Die Schnittstelle 10 für benutzerdefinierte Anwendungen interagiert mit einer Einheit 13 zur Speicherverwaltung, mit einer Schnittstelle für Dateidaten 14 und einer Schnittstelle 15 für die Präsentation von Daten auf dem Bildschirm sowie einer Schnittstelle 20 für die Ressourcen.
- Die Schnittstelle für die Ressourcen steuert ein mathematisches Paket, das sicherstellt, daß die Genauigkeit des Systems für die spezielle Anwendung und für die Anforderungen der sicherheitskritischen Umgebung ausreichend ist. Deshalb kann das mathematische Paket 21 dort, wo typischerweise 8 Bits Genauigkeit üblich sind, erforderlichenfalls bis zu 32 Bits oder mehr Genauigkeit zur Verfügung stellen. Mit der Einheit 22 zur Meldung von Fehlern, die einen "on-the-spot" (sofort aktivierten) Report für jeden Fehler bereitstellt, der von der Shell, die die sicherheitskritische Umgebung emuliert, entdeckt wird. Die Einheit 23 zur Protokollführung des Betriebs zeichnet einen Datensatz bestehend aus allen Überprüfungen, die von der Shell durchgeführt werden, auf. Auf diesen kann zu einem späteren Zeitpunkt vom Speicher aus zugegriffen werden. Schließlich agiert die Einheit 24 zur Fehlerbeseitigung dahingehend, daß sie versucht, Fehler zu beseitigen, wenn diese von der Shell erkannt wurden.
- Die Shell beinhaltet auch die Schnittstelle 17 für die Ein- bzw. Ausgabe von bzw. in Dateien, die mit dem Betriebssystem interagiert, um Daten an den Speicher zu senden und von dort zu empfangen. Die Einheit 16 für die Validierung der Daten führt die doppelten Vergleiche für die Kopien bei jeder Schreibe- und Leseoperation im Speicher durch. Die Schnittstelle 18 für die Steuerung des Bildschirms interagiert ebenfalls mit dem Betriebssystem und überwacht alle Daten, die zum Bildschirm oder zur Anzeige geschickt werden, um sicherzustellen, daß die Anzeige im Hinblick auf die Bedingungen der sicherheitskritischen Umgebung korrekt ist.
- Weiterhin beinhaltet die Shell eine Einheit 30 für den Test der Hardware, die kontinuierliche Überprüfungen und Validierungen der Hardware durchführt. Die Einheit 30 für den Test der Hardware beinhaltet eine Einheit 31 für den Test des Speichers und führt eine zyklische Redundanzüberprüfung für alle Datenelemente im Speicher durch. Die Einheit 32 überprüft die Integrität des Befehlsregisters und die Einheit 33 überprüft die Integrität des Prozessors im System, um dadurch sicherzustellen, daß das System korrekt arbeitet. Die Einheit 34 Eiberpflift die Ausnahmebehandlung und die Zeitgebung einschließlich des Taktgebers, um damit zu gewährleisten, daß sie korrekt arbeiten. Die Einheit 35 testet die Platten, und die Einheit 36 testet die Schnittstelle für die Ein- und Ausgabe.
- In der Anwendung wird die Schnittstelle zur benutzerdefinierten Anwendung als Schnittstelle zu allen anderen Einrichtungen der Anwendungssoftware dienen. Die Anwendungssoftware wird dann mathematische Berechnungen, die Eingabe und/oder die Ausgabe von Daten, eine Protokollierung von Aktivitäten oder eine Bildschirmdarstellung und den Start von Aktivitäten nach einer Auswahl auf dem Bildschirm anfordern. Die Anwendungssoftware wird am vorteilhaftesten durch ein Entwicklungssystem generiert werden, das es erlaubt Anforderungen für Aktionen an die Shell weiterzugeben. Die Anforderungen werden von der Schnittstelle für benutzerdefinierte Anwendungen akzeptiert, die wiederum die Anforderungen einschließlich jeglicher erforderlichen Aktionen zur Protokollierung und Überprüfung an den korrekten Betriebsprozeß innerhalb der Shell weitergibt. Antworten auf die angeforderten Operationen werden über die Schnittstelle 10 für benutzerdefinierte Anwendungen an die Anwendungssoftware zurückgegeben.
- Gibt es zum Beispiel eine Anforderung, einen Datensatz in eine Datei zu schreiben, würde dies dazu führen, daß der Datensatz an die Einheit 23 zur Betriebs-Protokollführung und zur Schnittstelle 17 für die Ein- und Ausgabe von Dateien transferiert wird. Außerdem wird die Einheit 24 zur Fehlerbeseitigung aktiviert und der Inhalt des zu schreibenden Datensatzes wird analysiert, um festzustellen ob er die gewünschten Daten enthält.
- Der Selbsttest 11 führt die Überprüfung der Shell selbst durch. Er verursacht Verträglichkeitsüberprüfungen mit jedem anderen Prozeß mittels eines definierten Protokolls für den Transfer von Informationen, und er führt einen zyklischen Redundanztest für den Speicher, der von der Shell belegt wird, durch. Dieser Prozeß führt seine Operationen so häufig durch wie es das sicherheitskritische Niveau für die jeweilige Anwendungssoftware erforderlich macht. Je höher also das sicherheitskritische Niveau, desto häufiger würde der Selbsttest ausgeführt werden.
- Die Bereichs- und Programmüberprüfungen 12 führen eine Verifikation der Daten bezüglich des Bereichs, des Feldtyps usw. für alle Daten die vom mathematischen Paket 21 manipuliert werden durch, wenn Daten zur Schnittstelle 17 für die Ein- und Ausgabe und zur Schnittstelle 18 für die Bildschirmsteuerung gesendet und von dort wieder zurückerhalten werden. Außerdem wird dadurch die Einheit der Anwendungssoftware verifiziert, auf die durch die Speicherverwaltung 13 mittels einer zyklischen Redundanzüberprüfung und bei einer Größenvalidierung zugegriffen wird.
- Die Speicherverwaltung 13 nimmt den Anwendungscode an und validiert ihn unter Verwendung der Bereichs- und Programmüberprüfungen 12. Dann protokolliert sie ihre Inituerung in der Einheit 23 für die Protokollführung und startet die Anwendung. Im Falle von Anwendungseinheiten, die durch Bildschirmantworten ausgelöst werden, wird dieser Prozeß diese Einheiten annehmen und sie validieren, bevor sie ausgeführt werden.
- Die Schnittstelle 14 für Dateidaten übersetzt generische Anforderungen von Lese- und Schreiboperationen für Daten in Dateiaktivitäten, die in der Schnittstelle 17 für die Ein- und Ausgabe von Dateien enthalten sind und mit dem tatsächlichen Betriebssystem, unter dem das Programm abläuft, assoziiert sind. Wenn die Anwendungssoftware beispielsweise das Lesen eines Datensatzes aus einer Datenbasis über einen spezifischen Schlüssel anfordert, wird es diese Anforderung in eine Folge von Kommandos übersetzen lassen, wie sie für ein Programm für den aktiven, direkt über einen Schlüssel erfolgenden Zugriff erforderlich ist.
- Die Schnittstelle 15 für die Bildschirmdarstellung übersetzt ein genensches Bildschirmlayout, das Antworttasten und 4elder enthält, in Aktivitäten zur Bildschirmdarstellung, die im Interface 18 für die Bildschirmsteuerung enthalten sind und mit dem tatsächlichen Betriebssystem, unter dem die Software betrieben wird, assoziiert sind. Auf diese Weise wird ein Bildschirmlayout, das Steuerknöpfe, Eingabefelder, Auswahlknöpfe oder Aktionsknöpfe enthält, durch die Anwendung beschrieben und danach in eine Folge von Kommandos übersetzt, wie sie von der Methodik der aktiven Benutzerschnittstelle gefordert werden.
- Die Datenvalidierung 16 fügt eine zyklische Redundanzüberprüfung an jeden geschriebenen Datensatz an und validiert jeden gelesenen Datensatz. Sie steuert die Information um sicherzustellen, daß die Daten nicht modifiziert oder versehentlich zerstört wurden.
- Die Schnittstelle 17 für die Ein- und Ausgabe von Dateien führt die tatsächlichen Aufrufe des Betriebssystems zum Lesen von und zum Schreiben in der primären Speichereinheit durch. Dies wird alle direkten, über Schlüssel gesteuerten und sequentiellen Zugriffe auf Daten sowie sämtliche Formatierungen der generischen Datensätze in systemabhängige Datenanforderungen handhaben. Darüber hinaus benutzt die Schnittstelle für die Ein- und Ausgabe von Dateien die Datenvalidierung 16, um die gelesenen und geschriebenen Daten zu validieren, um damit sicherzustellen, daß Datenfehler erkannt werden.
- Die Schnittstelle 18 für die Bildschirmsteuerung setzt die tatsächlichen Aufrufe an das Betriebssystem zur Präsentation von Bildschirmanzeigen für den Benutzer des Systems und zum Empfang von Antworteingaben des Benutzers ab. Damit wird die Formatierung der generischen Bildschirminhalte und ihrer Präsentationselemente, wie zum Beispiel Steuerknöpfe, Auswahlmenüs, Datenfelder usw., erledigt, die mit der Präsentationsmethode des zugrundeliegenden Systems kompatibel sind.
- Die Schnittstelle 20 für Ressourcen steuert den Zugriff auf einen Satz von Fähigkeiten, der von der Shell angeboten wird und der die Operationen der Anwendung unterstützt. Diese Fähigkeiten schließen das mathematische Paket 21 ein, das statistische Berechnungen und mehrfach genaue Berechnungen unterstützt und sicherstellt, daß die Genauigkeitsgrade für Anwendungsberechnungen, die spezifische Toleranzen bei den Berechnungen fordern, auf allen Systemen konsistent sind. Die Einheit 22 für die Fehlermeldungen definiert die Methode zur Meldung von entdeckten Fehlern an die Shell. Die Protokollführung 23 zeichnet alle gewünschten Aktivitäten und Fehler auf, und die Einheit 24 zur Fehlerbeseitigung erlaubt den Anwendungsprogrammen, Bedingungen für Daten und Fehler festzulegen, und fordert genaue Angaben über den Ort und den Zeitpunkt ihres Auftretens an, um damit die Anwendungssoftware zu unterstützen und Probleme mit der Anwendungssoftware aufzudecken.
- Das mathematische Paket 21 bietet einen systemunabhängigen Satz von mathematischen Routinen. Dieser unterstützt statistische Operationen und Berechnungen, die Genauigkeitsgrade erfordern, die auf unterschiedlichen Plattformen verschieden sind. Die Einheit 22 für die Fehlermeldungen meldet und übergibt alle aufgetretenen Fehler entweder an die Einheit 23 zur Betriebs-Protokollführung und/oder an den Benutzer auf eine konsistente Art und Weise. Die Einheit 23 zur Betriebs-Protokollführung erzeugt ein Protokoll der Aktivitäten, das neben Angaben über das ausgeführte Programm oder das ausgeführte Segment des Programms auch Modifikationen an Datensätzen und/oder Zugriffe auf Datensätze, Präsentationen auf dem Bildschirm, Rückmeldungen von Operatoren usw. enthält. Dieses Protokoll wird von der Benutzeranwendung für eine Inspektion täglicher Aktivitäten benutzt oder kann benutzt werden, um einer Regierungsstelle die Verifikation der korrekten Ausführung einer gewünschten Anwendung zu ermöglichen. Eine spezielle Signatur kann zusammen mit den Datensätzen aufgezeichnet werden, um sicherzustellen, daß die Datensätze nicht verfälscht wurden. Die Einheit 24 zur Fehlerbeseitigung erlaubt es dem Benutzer, einen Satz von Kriterien festzulegen, die auf dynamische Operationen der Anwendungssoftware angewandt werden, um ihn damit bei der Identifizierung von Problemen mit der Anwendung zu unterstützen. Dies sind das Erkennen von in die primäre Speichereinheit geschriebenen oder aus ihr gelesenen fehlerhaften Daten oder die Anforderung einer inkorrekten Sequenz für eine Bildschirmdarstellung.
- Die Einheit 30 für den Hardwaretest ist eine Aktivität, die unabhängig von der Anwendungssoftware auftritt. Das Testen findet auf einer Basis statt, die verfügbare Zeiten nutzt, um sicherzustellen, daß die Plattform, in der die Anwendung abläuft, korrekt arbeitet. Dies schließt eine Reihe von Tests ein, die das normale Prozeßverhalten des Systems und die Integrität der eingebundenen Hardware verifiziert.
- Das Testen der Hardware schließt das Testen des Speichers 31 ein, was sicherstellt, daß der RAM Speicher mit einer zuverlässigen Wiedergewinnung gespeicherter Daten gelesen und geschrieben werden kann. Dies geschieht in einem nicht-destruktiven Modus, um sicherzustellen, daß keine störenden Eingriffe in dem Programmablauf auftreten. Der Test der Befehlsregister 32 überprüft jeden Befehl für den Prozessor in diversen Orientierungen mit bekannten Operanden und vergleicht die Resultate der Operation mit erwarteten Resultaten, um damit die korrekte Arbeitsweise der Zentraleinheit zu verifizieren und eine korrekte Ausführung des Programmes sicherzustellen. Das Testen des Prozessors 33 überprüft die prozessorabhängigen Operationen um ebenfalls eine korrekte Ausführung eines Programms zu sichern. Diese Operationen beinhalten spezielle Fähigkeiten jedes einzelnen Prozessors. Der Test der Ausnahmebehandlungen und der Zeitgebung 34 überprüft die Zeitgebung des Taktgebers und die auf Interrupts beruhenden Aktionen wo immer möglich auf einer konfliktfreien Basis um sicherzustellen, daß zeitgesteuerte Aktivitäten und durch lnterrupts gesteuerte Aktivitäten korrekt abgearbeitet werden. Die Plattentests 35 überprüfen das Festplattenlaufwerk oder die Controller und die Laufwerke der primären Speichereinheit auf einer konfliktfreien Basis, um sicherzustellen, daß Leseoperationen, Schreiboperationen und Suchoperationen auf Festplatten korrekt abgearbeitet werden. Die Schnittstellen-Tests für die Ein- und Ausgabe 36 überprüfen alle Schnittstellen-Boards für die Eingabe und die Ausgabe, die eindeutig für die Anwendung des Benutzers und damit abhängig von der spezifischen Hardware, die im System installiert ist, sind.
- Es ist klar, daß die vorliegende Beschreibung und die Ansprüche beispielhaft sind und keine Beschränkung darstellen, und daß diverse Modifikationen und Veränderungen gemacht werden können, ohne den Schutzbereich der vorliegenden Erfindung zu verlassen.
Claims (19)
1. System zum Betreiben von Anwendungssoftware in einer
sicherheitskritischen Umgebung, umfassend ein Datenverarbeitungsmittel,
das ein Betriebssystem zum Betreiben von Anwendungssoftware
unter dem Betriebssystem hat, dadurch gekennzeichnet, daß ein
Mittel zum Bereitstellen einer sicherheitskritischen Umgebung
einschließlich sicherheitskritischer Hintergrund- und
Vordergrundfunktionen für die Anwendungssoftware, die in Verbindung mit
dem Betriebssystem läuft, ein Mittel zum Bilden einer intermediären
Shell, die ein Mittel zum Koppeln mit dem Betriebssystem, ein Mittel
zum Koppeln mit der Anwendungssoftware zum Betreiben der
Anwendungssoftware unter dem Betriebssystem durch die intermediäre
Shell und ein Mittel zum Kontrollieren sowohl der
sicherheitskritischen Vordergrund- als auch Hintergrundfunktionen während des
Ablaufs der Anwendungssoftware hat, einschließlich eines Mittels
zum Testen der intermediären Shell als eine sicherheitskritische
Hintergrundfunktion, unabhängig davon, daß die
Anwendungssoftware in Verbindung mit dem Betriebssystem läuft und während
die Anwendungssoftware in Verbindung mit dem Betriebssystem
läuft, umfaßt.
2. System nach Anspruch 1, wobei das Datenverarbeitungsmittel einen
Speicher, einen Taktgeber und einen Prozessor aufweist und wobei
das Mittel, das die sicherheitskritische Umgebung bereitstellt, ferner
ein Mittel zum kontinuierlichen Überwachen der Operationen des
Speichers, des Taktgebers und des Prozessors als eine
sicherheitskritische Hintergrundfunktion während die Anwendungssoftware
läuft sowie ein Mittel zum Anzeigen eines Fehlers beim Betrieb des
Taktgebers, des Speichers oder des Prozessors als eine
sicherheitskritische Vordergrundfunktion umfaßt.
3. System nach Anspruch 1 oder 2, wobei das
Datenverarbeitungsmittel Hardwarekomponenten und ein Mittel zum Eingeben von
Eingabedaten zur Benutzung mit der Anwendungssoftware hat, und wobei
das Mittel, das die sicherheitskritische Umgebung bereitstellt, weiter
ein Mittel zum kontinuierlichen Überwachen von Eingabedaten und
der Operationen der Hardwarekomponenten als eine
sicherheitskritische Hintergrundfunktion während die Anwendungssoftware
läuft, um chronologische Ereignisdaten zu produzieren, die den
vorgeschriebenen Operationen entsprechen, und ein Mittel, um ein
Protokoll der Eingabedaten und der chronologischen Ereignisdaten als
sicherheitskritische Hintergrundfunktion aufrechtzuerhalten, umfaßt.
4. System nach Anspruch 3, wobei die Hardwarekomponenten einen
Speicher, einen Taktgeber und einen Prozessor umfassen.
5. System nach Anspruch 1 oder 2, wobei das
Datenverarbeitungsmittel ein Mittel zum Eingeben von Eingabedaten zur Benutzung mit der
Anwendungssoftware hat, und wobei die Anwendungssoftware mit
Daten Berechnungen durchführt, um berechnete Daten und
Ausgabedaten zu erzeugen, und wobei das Mittel, das die
sicherheitskritische Umgebung bereitstellt, ferner ein Mittel zum Speichern
von Bereichen und Formaten für Eingabedaten, Ausgabedaten und
berechnete Daten für die Anwendungssoftware, ein Mittel zum
kontinuierlichen Vergleichen der Eingabedaten, Ausgabedaten und
berechneten Daten mit den gespeicherten Bereichen und Formaten
als eine sicherheitskritische Hintergrundfunktion während des
Ablaufs der Anwendungssoftware und ein Mittel zum Anzeigen eines
ungünstigen Vergleichs als sicherheitskritische Vordergrundfunktion
umfaßt.
6. System nach Anspruch 1, wobei die intermediäre Shell weiter
umfaßt:
ein Mittel zum kontinuierlichen Überwachen des Betriebs des
Speichers, des Taktgebers und des Prozessors als sicherheitskritische
Hintergrundfunktion während die Anwendungssoftware läuft und
zum Erzeugen von damit korrespondierenden Ereignisdaten,
ein Mittel zum Anzeigen eines Fehlers beim Betrieb der
intermediären Shell, des Taktgebers, des Speichers und des Prozessors als
sicherheitskritische Vordergrundfunktion,
ein Mittel zum kontinuierlichen Aufzeichnen von Eingabedaten als
sicherheitskritische Hintergrundfunktion während die
Anwendungssoftware läuft,
ein Mittel zum Aufrechterhalten eines Protokolls der Eingabedaten
und der Ereignisdaten,
ein Mittel zum Speichern von Bereichen und Formaten für
Eingabedaten, Ausgabedaten und berechnete Daten,
ein Mittel zum kontinuierlichen Vergleichen der Eingabedaten,
Ausgabedaten und berechneten Daten mit den gespeicherten Bereichen
und Formaten als sicherheitskritische Hintergrundfunktion während
die Anwendungssoftware läuft und
ein Mittel zum Anzeigen eines ungünstigen Vergleichs als
sicherheitskritische Vordergrundfunktion.
7. System nach Anspruch 6, wobei das Datenverarbeitungsmittel eine
vorbestimmte Genauigkeit hat und wobei die intermediäre Shell ein
Mittel zum Anpassen der Genauigkeit des Datenverarbeitungsmittels
an die von der Anwendungssoftware geforderte Genauigkeit hat.
8. System nach Anspruch 6 oder 7, wobei die intermediäre Shell ein
Mittel zum Durchführen zyklischer Redundanzkontrollen hat.
9. System nach einem der Ansprüche 6 bis 8 für Anwendungssoftware,
die eine Datenbasis benutzt, wobei die Anwendungssoftware die
Datenbasis liest und schreibt, wobei die intermediäre Shell ein Mittel
zum Kontrollieren der Daten der Datenbasis bei jedem Lesen und
Schreiben der Datenbasis hat.
10. System nach einem der Ansprüche 6 bis 9, wobei die intermediäre
Shell ein Mittel zum Durchführen zyklischer Redundanzkontrollen mit
allen Daten in der Datenbasis, bezogen auf die Anwendung, hat.
11. Verfahren zum Betreiben von Anwendungssoftware in einer
sicherheitskritischen Umgebung, umfassend das Bereitstellen eines
Datenverarbeitungsmittels, das ein Betriebssystem aufweist, und das
Betreiben von Anwendungssoftware unter dem Betriebssysten,
dadurch gekennzeichnet, daß eine sicherheitskritische Umgebung
einschließlich sicherheitskritischer Vordergrund- und
Hintergrundfunktionen für die Anwendungssoftware, die in Verbindung mit
dem Betriebssytem läuft, dadurch bereitgestellt wird, daß eine
intermediäre Shell gebildet wird, die intermediäre Shell mit dem
Betriebssystem gekoppelt wird, die intermediäre Shell mit der
Anwendungssoftware gekoppelt wird, um die Anwendungssoftware unter
dem Betriebssystem nur durch die intermediäre Shell zu betreiben
und sowohl die sicherheitskritischen Vordergrund- als auch
Hintergrundfunktionen kontrolliert werden, während die
Anwendungssoftware läuft, einschließlich Testen der intermediären Shell als
sicherheitskritische Hintergrundfunktion, unabhängig davon, daß die
Anwendungssoftware in Verbindung mit dem Betriebssystem läuft
und während die Anwendungssoftware in Verbindung mit dem
Betriebssystem läuft.
12. Verfahren nach Anspruch 11, wobei das Datenverarbeitungsmittel
einen Speicher, einen Taktgeber und einen Prozessor hat, und
wobei der Schritt des Bereitstellens der sicherheitskritischen Umgebung
ferner das kontinuierliche Überwachen des Betriebs des Speichers,
des Taktgebers und des Prozessors als sicherheitskritische
Hintergrundfunktion während die Anwendungssoftware läuft und das
Anzeigen eines Fehlers im Betrieb des Taktgebers, des Speichers
und des Prozessors als sicherheitskritische Vordergrundfunktion
umfaßt.
13. Verfahren nach Anspruch 11 oder 12, wobei das
Datenverarbeitungsmittel Hardwarekomponenten hat, wobei Eingabedaten zur
Benutzung mit der Anwendungssoftware eingegeben werden und
wobei der Schritt der sicherheitskritischen Umgebung ferner das
kontinuierliche Aufzeichnen von Eingabedaten und des Betriebs des
Speichers, des Taktgebers und des Prozessors als
sicherheitskritische
Hintergrundfunktion während die Anwendungssoftware läuft,
um chronologische Ereignisdaten zu erzeugen, die dem Betrieb
entsprechen, und das Aufrechterhalten eines Protokolls der
Eingabedaten und der chronologischen Ereignisdaten als
sicherheitskritische Hintergrundfunktion, umfaßt.
14. Verfahren nach Anspruch 11 oder 12, wobei Eingabedaten zur
Benutzung mit der Anwendungssoftware eingegeben werden, wobei
die Anwendungssoftware mit Daten Berechnungen durchführt, um
berechnete Daten und Ausgabedaten zu liefern, und wobei der
Schritt des Bereitstellens der sicherheitskritischen Umgebung ferner
das Speichern von Bereichen und Formaten für Eingabedaten,
Ausgabedaten und berechnete Daten für die Anwendungssoftware, das
kontinuierliche Vergleichen der Eingabedaten, Ausgabedaten und
berechneten Daten mit den gespeicherten Bereichen und Formaten
als sicherheitskritische Hintergrundfunktion während die
Anwendungssoftware läuft und das Anzeigen eines ungünstigen Vergleichs
als sicherheitskritische Vorderg rundfunktion umfaßt.
15. Verfahren nach Anspruch 11, ferner umfassend:
das kontinuierliche Aufzeichnen des Betriebs des Speichers, des
Taktgebers und des Prozessors als sicherheitskritische
Vordergrundfunktion während die Anwendungssoftware läuft und zum
Erzeugen von damit korrespondierenden Ereignisdaten,
das Anzeigen eines Fehlers in Operationen der intermediären Shell,
des Taktgebers, des Speichers und des Prozessors als
sicherheitskritische Vordergrundfunktion,
das kontinuierliche Aufzeichnen von Eingabedaten als
sicherheitskritische Hintergrundfunktion während die Anwendungssoftware
läuft,
das Aufrechterhalten eines Protokolls der Eingabedaten und der
Ereignisaten,
das Speichern von Bereichen und Formaten für Eingabedaten,
Ausgabedaten und berechnete Daten,
das kontinuierliche Vergleichen der Eingabedaten, Ausgabedaten
und berechneten Daten mit den gespeicherten Bereichen und
Formaten als sicherheitskritische Hintergrundfunktion während die
Anwendungssoftware läuft und
das Anzeigen eines ungünstigen Vergleichs als sicherheitskritische
Vordergrundfunktion.
16. Verfahren nach Anspruch 15, wobei das Datenverarbeitungsmittel
eine vorbestimmte Genauigkeit hat und wobei die intermediäre Shell
die Genauigkeit des Datenverarbeitungsmittels an die von der
Anwendungssoftware geforderte Genauigkeit anpaßt.
17. Verfahren nach Anspruch 15 oder 16, wobei die intermediäre Shell
zyklische Redundanzkontrollen durchführt.
18. Verfahren nach einem der Ansprüche 15 bis 17, wobei die
Anwendungssoftware eine Datenbasis umfaßt und wobei die
Anwendungssoftware die Datenbasis liest und schreibt und wobei die
intermediäre Shell bei jedem Lesen und Schreiben der Datenbasis eine
Datenbasiskontrolle durchführt.
19. Verfahren nach einem der Ansprüche 15 bis 18, wobei die
intermediäre Shell zyklische Redundanzkontrollen bei allen Daten in der
Datenbasis, bezogen auf die Anwendung, durchführt.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/964,742 US5339261A (en) | 1992-10-22 | 1992-10-22 | System for operating application software in a safety critical environment |
PCT/US1993/010078 WO1994009433A2 (en) | 1992-10-22 | 1993-10-21 | A system for operating application software in a safety critical environment |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69316232D1 DE69316232D1 (de) | 1998-02-12 |
DE69316232T2 true DE69316232T2 (de) | 1998-08-06 |
Family
ID=25508923
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69316232T Expired - Fee Related DE69316232T2 (de) | 1992-10-22 | 1993-10-21 | System zum betrieb von anwendungs-software in einer sicherheitskritischen umgebung |
Country Status (8)
Country | Link |
---|---|
US (3) | US5339261A (de) |
EP (1) | EP0665968B1 (de) |
JP (1) | JP2877956B2 (de) |
AT (1) | ATE161980T1 (de) |
AU (1) | AU5725694A (de) |
CA (1) | CA2145844C (de) |
DE (1) | DE69316232T2 (de) |
WO (1) | WO1994009433A2 (de) |
Families Citing this family (78)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5339261A (en) * | 1992-10-22 | 1994-08-16 | Base 10 Systems, Inc. | System for operating application software in a safety critical environment |
AU5616694A (en) * | 1992-11-30 | 1994-06-22 | Base 10 Systems, Inc. | A safety critical processor and processing method for a data processing system |
US5594637A (en) * | 1993-05-26 | 1997-01-14 | Base Ten Systems, Inc. | System and method for assessing medical risk |
EP0632377B1 (de) * | 1993-06-30 | 1998-12-30 | Microsoft Corporation | Verfahren zur Überprüfung eines nachrichtengesteuerten Betriebssystems |
US5542069A (en) * | 1994-03-02 | 1996-07-30 | Sun Microsystems, Inc. | Method and apparatus for simulating input events in a windowed environment |
US5673386A (en) * | 1994-06-29 | 1997-09-30 | U S West Technologies, Inc. | Method and system for identification of software application faults |
US5581687A (en) * | 1994-11-10 | 1996-12-03 | Baxter International Inc. | Interactive control systems for medical processing devices |
US5553237A (en) * | 1994-12-13 | 1996-09-03 | Base Ten Systems, Inc. | Safety critical monitoring of microprocessor controlled embedded systems |
US5572671A (en) * | 1995-02-17 | 1996-11-05 | Base Ten Systems, Inc. | Method for operating application software in a safety critical environment |
US5867710A (en) * | 1995-09-05 | 1999-02-02 | Motorola, Inc. | Portable microkernel operating system verification and testing |
US5758060A (en) * | 1996-03-05 | 1998-05-26 | Dallas Semiconductor Corp | Hardware for verifying that software has not skipped a predetermined amount of code |
US5889990A (en) | 1996-11-05 | 1999-03-30 | Sun Microsystems, Inc. | Information appliance software architecture with replaceable service module providing abstraction function between system library and platform specific OS |
US5926777A (en) * | 1997-10-14 | 1999-07-20 | Nematron Corporation | Method and apparatus for monitoring computer system service life parameters |
US6044458A (en) * | 1997-12-12 | 2000-03-28 | Motorola, Inc. | System for monitoring program flow utilizing fixwords stored sequentially to opcodes |
US6085576A (en) * | 1998-03-20 | 2000-07-11 | Cyrano Sciences, Inc. | Handheld sensing apparatus |
US6647301B1 (en) | 1999-04-22 | 2003-11-11 | Dow Global Technologies Inc. | Process control system with integrated safety control system |
US20010015977A1 (en) * | 1999-10-08 | 2001-08-23 | Stefan Johansson | Selective reception |
US20010014085A1 (en) * | 1999-10-08 | 2001-08-16 | Microsoft Corporation | Originator authentication |
US6550024B1 (en) * | 2000-02-03 | 2003-04-15 | Mitel Corporation | Semantic error diagnostic process for multi-agent systems |
SE522408C2 (sv) * | 2000-04-27 | 2004-02-10 | Microsoft Corp | Datorprogram och förfarande för automatiserad testning av en dators funktionalitet |
DE50113303D1 (de) * | 2000-09-05 | 2008-01-03 | Storz Endoskop Gmbh | System und verfahren zur zentralen steuerung von einrichtungen, die während einer operation benutzt werden |
US6691070B1 (en) * | 2000-11-03 | 2004-02-10 | Mack Information Systems | System and method for monitoring a controlled environment |
SE518751C2 (sv) * | 2001-01-03 | 2002-11-19 | Microsoft Corp | Metod och system där en extern server erhåller information om enskilda mobila terminalers radioöverföringskapacitet |
US20030009305A1 (en) * | 2001-06-12 | 2003-01-09 | Eden John S. | Flexible, extensible, and portable testing platform |
US6768943B2 (en) | 2002-04-18 | 2004-07-27 | Aviation Communication & Surveillance Systems, Llc | System and method using environment memory having signatures |
US20030220987A1 (en) * | 2002-05-21 | 2003-11-27 | Aviation Communication & Surveillance Systems, Llc | System and method with environment memory for input/output configuration |
US7103914B2 (en) * | 2002-06-17 | 2006-09-05 | Bae Systems Information Technology Llc | Trusted computer system |
US8539063B1 (en) | 2003-08-29 | 2013-09-17 | Mcafee, Inc. | Method and system for containment of networked application client software by explicit human input |
US7464408B1 (en) * | 2003-08-29 | 2008-12-09 | Solidcore Systems, Inc. | Damage containment by translation |
US7318226B2 (en) * | 2003-10-16 | 2008-01-08 | International Business Machines Corporation | Distributed autonomic solutions repository |
US7506241B2 (en) * | 2003-10-16 | 2009-03-17 | International Business Machines Corporation | Method and apparatus for a self healing agent |
US7840968B1 (en) | 2003-12-17 | 2010-11-23 | Mcafee, Inc. | Method and system for containment of usage of language interfaces |
US7783735B1 (en) | 2004-03-22 | 2010-08-24 | Mcafee, Inc. | Containment of network communication |
US7873955B1 (en) | 2004-09-07 | 2011-01-18 | Mcafee, Inc. | Solidifying the executable software set of a computer |
US7603552B1 (en) * | 2005-05-04 | 2009-10-13 | Mcafee, Inc. | Piracy prevention using unique module translation |
US7856661B1 (en) | 2005-07-14 | 2010-12-21 | Mcafee, Inc. | Classification of software on networked systems |
US8272058B2 (en) | 2005-07-29 | 2012-09-18 | Bit 9, Inc. | Centralized timed analysis in a network security system |
US7895651B2 (en) | 2005-07-29 | 2011-02-22 | Bit 9, Inc. | Content tracking in a network security system |
US8984636B2 (en) | 2005-07-29 | 2015-03-17 | Bit9, Inc. | Content extractor and analysis system |
US7660412B1 (en) * | 2005-12-09 | 2010-02-09 | Trend Micro Incorporated | Generation of debug information for debugging a network security appliance |
US7757269B1 (en) | 2006-02-02 | 2010-07-13 | Mcafee, Inc. | Enforcing alignment of approved changes and deployed changes in the software change life-cycle |
US7895573B1 (en) | 2006-03-27 | 2011-02-22 | Mcafee, Inc. | Execution environment file inventory |
US7870387B1 (en) * | 2006-04-07 | 2011-01-11 | Mcafee, Inc. | Program-based authorization |
US8352930B1 (en) | 2006-04-24 | 2013-01-08 | Mcafee, Inc. | Software modification by group to minimize breakage |
US8555404B1 (en) | 2006-05-18 | 2013-10-08 | Mcafee, Inc. | Connectivity-based authorization |
US8332929B1 (en) | 2007-01-10 | 2012-12-11 | Mcafee, Inc. | Method and apparatus for process enforced configuration management |
US9424154B2 (en) | 2007-01-10 | 2016-08-23 | Mcafee, Inc. | Method of and system for computer system state checks |
US7671567B2 (en) * | 2007-06-15 | 2010-03-02 | Tesla Motors, Inc. | Multi-mode charging system for an electric vehicle |
DE102007050708B4 (de) * | 2007-10-22 | 2009-08-06 | Phoenix Contact Gmbh & Co. Kg | System zum Betreiben wenigstens eines nicht-sicherheitskritischen und wenigstens eines sicherheitskritischen Prozesses |
US8195931B1 (en) | 2007-10-31 | 2012-06-05 | Mcafee, Inc. | Application change control |
US8515075B1 (en) | 2008-01-31 | 2013-08-20 | Mcafee, Inc. | Method of and system for malicious software detection using critical address space protection |
US8615502B2 (en) | 2008-04-18 | 2013-12-24 | Mcafee, Inc. | Method of and system for reverse mapping vnode pointers |
US8544003B1 (en) | 2008-12-11 | 2013-09-24 | Mcafee, Inc. | System and method for managing virtual machine configurations |
US8356285B2 (en) * | 2009-03-31 | 2013-01-15 | Oracle America, Inc. | Facilitated introspection of virtualized environments |
US8341627B2 (en) * | 2009-08-21 | 2012-12-25 | Mcafee, Inc. | Method and system for providing user space address protection from writable memory area in a virtual environment |
US8381284B2 (en) | 2009-08-21 | 2013-02-19 | Mcafee, Inc. | System and method for enforcing security policies in a virtual environment |
AU2010292417B9 (en) | 2009-09-08 | 2015-04-16 | Abbott Diabetes Care Inc. | Methods and articles of manufacture for hosting a safety critical application on an uncontrolled data processing device |
US20110099439A1 (en) * | 2009-10-23 | 2011-04-28 | Infineon Technologies Ag | Automatic diverse software generation for use in high integrity systems |
US9552497B2 (en) * | 2009-11-10 | 2017-01-24 | Mcafee, Inc. | System and method for preventing data loss using virtual machine wrapped applications |
US20110208948A1 (en) * | 2010-02-23 | 2011-08-25 | Infineon Technologies Ag | Reading to and writing from peripherals with temporally separated redundant processor execution |
US8516356B2 (en) | 2010-07-20 | 2013-08-20 | Infineon Technologies Ag | Real-time error detection by inverse processing |
US8938800B2 (en) | 2010-07-28 | 2015-01-20 | Mcafee, Inc. | System and method for network level protection against malicious software |
US8925101B2 (en) | 2010-07-28 | 2014-12-30 | Mcafee, Inc. | System and method for local protection against malicious software |
US8549003B1 (en) | 2010-09-12 | 2013-10-01 | Mcafee, Inc. | System and method for clustering host inventories |
US9075993B2 (en) | 2011-01-24 | 2015-07-07 | Mcafee, Inc. | System and method for selectively grouping and managing program files |
US9678483B2 (en) | 2011-01-26 | 2017-06-13 | Honeywell International Inc. | Programmable controller with both safety and application functions |
US9112830B2 (en) | 2011-02-23 | 2015-08-18 | Mcafee, Inc. | System and method for interlocking a host and a gateway |
US9594881B2 (en) | 2011-09-09 | 2017-03-14 | Mcafee, Inc. | System and method for passive threat detection using virtual memory inspection |
US8694738B2 (en) | 2011-10-11 | 2014-04-08 | Mcafee, Inc. | System and method for critical address space protection in a hypervisor environment |
US9069586B2 (en) | 2011-10-13 | 2015-06-30 | Mcafee, Inc. | System and method for kernel rootkit protection in a hypervisor environment |
US8973144B2 (en) | 2011-10-13 | 2015-03-03 | Mcafee, Inc. | System and method for kernel rootkit protection in a hypervisor environment |
US8800024B2 (en) | 2011-10-17 | 2014-08-05 | Mcafee, Inc. | System and method for host-initiated firewall discovery in a network environment |
US8713668B2 (en) | 2011-10-17 | 2014-04-29 | Mcafee, Inc. | System and method for redirected firewall discovery in a network environment |
US8739272B1 (en) | 2012-04-02 | 2014-05-27 | Mcafee, Inc. | System and method for interlocking a host and a gateway |
US8973146B2 (en) | 2012-12-27 | 2015-03-03 | Mcafee, Inc. | Herd based scan avoidance system in a network environment |
CN105580023B (zh) | 2013-10-24 | 2019-08-16 | 迈克菲股份有限公司 | 网络环境中的代理辅助的恶意应用阻止 |
US10445090B2 (en) | 2016-07-26 | 2019-10-15 | Hitachi, Ltd. | Method and system for determining safety compliance level of a software product |
CN107526683B (zh) * | 2017-08-23 | 2020-06-19 | 北京小米移动软件有限公司 | 应用程序功能冗余度的检测方法、装置及存储介质 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4270168A (en) * | 1978-08-31 | 1981-05-26 | United Technologies Corporation | Selective disablement in fail-operational, fail-safe multi-computer control system |
US4253145A (en) * | 1978-12-26 | 1981-02-24 | Honeywell Information Systems Inc. | Hardware virtualizer for supporting recursive virtual computer systems on a host computer system |
GB2200476B (en) * | 1987-01-29 | 1991-02-06 | British Gas Plc | Monitor system |
US5063500A (en) * | 1988-09-29 | 1991-11-05 | Ibm Corp. | System for executing segments of application program concurrently/serially on different/same virtual machine |
FR2649507B1 (fr) * | 1989-07-07 | 1994-07-08 | Bull Sa | Procede d'observation de l'execution d'un programme charge dans un systeme informatique et dispositif pour la mise en oeuvre dudit procede |
US5179702A (en) * | 1989-12-29 | 1993-01-12 | Supercomputer Systems Limited Partnership | System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling |
US5063572A (en) * | 1990-06-04 | 1991-11-05 | Unisys Corporation | Channelized delay and mix chip rate detector |
JP2777496B2 (ja) * | 1991-02-28 | 1998-07-16 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピュータシステムにおいてマルチプロセスをプロファイリングする際の使用方法 |
US5245615A (en) * | 1991-06-06 | 1993-09-14 | International Business Machines Corporation | Diagnostic system and interface for a personal computer |
US5339261A (en) * | 1992-10-22 | 1994-08-16 | Base 10 Systems, Inc. | System for operating application software in a safety critical environment |
-
1992
- 1992-10-22 US US07/964,742 patent/US5339261A/en not_active Expired - Fee Related
-
1993
- 1993-10-21 AU AU57256/94A patent/AU5725694A/en not_active Abandoned
- 1993-10-21 WO PCT/US1993/010078 patent/WO1994009433A2/en active IP Right Grant
- 1993-10-21 DE DE69316232T patent/DE69316232T2/de not_active Expired - Fee Related
- 1993-10-21 JP JP6510384A patent/JP2877956B2/ja not_active Expired - Lifetime
- 1993-10-21 EP EP94903238A patent/EP0665968B1/de not_active Expired - Lifetime
- 1993-10-21 CA CA002145844A patent/CA2145844C/en not_active Expired - Fee Related
- 1993-10-21 AT AT94903238T patent/ATE161980T1/de not_active IP Right Cessation
-
1994
- 1994-04-19 US US08/230,038 patent/US5521849A/en not_active Expired - Fee Related
-
1995
- 1995-02-27 US US08/387,310 patent/US5506792A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
AU5725694A (en) | 1994-05-09 |
CA2145844A1 (en) | 1994-04-28 |
US5521849A (en) | 1996-05-28 |
EP0665968A1 (de) | 1995-08-09 |
DE69316232D1 (de) | 1998-02-12 |
US5506792A (en) | 1996-04-09 |
WO1994009433A2 (en) | 1994-04-28 |
JP2877956B2 (ja) | 1999-04-05 |
EP0665968B1 (de) | 1998-01-07 |
JPH08502611A (ja) | 1996-03-19 |
CA2145844C (en) | 1999-03-30 |
ATE161980T1 (de) | 1998-01-15 |
WO1994009433A3 (en) | 1994-05-26 |
US5339261A (en) | 1994-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69316232T2 (de) | System zum betrieb von anwendungs-software in einer sicherheitskritischen umgebung | |
DE69903629T2 (de) | Prüfung der funktionsfähigkeit eines gerätetreibers | |
DE69720821T2 (de) | Fehlersuchsystem für Programme mit einer graphischen Benutzerschnittstelle | |
Inozemtseva et al. | Coverage is not strongly correlated with test suite effectiveness | |
DE69315223T2 (de) | Rechnerfehler-wiederinbetriebnahme und warnsystem | |
DE69932371T2 (de) | Verschiebbare Instrumentationskennzeichen für die Prüfung und die Fehlerbeseitigung eines Computerprogramms | |
DE102005022192B4 (de) | Datensicherungs-Laufwerk mit auswechselbaren Speichermedien zum Sichern von Daten eines Hostcomputers | |
DE60010420T2 (de) | Automatisches Regressionstesten von Arbeitsplatz-Software | |
EP0104635A2 (de) | Verfahren und Anordnung zum Prüfen eines digitalen Rechners | |
DE19847677C2 (de) | Computer, Verfahren und Gerät zum Verhindern eines unautorisierten Zugriffs auf ein Computerprogramm | |
DE69815006T2 (de) | Datenverarbeitungseinheit mit Fehlerbeseitungsmöglichkeiten | |
DE202016008043U1 (de) | Vorrichtung zum Erzeugen, Erfassen, Speichern und Laden von Debugging-Informationen für gescheiterte Test-Skripts | |
WO1996018949A1 (en) | Safety critical monitoring of microprocessor controlled embedded systems | |
US5572671A (en) | Method for operating application software in a safety critical environment | |
Wallace et al. | Lessons from 342 medical device failures | |
DE112011100168T5 (de) | Erfassen von Diagnosedaten in einer Datenverarbeitungsumgebung | |
DE69422003T2 (de) | Verfahren und Vorrichtung zur Steuerung der Befehlswiederholung | |
Michelsen et al. | A methodology for the objective evaluation of the user/system interfaces of the MADAM system using software engineering principles | |
DE102023201815A1 (de) | Verfahren zum Testen eines Computerprogramms | |
DE60114416T2 (de) | Vorrichtung und verfahren zur bewertung von algorithmen | |
DE69614355T2 (de) | Spielvorrichtung und Verfahren zur Fehlerbeseitigung in einem Spielprogramm | |
Simonovski et al. | Implementation of chromatography data system in a quality control laboratory in the pharmaceutical industry | |
EP3647801A1 (de) | Verfahren zur überprüfung eines fpga-programms | |
Cranmer et al. | Research data integrity: a result of an integrated information system | |
Ginzberg | Notes on testing real-time system programs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |