DE102019216226A1 - Verfahren zum Betreiben eines Rechensystems und Rechensystem - Google Patents

Verfahren zum Betreiben eines Rechensystems und Rechensystem Download PDF

Info

Publication number
DE102019216226A1
DE102019216226A1 DE102019216226.6A DE102019216226A DE102019216226A1 DE 102019216226 A1 DE102019216226 A1 DE 102019216226A1 DE 102019216226 A DE102019216226 A DE 102019216226A DE 102019216226 A1 DE102019216226 A1 DE 102019216226A1
Authority
DE
Germany
Prior art keywords
memory area
process section
asil
computing system
security level
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
Application number
DE102019216226.6A
Other languages
English (en)
Inventor
Andreas Achtzehn
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102019216226.6A priority Critical patent/DE102019216226A1/de
Publication of DE102019216226A1 publication Critical patent/DE102019216226A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Betreiben eines Rechensystems (100) mit einem Speicherbereich (110), auf dem ein Prozess (120), der einen ersten Prozessabschnitt (121) mit einer ersten Sicherheitsstufe umfasst, ausführbar ist und für den ein Schreibzugriff und ein Lesezugriff auf den Speicherbereich (110) möglich und erlaubt sind, wobei der Prozess (120) einen zweiten Prozessabschnitt (122) mit einer zweiten Sicherheitsstufe, die geringer als die erste Sicherheitsstufe ist, umfasst, und wobei, wenn der zweite Prozessabschnitt (122) ausgeführt wird, ein Schreibzugriff für den Prozess (120) auf den Speicherbereich (110) verhindert wird, sowie ein solches Rechensystem (100).

Description

  • Die vorliegende Erfindung betrifft ein Verfahren zum Betreiben eines Rechensystems mit einem Speicherbereich sowie ein Rechensystem mit einem Speicherbereich und ein Computerprogramm zu dessen Durchführung.
  • Stand der Technik
  • Prozessorientierte Betriebssysteme wie Unix, Linux und Windows werden auf Desktopsystemen und Servern verwendet, sie finden jedoch langsam auch Eingang in Fahrerassistenzsysteme und Systeme für autonome Fahrfunktionen, da sie besser geeignet sind, komplexe und voneinander unabhängige Applikationen auszuführen als bisherige Systeme im Automotive-Bereich.
  • Hierbei sind insbesondere solche Systeme von Relevanz, die verschiedene Level bzw. Stufen der funktionalen Absicherung (sog. „functional safety“) miteinander mischen können, insbesondere QM-Komponenten und ASIL-Komponenten (hierbei steht QM für „Quality Management“ und ASIL für „Automotive Safety Integrity Level“). So können auf dem gleichen System unterschiedliche Anwendungsfälle (sog. „use cases“) effizienter in Bezug auf Hardware und Software abgedeckt werden.
  • Innerhalb des Betriebssystems können vor allem zwei Mechanismen genutzt werden, um Komponenten unterschiedlichen ASIL-Levels (oder allgemein unterschiedlicher Sicherheitsstufen) voneinander zu trennen. Zur Erreichung einer sog. „temporalen Freedom-From-Interference“ (also einer Verhinderung einer gegenseitigen zeitlichen Beeinflussung) kann im Betriebssystem ein Scheduler genutzt, der Prozesse bzw. Threads (Prozessstränge) garantierte Rechenzeit auf der CPU zuweist, so dass sie ihre Aufgaben erfüllen können. Die sog. „räumliche Freedom-From-Interference“ (also einer Verhinderung einer gegenseitigen „räumlichen“ Beeinflussung) kann durch eine Speicherschutzeinheit (Memory Management Unit, MMU bzw. Memory Protection Unit, MPU) sichergestellt werden, die einen gegenseitigen Zugriff auf jeweilige Speicherbereiche zwischen Prozessen verschiedene Sicherheitsstufen verhindert.
  • Diese Konstruktion bedingt jedoch, dass in solchen Systemen eine Trennung von Implementierungen unterschiedlicher ASIL-Güte über die Nutzung unterschiedlicher Prozessräume bzw. Prozesse erreicht wird. Interaktionen können über gesicherte Interprozesskanäle ermöglicht werden, sofern nötig. Dies stellt eine besondere Herausforderung für die Nutzung von Libraries (bzw. Bibliotheken) dar, die bei geringerer ASIL-Güte nicht in den Prozessraum geladen werden dürfen. Stattdessen kann eine entsprechende „ASIL-Fassade“, d.h. ein in ASIL-Qualität implementierter Code der eine Weiterleitung an ASIL-Code in einem anderen Prozessraum per IPC vornimmt und die Rückgabeninhalte und zeitliche Verschränkung kontrolliert, vorgeschaltet werden. Gleiches gilt für einer Library ähnliche Softwarekomponenten, die Teil von Funktionskomposition werden sollen.
  • Offenbarung der Erfindung
  • Erfindungsgemäß werden ein Verfahren zum Betreiben eines Rechensystems sowie ein Rechensystem und ein Computerprogramm zu dessen Durchführung mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.
  • Die Erfindung betrifft ein Verfahren zum Betreiben eines Rechensystems mit einem Speicherbereich, auf welchem Rechensystem ein Prozess, der einen ersten Prozessabschnitt mit einer ersten Sicherheitsstufe umfasst, ausführbar ist und für den ein Schreibzugriff und ein Lesezugriff auf den Speicherbereich möglich und erlaubt sind. Zudem umfasst der Prozess einen zweiten Prozessabschnitt mit einer zweiten Sicherheitsstufe, die geringer als die erste Sicherheitsstufe ist.
  • Als Sicherheitsstufen kommen hierbei insbesondere die QM-Stufe und die ASIL-Stufen in Betracht, wobei der erste Prozessabschnitt dann eine ASIL-Stufe und der zweite Prozessabschnitt eine QM-Stufe oder aber eine geringere ASIL-Stufe als der erste Prozessabschnitt aufweist. Besonders zweckmäßig ist hierbei auch, wenn das Rechensystem als ein Steuergerät für ein Fahrzeug ausgebildet ist oder Teil eines solchen Steuergerätes ist.
  • Unter einem Prozessabschnitt mit einer Sicherheitsstufe ist dabei insbesondere ein Teil eines Prozesses zu verstehen, der mit einer bestimmten ASIL-Stufe bzw. allgemein einer gewissen Sicherheitsstufe ausgeführt wird. Im Hinblick auf den ersten und zweiten Prozessabschnitt kann dabei insbesondere auch der zweite Prozessabschnitt zwischen zwei Teilen des ersten Prozessabschnitts bzw. während einer Unterbrechung des ersten Prozessabschnitts vorgesehen sein, d.h. im Rahmen eines Prozesses wird Code ausgeführt, der zeitweise eine geringere ASIL-Stufe aufweist, was dann dem zweiten Prozessabschnitt entspricht.
  • Bei dem vorgeschlagenen Verfahren wird nun, wenn der zweite Prozessabschnitt ausgeführt wird, ein Schreibzugriff für den Prozess auf den Speicherbereich (der dem ersten Prozessabschnitt zugewiesen ist) verhindert, und zwar insbesondere indem ein Zugriff auf den Speicherbereich auf einen Lesezugriff beschränkt wird. Dies kann beispielsweise durch Schalten eines „Read-Only-Modus“ des entsprechenden Speicherbereichs mittels einer Speicherschutzeinheit des Rechensystems erfolgen.
  • Auf diese Weise kann der Speicherbereich grundsätzlich vollständig für den Prozess und damit auch alle Prozessabschnitte bereitgestellt - und als gemeinsamer Speicherabschnitt genutzt - werden. Eine unberechtigte Veränderung im Speicherbereich durch einen Prozessabschnitt mit niedrigerer Sicherheitsstufe, was negative Auswirkungen auf einen später ausgeführten Prozessabschnitt mit höherer Sicherheitsstufe haben könnte, wird damit aber verhindert.
  • Die Erfindung ermöglicht es also, Code unterschiedlicher ASIL-Stufen in einem gemeinsamen Prozessraum (in dem der Prozess ausführt wird) sicher auszuführen. Durch die Vereinigung wird erreicht, dass keine Interprozesskommunikation, die zusätzliche Latenzen und Ineffizienzen erzeugen würde, mehr gebraucht wird. Insbesondere ermöglicht die Erfindung, auch Code aus Fremdzulieferungen in Form von Libraries oder gekapselten Komponenten (der dann als der zweite Prozessabschnitt ausgeführt wird) in einen ASIL-Prozess (der dann im Übrigen dem ersten Prozessabschnitt entspricht) einzubinden, da während eines Zugriffs darauf - was dann im Rahmen des zweiten Prozessabschnitts erfolgt - keine Änderungen im Speicherbereich erlaubt werden bzw. möglich sind.
  • Es ist damit nicht mehr nötig, durch Prozessgrenzen definierte räumliche oder temporale Freedom-From-Interferences zu implementieren. Code unterschiedlicher ASI L-Stufen kann in einem Prozess ausgeführt werden. Außerdem ist es möglich, Fremdzulieferungen in geringerer ASIL-Qualität (z.B. OSS-Bibliotheken oder andere in QM entwickelte Bibliotheken) zu integrieren. Dies schafft Kostenvorteile, da teure Nachentwicklungen entfallen.
  • Die Nutzung von Interprozesskommunikation (IPC) zwischen mixed-ASIL-Prozessen (d.h. Prozessen mit Code verschiedener ASIL-Stufen) entfällt. Dadurch wird ein solches System effizienter und performanter. Das Verfahren kann dabei für Applikationsentwickler transparent ausgelegt werden, d.h. ein Applikationsentwickler kann in seinem Code entwickeln, als wäre die genutzte Komponente (z.B. eine Bibliothek) in gleicher ASIL-Qualität vorhanden. Er muss keine besonderen weiteren Vorkehrungen treffen, insbesondere keine „ASIL-Fassade“ entwickeln.
  • Das Systemdesign wird mit dem vorgeschlagenen Vorgehen zudem verschlankt. Ressourcen können nun genauer den konkreten Aufgaben, repräsentiert durch Prozesse, zugewiesen werden. Bisher müssen z.B. ASIL-Prozesse und QM-Prozesse gemeinsam geplant werden. Dies entfällt, da die Funktionalität in einem Prozess gekapselt werden kann.
  • Das vorgeschlagene Verfahren erleichtert auch eine temporale Freedom-From-Interference zwischen Prozessen verschiedener ASIL-Stufen, wenn Ressourcenbudgets genutzt werden. Die Funktionalität kann nun über ein einziges Ressourcenbudget geplant werden. Der nieder-ASIL-Teil (der zweite Prozessabschnitt) kann dieses Budget nicht alleine aufbrauchen und so einen Fall von temporaler Interferenz erzeugen.
  • Zudem ist das vorgeschlagene Verfahren nicht nur für Library-Funktions-Beziehungen mit unterschiedlichem ASIL-Level nutzbar, durch geeignete Kennzeichnung kann auch innerhalb eines normalen sequentiellen Codedurchlaufs (ohne Sprung in eine Funktion) für Teile des Codes ein entsprechender Schutz zeitweise aktiviert werden. Eine nieder-ASIL-Funktion kann weiterhin höherwertigere ASIL-Funktionen aufrufen, sofern diese während des Aufrufes keine schreibenden Veränderungen am ASIL-Speicher vornehmen.
  • Vorzugsweise wird, wenn der zweite Prozessabschnitt nicht mehr ausgeführt wird, ein Schreibzugriff auf den Speicherbereich (wieder) erlaubt, insbesondere wird dann auch der erste Prozessabschnitt (wieder) ausgeführt. Der Prozess kann also ganz normal weiterlaufen.
  • Auch ist es bevorzugt, dass, wenn der zweite Prozessabschnitt ausgeführt wird, ein Schreibzugriff für den Prozess auf einen weiteren Speicherbereich des Rechensystems ermöglicht wird. Hierbei kann es sich um einen separat für den Prozessabschnitt mit niedrigerer Sicherheitsstufe vorgesehenen Speicherbereich handeln. Dieser weitere Speicherbereich sollte für den ersten Prozessabschnitt dann jedoch entsprechend markiert oder nicht zugänglich sein.
  • Weiterhin ist es bevorzugt, dass der zweite Prozessabschnitt höchstens für eine vorbestimmte Zeitdauer ausgeführt wird, insbesondere, dass der zweite Prozessabschnitt nach Ablauf der vorbestimmten Zeitdauer automatisch beendet wird, und weiter insbesondere der erste Prozessabschnitt (wieder) ausgeführt wird. Dies kann beispielsweise durch Setzen eines geeigneten Timers vor Beginn des zweiten Prozessabschnitts erfolgen. Auf diese Weise wird sichergestellt, dass der zweite Prozessabschnitt (also z.B. ein QM-Code) nicht undefiniert lange läuft und ggf. mehr als ein definiertes Maß an Rechen-Ressourcen verbraucht. Denkbar ist aber auch eine Fehlerreaktionsfunktion, wenn der zweite Prozessabschnitt nach Ablauf der vorbestimmten Zeitdauer nicht ordnungsgemäß beendet werden kann bzw. nicht von selbst endet (dann aber ggf. zwangsweise beendet wird).
  • Gegenstand der Erfindung ist weiterhin ein Rechensystem mit einem Speicherbereich, das, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen. Das Rechensystem ist also insbesondere dazu eingerichtet bzw. derart ausgebildet, beispielsweise durch ein entsprechendes Betriebssystem und/oder eine entsprechende CPU, einen Prozess, der einen ersten Prozessabschnitt mit einer ersten Sicherheitsstufe und einen zweiten Prozessabschnitt mit einer zweiten Sicherheitsstufe, die geringer als die erste Sicherheitsstufe ist, umfasst, auszuführen und dem Prozess während der Ausführung des ersten Prozessabschnitts Schreibzugriff und Lesezugriff auf den Speicherbereich zu gewähren und dem Prozess während der Ausführung des zweiten Prozessabschnitts keinen Schreibzugriff auf den Speicherbereich zu gewähren. Bei dem Rechensystem kann es sich insbesondere um eine Recheneinheit wie, z.B. ein Steuergerät eines Kraftfahrzeugs, handeln.
  • Auch die Implementierung eines erfindungsgemäßen Verfahrens in Form eines Computerprogramms oder Computerprogrammprodukts mit Programmcode zur Durchführung aller Verfahrensschritte ist vorteilhaft, da dies besonders geringe Kosten verursacht, insbesondere wenn ein ausführendes Steuergerät noch für weitere Aufgaben genutzt wird und daher ohnehin vorhanden ist. Geeignete Datenträger zur Bereitstellung des Computerprogramms sind insbesondere magnetische, optische und elektrische Speicher, wie z.B. Festplatten, Flash-Speicher, EEPROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich.
  • Gegenstand der Erfindung ist weiterhin eine Programmierumgebung, welche dazu eingerichtet ist, ausführbaren Programmcode zu erzeugen, der ein Rechensystem mit einem Speicherbereich veranlasst, einen Prozess, der einen ersten Prozessabschnitt mit einer ersten Sicherheitsstufe und einen zweiten Prozessabschnitt mit einer zweiten Sicherheitsstufe, die geringer als die erste Sicherheitsstufe ist, umfasst, auszuführen und dem Prozess während der Ausführung des ersten Prozessabschnitts Schreibzugriff und Lesezugriff auf den Speicherbereich zu gewähren und dem Prozess während der Ausführung des zweiten Prozessabschnitts keinen Schreibzugriff auf den Speicherbereich zu gewähren.
  • Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.
  • Die Erfindung ist anhand eines Ausführungsbeispiels in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung beschrieben.
  • Figurenliste
    • 1 zeigt schematisch ein erfindungsgemäßes Rechensystem zur Erläuterung eines erfindungsgemäßen Verfahrens in einer bevorzugten Ausführungsform.
  • Ausführungsform(en) der Erfindung
  • In 1 ist schematisch ein erfindungsgemäßes Rechensystem 100 mit einem Speicherbereich 110 gezeigt. Auf dem Rechensystem 100 läuft ein Prozess 120 ab, anhand dessen ein erfindungsgemäßes Verfahren in einer bevorzugten Ausführungsform erläutert werden soll.
  • Zunächst soll der Aspekt der räumlichen Freedom-From-Interference zwischen mixed-ASIL-Komponenten - also zwei Prozessabschnitten mit verschiedenen Sicherheitsstufen - innerhalb des Prozesses 120 betrachtet werden. Insbesondere sollen dabei eine Komponente (des Codes bzw. Prozesses) mit einem ASIL-Level ab Level A - dem ersten Prozessabschnitt 121 - und einer Komponente (z.B. eine Library) mit einem QM-Level (keine funktionale Safety-Implementierung) - dem zweiten Prozessabschnitt 122 - betrachtet werden.
  • Das vorgeschlagene Verfahren beruht darauf, dass bei Ausführen von Bereichen des Codes mit geringerem ASIL-Level, also des zweiten Prozessabschnitts 122, der Speicherbereich 110, der vom ASIL-Teil des Codes, also dem ersten Prozessabschnitt 121, genutzt wird, gegen ungewollte Änderungen geschützt werden muss. Hierzu kann eine neue Maschineninstruktion 125 eingeführt werden, die beispielsweise mittels einer Speicherschutzeinheit den Speicherbereich 110, der grundsätzlich als für den Prozess 120 schreibbar (bzw. mit Schreibzugriff) gekennzeichnet ist, zeitweise auf einen Lesezugriff beschränkt bzw. auf „read-only“ schaltet - dies ist hier durch eine Speicherfunktionalität 142 dargestellt. Dies kann auf Seiten des, ggf. hardware-unterstützten, Betriebssystems 140 erfolgen.
  • Bei dem Speicherbereich 110 kann es sich um einen Teil bzw. einen bestimmten Bereich oder auch mehrere Bereiche eines größeren Speichers bzw. einer Speichereinheit handeln. So wird verhindert, dass Code mit QM-Rating schreibend auf den ASIL-Speicher zugreift.
  • Weiterhin wird die Maschineninstruktion 125 mit einem definierten Rücksprungpunkt in den ASIL-Code (also an eine Stelle, an der der Ablauf später wieder fortgesetzt wird) bzw. den ersten Prozessabschnitt 121 parametrisiert. Wird der QM-Code bzw. der zweite Prozessabschnitt 122 (wieder) verlassen, kann eine zweite Maschineninstruktion 126 ausgeführt werden, die atomar (bzw. engl. „atomic“, d.h. im Rahmen eines Vorgangs aus mehreren Teilen, der in Gänze oder gar nicht ausgeführt wird, so dass er von außen als abgeschlossen erscheint.) den „read-only-lock“ (d.h. die Beschränkung auf den Lesezugriff) des Speicherbereichs 110 wieder aufhebt und dann im Programm bzw. Prozess 120 an den vorher festgelegten Rücksprungpunkt springt und dort weiter den ASIL-Code bzw. ersten Prozessabschnitt 121 ausführt.
  • Während der QM-Code läuft, kann dieser einen weiteren Speicherbereich 111 anfordern. Dieser Speicherbereich ist dann beispielsweise für diesen QM-Code schreibbar. Seine Erhaltung nach dem Rücksprung kann unterschiedlich organisiert werden. Entweder kann der weitere Speicherbereich während des Rücksprungs in den ASIL-Teil wieder abgebaut werden (sog. „state-less“-System des QM-Teils), oder der Speicher kann erhalten bleiben, muss dann aber dementsprechend als Speicherbereich des QM-Teils gekennzeichnet sein. Er wäre bei einem erneuten Ansprung des QM-Codes vom „read-only-lock“ ausgenommen.
  • Eine praktische Implementierung dieses Mechanismus kann beispielsweise in Form einer Compiler-Erweiterung (Programmierumgebung) (transparent für einen Entwickler) erfolgen. Eine QM-Komponente (bzw. eine Prozessabschnitts mit zweiten bzw. niedrigeren Sicherheitsstufe im Sinne der Erfindung) ist für einen Compiler in aller Regel identifizierbar. Dies kann z.B. durch die Verortung in einem unabhängigen, gemeinsamen Objekt bzw. einer Bibliothek implementiert sein.
  • Typischerweise liegen bei einer solchen Programmierumgebung einzelne Compile-Units bzw. Einheiten vor, die miteinander verlinkt bzw. verknüpft werden müssen. Wenn hierbei eine Verbindung von QM- und ASIL-Komponenten (also von Prozessabschnitten mit erster und zweiter Sicherheitsstufe im Sinne der Erfindung) identifiziert wird, werden entsprechende Code-Abschnitte (auch als Code-Snippets bezeichnet) zur Beschränkung des Zugriffs auf den Speicherbereich vor Eintritt des Programmablaufs in den QM-Code (d.h. den Prozessabschnitt mit der zweiten Sicherheitsstufe) und zum Aufheben der Beschränkung bei Rücksprung aus dem QM-Code eingefügt. Die Code-Abschnitte selbst sollten nach ASIL-Standards entwickelt werden.
  • Bei nicht eindeutiger Identifizierbarkeit einer Bibliothek als QM-Komponente könnte eine worst-case-Annahme getroffen werden und eine entsprechende Bibliothek grundsätzlich als QM, also mit der zweiten bzw. niedrigeren Sicherheitsstufe, klassifiziert und entsprechend abgeschottet werden.
  • Wenn eine Funktion im Programm- bzw. Prozessablauf aufgerufen werden soll, fügt ein Compiler herkömmlicherweise Code ein, der die Erzeugung eines sog. Funktionsstacks regelt, die „calling convention“ (Übermittlung von Parametern) organisiert und den endgültigen Aufruf der Funktion durchführt. Hier kann dann die neue Maschineninstruktion bzw. der entsprechende Programmcode zum Beschränken des Zugriffs auf den Speicherabschnitt eingefügt werden.
  • Der reguläre Rücksprung aus der Funktion wird durch den Compiler dann z.B. in der Weise angepasst, dass ein sog. Zweisprung stattfindet. Zunächst springt der Prozess vom Prozessabschnitt mit der zweiten bzw. niedrigeren Sicherheitsstufe (also dem QM-Code) zurück zu einem vom Compiler eingesetzten Code-Abschnitt, das die Maschineninstruktion bzw. den Programmcode zur Aufhebung der Beschränkung des Zugriffs auf den Speicherabschnitt enthält. Der zweite Sprung erfolgt atomar (wie vorstehend schon erwähnt) im Rahmen der Maschineninstruktion. Eine Trennung sollte bzw. darf nicht erfolgen, da andernfalls der QM-Code den ASIL-Speicherbereich willentlich oder unwillentlich wieder freischalten könnte und weiter ausgeführt würde.
  • Ein weiterer Aspekt betrifft die zeitliche bzw. temporale Freedom-From-Interference zwischen mixed-ASIL-Komponenten - also den zwei Prozessabschnitten mit verschiedenen Sicherheitsstufen - innerhalb des Prozesses 120. Hierbei sollte bzw. muss sichergestellt werden, dass der QM-Code nicht undefiniert lange läuft und ggf. mehr als ein definiertes Maß an Computer- bzw. Rechen-Ressourcen verbraucht.
  • Dies kann über einen nicht-maskierbaren Timer bzw. eine entsprechende Timer-Funktionaltität 141 erreicht werden. Vor Einsprung in den QM-Code wird ein Timer gesetzt, der vom QM-Code nicht ausgeschaltet werden kann. Dieser Timer kann mit dem Rücksprung in eine Fehlerbehandlungsfunktion (ISR) 130 verbunden werden, die bei Überschreitung des Zeitbudgets, also der vorbestimmten Zeitdauer, greift. Nach Rückkehr aus dem QM-Code kann der Timer durch den ASIL-Code invalidiert, d.h. ungültig gemacht, werden.
  • Funktional kann in der Fehlerbehandlungsfunktion sichergestellt werden, dass Rückgabewerte einen entsprechenden Fehler anzeigen. Die temporale Freedom-From-Interference (bzw. Interferenzvermeidung) setzt in der Regel eine Definition eines funktionalen Error-Return-Values und die Festlegung von Zeitlimits für die Verweildauer innerhalb des QM-Codes voraus.
  • Das Zeitbudget kann hierzu beispielsweise auf der Granularität der gesamten QM-Funktion, einzelner QM-Funktionen oder Unterbereichen festgelegt werden. Es kann entweder eine Eigenschaft des Prozesses selbst sein, und dann über das Betriebssystem verwaltet werden, oder es kann Teil des ASIL-Codes sein.
  • Die Steuerung kann auf verschiedenen Ebenen ermöglicht werden. Über einen Mechanismus im Betriebssystem kann bei Eintritt in den QM-Code (dies ist für das Betriebssystem über den sog. Kontext-Switch, der auch für die räumliche Interferenzvermeidung genutzt wird, sichtbar) die Aktivierung von Timern erfolgen, die aus Sicherheits-Gründen dem QM-Code selbst nicht zugänglich sein sollten bzw. dürfen (d.h. nicht maskierbar). Ein Ablauf des Timers würde zum direkten Rücksprung zum ASIL-Code gemäß der beim Einsprung festgelegten sicheren Rücksprungadresse erfolgen. Zusätzlich können hier die entsprechenden Fehlerregister gesetzt werden, um eine nachgelagerte ASIL-taugliche Fehlerreaktion zu ermöglichen.
  • Die Überwachung des ASIL-Codes kann auf der einen Seite durch die besondere hardware-unterstützten Speicherschutzmechanismen (read-only-flags auf dedizierte Seiten, also die vorhin erwähnte Beschränkung auf den Lesezugriff), die mittels einer entsprechenden Fehlerreaktionsfunktion, die im Betriebssystem gelagert ist, verbunden werden kann, erfolgen. Dies ist in ASIL zu implementieren, wie grundsätzlich bei einem ASIL-tauglichen Betriebssystem. Auf der anderen Seite benötigt man für die temporale Überwachung die zugriffsgeschützten Timer, deren Ablauf und Zugriffsschutz auch in ASIL implementiert werden sollten oder müssen.

Claims (13)

  1. Verfahren zum Betreiben eines Rechensystems (100) mit einem Speicherbereich (110), auf welchem Rechensystem ein Prozess (120), der einen ersten Prozessabschnitt (121) mit einer ersten Sicherheitsstufe umfasst, ausführbar ist und für den ein Schreibzugriff und ein Lesezugriff auf den Speicherbereich (110) möglich und erlaubt sind, wobei der Prozess (120) einen zweiten Prozessabschnitt (122) mit einer zweiten Sicherheitsstufe, die geringer als die erste Sicherheitsstufe ist, umfasst, und wobei, wenn der zweite Prozessabschnitt (122) ausgeführt wird, ein Schreibzugriff für den Prozess (120) auf den Speicherbereich (110) verhindert wird.
  2. Verfahren nach Anspruch 1, wobei der Schreibzugriff für den Prozess (120) auf den Speicherbereich (110) verhindert wird, indem ein Zugriff auf den Speicherbereich (110) auf einen Lesezugriff beschränkt wird.
  3. Verfahren nach Anspruch 1 oder 2, wobei, wenn der zweite Prozessabschnitt (122) nicht mehr ausgeführt wird, ein Schreibzugriff auf den Speicherbereich (110) erlaubt wird.
  4. Verfahren nach Anspruch 3, wobei, wenn der zweite Prozessabschnitt (122) nicht mehr ausgeführt wird, der erste Prozessabschnitt (121) ausgeführt wird.
  5. Verfahren nach einem der vorstehenden Ansprüche, wobei, wenn der zweite Prozessabschnitt (122) ausgeführt wird, ein Schreibzugriff für den Prozess (120) auf einen weiteren Speicherbereich (111) des Rechensystems (100) ermöglicht wird.
  6. Verfahren nach einem der vorstehenden Ansprüche, wobei der zweite Prozessabschnitt (122) höchstens für eine vorbestimmte Zeitdauer ausgeführt wird.
  7. Verfahren nach Anspruch 6, wobei der zweite Prozessabschnitt (122) nach Ablauf der vorbestimmten Zeitdauer automatisch beendet wird, und insbesondere der erste Prozessabschnitt (121) und/oder eine Fehlerreaktionsfunktion (130) ausgeführt werden.
  8. Verfahren nach einem der vorstehenden Ansprüche, bei dem das Rechensystem (100) als ein Steuergerät für ein Fahrzeug ausgebildet ist oder Teil eines solchen Steuergerätes ist.
  9. Verfahren nach einem der vorstehenden Ansprüche, wobei als erste Sicherheitsstufe eine ASIL-Stufe, insbesondere zwischen ASIL-A und ASIL-D, verwend wird, und wobei für die zweite Sicherheitsstufe eine QM-Stufe oder eine ASIL-Stufe, insbesondere zwischen ASIL-A und ASIL-C, verwendet wird.
  10. Rechensystem (100) mit einem Speicherbereich (110), das dazu eingerichtet ist, alle Verfahrensschritte eines Verfahrens nach einem der vorstehenden Ansprüche durchzuführen.
  11. Computerprogramm, das ein Rechensystem (100) mit einem Speicherbereich (110) dazu veranlasst, alle Verfahrensschritte eines Verfahrens nach einem der Ansprüche 1 bis 9 durchzuführen, wenn es auf dem Rechensystem (100) ausgeführt wird.
  12. Maschinenlesbares Speichermedium mit einem darauf gespeicherten Computerprogramm nach Anspruch 11.
  13. Programmierumgebung, welche dazu eingerichtet ist, ausführbaren Programmcode zu erzeugen, der ein Rechensystem mit einem Speicherbereich veranlasst, einen Prozess, der einen ersten Prozessabschnitt mit einer ersten Sicherheitsstufe und einen zweiten Prozessabschnitt mit einer zweiten Sicherheitsstufe, die geringer als die erste Sicherheitsstufe ist, umfasst, auszuführen und dem Prozess während der Ausführung des ersten Prozessabschnitts Schreibzugriff und Lesezugriff auf den Speicherbereich zu gewähren und dem Prozess während der Ausführung des zweiten Prozessabschnitts keinen Schreibzugriff auf den Speicherbereich zu gewähren.
DE102019216226.6A 2019-10-22 2019-10-22 Verfahren zum Betreiben eines Rechensystems und Rechensystem Pending DE102019216226A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102019216226.6A DE102019216226A1 (de) 2019-10-22 2019-10-22 Verfahren zum Betreiben eines Rechensystems und Rechensystem

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102019216226.6A DE102019216226A1 (de) 2019-10-22 2019-10-22 Verfahren zum Betreiben eines Rechensystems und Rechensystem

Publications (1)

Publication Number Publication Date
DE102019216226A1 true DE102019216226A1 (de) 2021-04-22

Family

ID=75268685

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019216226.6A Pending DE102019216226A1 (de) 2019-10-22 2019-10-22 Verfahren zum Betreiben eines Rechensystems und Rechensystem

Country Status (1)

Country Link
DE (1) DE102019216226A1 (de)

Similar Documents

Publication Publication Date Title
DE102014201682A1 (de) Verfahren zur Koexistenz von Software mit verschiedenen Sicherheitsstufen in einem Multicore-Prozessorsystem
EP2698678B1 (de) Konfigurationstechnik für ein Steuergerät mit miteinander kommunizierenden Anwendungen
EP3001313A1 (de) Verfahren zur Simulation eines Anwendungsprogramms eines elektronischen Steuergeräts auf einem Computer
DE102014103139B4 (de) Parallelisierte Ausführung von Single-Core Steuerungssoftware auf Multi-Core Fahrzeugsteuergeräten
DE102015100566A1 (de) Verfahren und leichter Mechanismus für gemischte kritische Anwendungen
DE102019216226A1 (de) Verfahren zum Betreiben eines Rechensystems und Rechensystem
DE3700800A1 (de) Einrichtung zur erzeugung eines fixpunktes in einem mikroprozessor
DE102013016114B3 (de) Bussystem und Verfahren für geschützte Speicherzugriffe
DE102006054705A1 (de) Verfahren zum Betreiben einer Recheneinheit
DE102010042574B4 (de) Verfahren zum Betreiben eines Mikrocontrollers für ein Automobil und Mikrocontroller
EP1387235B1 (de) Verfahren zum Betreiben eines Computersystems und Computersystem
DE102009042666A1 (de) Hardware-Abstraktion in eingebetteten Systemen
DE102016203283A1 (de) Verfahren zum Betreiben eines Mikroprozessors
DE102008048862A1 (de) Testmodul und Verfahren zum Testen einer O/R-Abbildungs-Middleware
EP0991995B1 (de) Unterbrechungsverfahren in einem computersystem mit unterbrechungssteuerung
DE102014209592A1 (de) Verfahren zum Erzeugen einer Hypervisor-Einheit und Hypervisor-Einheit
DE2622140B2 (de) Einrichtung zur Steuerung manueller Operationen
DE102021128101A1 (de) Verfahren zum Erzeugen von Programmcode, Verfahren zum Konfigurieren eines Steuergeräts und Computersystem
EP2216695A1 (de) Verfahren zum Betrieb eines Automatisierungssystems, korrespondierendes Computerprogramm und System oder Gerät, das nach dem Verfahren arbeitet
DE102021205958A1 (de) Computerimplementiertes Verfahren zum Erstellen eines Linker-Codes für einen Erstellungsprozess eines ausführbaren Codes für eine Recheneinheit aus einem Quellcode
DE102021212594A1 (de) Verfahren zum Starten einer Speichereinheit einer Recheneinheit
WO2023066627A1 (de) Priorisieren eines zugriffs von einer containerinstanz auf eine datei in einer dateisystemressource
DE102020200969A1 (de) Verfahren zum Instanziieren mindestens einer Ausführungsumgebung
DE102017208199A1 (de) Recheneinheit und Betriebsverfahren für eine Recheneinheit
EP4312137A1 (de) Berechtigung zu einem installieren und/oder einem starten eines zweiten anwendungsprogramms