DE102015220485A1 - Verfahren zum Schreiben und Lesen eines Datensatzes - Google Patents

Verfahren zum Schreiben und Lesen eines Datensatzes Download PDF

Info

Publication number
DE102015220485A1
DE102015220485A1 DE102015220485.5A DE102015220485A DE102015220485A1 DE 102015220485 A1 DE102015220485 A1 DE 102015220485A1 DE 102015220485 A DE102015220485 A DE 102015220485A DE 102015220485 A1 DE102015220485 A1 DE 102015220485A1
Authority
DE
Germany
Prior art keywords
image
reading
written
writing
read
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
DE102015220485.5A
Other languages
English (en)
Inventor
Daniel Raichle
Benjamin Lechner
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 DE102015220485.5A priority Critical patent/DE102015220485A1/de
Priority to CN201610912859.9A priority patent/CN107025144B/zh
Publication of DE102015220485A1 publication Critical patent/DE102015220485A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • 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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W2050/0001Details of the control system
    • B60W2050/0002Automatic control, details of type of controller or control system architecture
    • B60W2050/0004In digital systems, e.g. discrete-time systems involving sampling
    • B60W2050/0005Processor details or data handling, e.g. memory registers or chip architecture

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Automation & Control Theory (AREA)
  • Transportation (AREA)
  • Mechanical Engineering (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Surgical Instruments (AREA)
  • Image Input (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Schreiben und Lesen eines Datensatzes (100) in wenigstens einer Recheneinheit mit einer Anzahl an Speicherplätzen (201, 202, 203, 204, 305) bei Verwendung ein oder mehrerer Schreibprozesse (300) und ein oder mehrerer Leseprozesse (311, 312, 313), wobei bei jedem Schreibprozess (300) ein Abbild (111, 112, 113, 114) des Datensatzes (100) in einen Speicherplatz (201, 202, 203, 204, 305) geschrieben wird, und wobei bei jedem Leseprozess (311, 312, 313) ein zum Startzeitpunkt des jeweiligen Leseprozesses (311, 312, 313) zuletzt vollständig geschriebenes Abbild des Datensatzes (100) aus einem beschriebenen Speicherplatz gelesen wird.

Description

  • Die vorliegende Erfindung betrifft ein Verfahren zum Schreiben und Lesen eines Datensatzes in wenigstens einer Recheneinheit sowie eine Recheneinheit bzw. einen Recheneinheitenverbund und ein Computerprogramm zu dessen Durchführung.
  • Stand der Technik
  • In Kraftfahrzeugen werden Steuergeräte als Recheneinheiten eingesetzt, um verschiedene Funktionen des Kraftfahrzeugs effektiv zu realisieren. Im Rahmen des Betriebs dieser Steuergeräte ist es in der Regel nötig, dass verschiedene Daten geschrieben und gelesen werden. Um die Konsistenz dieser Daten zu wahren, ist darauf zu achten, dass sich Lese- und Schreibprozesse, d.h. verschiedene Prozesse, die Daten lesen bzw. schreiben müssen, nicht gegenseitig behindern oder beeinflussen.
  • Aus der DE 102 29 520 A1 ist bspw. ein Verfahren bekannt, bei dem für zwei unterschiedlich schnelle Aufgabenprogramme bzw. Prozesse eine Größe zu einem geeigneten Zeitpunkt kopiert wird, so dass das Kopieren der Größe in zeitlich äquidistanten Abständen erfolgt, um eine Datenkonsistenz sicherzustellen.
  • Offenbarung der Erfindung
  • Erfindungsgemäß werden ein Verfahren zum Schreiben und Lesen eines Datensatzes sowie eine Recheneinheit bzw. einen Recheneinheitenverbund 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.
  • Ein erfindungsgemäßes Verfahren dient zum Schreiben und Lesen eines Datensatzes in wenigstens einer Recheneinheit mit einer Anzahl an Speicherplätzen bei Verwendung ein oder mehrerer Schreibprozesse und ein oder mehrerer Leseprozesse. Dabei wird bei jedem Schreibprozess ein Abbild des Datensatzes in einen Speicherplatz geschrieben, und bei jedem Leseprozess wird ein zum Startzeitpunkt des jeweiligen Leseprozesses zuletzt vollständig geschriebenes Abbild des Datensatzes aus einem beschriebenen Speicherplatz gelesen. Ein Inhalt des Datensatzes ändert sich üblicherweise bei einem solchen Schreiprozess. Bei der wenigstens einen Recheneinheit kann es sich insbesondere um wenigstens eine Recheneinheit eines Kraftahrzeugs, bspw. in einem Steuergerät eines Kraftfahrzeugs, handeln.
  • Um eine Konsistenz des Datensatzes zu gewährleisten, kann für jeden Leseprozess ein eigenes Abbild im Sinne einer Kopie des Datensatzes erstellt werden, das gelesen wird. Ebenfalls kann bei jedem Schreibprozess ein eigenes Abbild des Datensatzes geschrieben werden, das nach Abschluss des Schreibens auf den Datensatz kopiert wird. Dabei ist jedoch darauf zu achten, dass während eines Kopiervorgangs eines geschriebenen Abbildes auf den Datensatz kein Abbild für einen Lesevorgang erstellt wird und dass während des Erstellens eines Abbildes für einen Lesevorgang kein geschriebenes Abbild auf den Datensatz kopiert wird, um die Konsistenz des Datensatzes zu gewährleisten. Dies wird auch als wechselseitiger Ausschluss (engl. Mutual Exclusion) bezeichnet. Dies führt jedoch zu langen Zeitdauern, während welcher Rechenleistung ungenutzt bleibt.
  • Bei dem vorgeschlagenen Verfahren hingegen wird die Zeitdauer, in welcher Rechenleistung ungenutzt bleibt, deutlich reduziert. Dies wird dadurch erreicht, dass nicht für jeden Leseprozess ein eigenes Abbild erstellt werden muss, während welcher Erstellung möglicherweise auf das Kopieren eines geschriebenen Abbildes auf den Datensatz gewartet werden müsste. Stattdessen kann nun der Leseprozess einfach das zuletzt vollständig geschriebene Abbild, d.h. das aktuellste vollständige Abbild, aus dem zugehörigen Speicherplatz lesen, ohne auf einen möglichen Kopiervorgang eines geschriebenen Abbildes warten zu müssen.
  • Besonders vorteilhaft ist das vorgeschlagene Verfahren auch für mehrere Prozesse, die gleichzeitig lesen und schreiben, und insbesondere auf mehreren Rechenkernen einer Multi-Core-Einheit, insbesondere unter Nutzung von statisch zugewiesenem Speicher (d.h. die Anzahl der Speicherplätze, die von den Prozessen verwendet werden können, ist vorab festgelegt), ausgeführt werden.
  • Vorzugsweise wird bei jedem Schreibprozess ein Abbild des Datensatzes in einen Speicherplatz geschrieben wird, von dem nicht gelesen wird und in den nicht im Rahmen eines anderen Schreibprozesses geschrieben wird. Auf diese Weise kann erreicht werden, dass kein Leseprozess während eines Schreibprozesses behindert oder abgebrochen wird. Um zu gewährleisten, dass ein Schreibprozess nicht in einen Speicherbereich schreibt, von dem gerade gelesen wird, kann bspw. vorgesehen sein, dass ein Lesevorgang während des Lesens entsprechend mitteilt, dass der betreffende Speicherplatz gerade verwendet wird. Auch bei einem anderen Schreibprozess kann dies bspw. auf diese Weise realisiert werden.
  • Vorteilhafterweise wird bei keinem Schreibprozess ein Abbild des Datensatzes in denjenigen Speicherplatz geschrieben, in den zuletzt vollständig ein Abbild des Datensatzes geschrieben wurde. Auf diese Weise kann gewährleistet werden, dass immer das aktuellste Abbild des Datensatzes für die Verwendung durch einen Leseprozess sichergestellt ist.
  • Es ist von Vorteil, wenn jedes Abbild des Datensatzes aus dem jeweiligen Speicherplatz gleichzeitig im Rahmen verschiedener Leseprozesse gelesen werden kann. Dies ermöglicht eine besonders effektive Speicherausnutzung.
  • Vorzugsweise wird das zuletzt vollständig geschriebene Abbild des Datensatzes mittels eines Verweises auf dieses Abbild für nachfolgende Leseprozesse lesbar gemacht. Ein solcher Verweis kann bspw. mittels eines sog. globalen Zeigers oder Pointers erfolgen, den dann jeder Leseprozess, der das aktuellste Abbild verwenden will, in seinen eigenen lokalen Zeiger bzw. Pointer kopieren kann. Auf diese Weise kann also sehr einfach für die Leseprozesse das aktuellste bzw. zuletzt geschriebene Abbild lesbar gemacht werden.
  • Vorteilhafterweise wird bei einer Initialisierung der wenigstens einen Recheneinheit ein Abbild des Datensatzes in einen Speicherplatz geschrieben. Auf diese Weise steht auch dann einem Leseprozess ein Abbild zum Lesen zur Verfügung, wenn nach der Initialisierung bzw. dem Start der wenigstens einen Recheneinheit noch kein Schreibprozess ein Abbild in einen Speicherplatz geschrieben hat.
  • Zweckmäßigerweise wird als die Anzahl an Speicherplätzen wenigstens eine um eins erhöhte Anzahl der Schreibprozesse und Leseprozesse verwendet. Auf diese Weise stehen auch für den Fall, dass zeitgleich jeder Leseprozess aus einem anderen Speicherbereich lesen will, was vorkommen kann, wenn zum Startzeitpunkt eines jeden der Leseprozesse bereits ein neues aktuellstes Abbild zur Verfügung steht, und jeder Schreibprozess schreiben will, genügend Speicherplätze zur Verfügung. Der eine zusätzliche Speicherplatz ist dabei für das aktuellste Abbild vorgesehen, welches vorzugsweise nicht überschrieben werden soll. Dabei ist zu bedenken, dass bei Recheneinheiten in Kraftfahrzeugen in der Regel der Autosar-Standard verwendet wird, bei dem keine dynamische Erzeugung von Speicherplätzen möglich ist und somit eine geeignete Anzahl an Speicherplätzen von vorneherein vorgehalten werden sollte.
  • Weiterhin ist es für das vorgeschlagene Verfahren zweckmäßig, dass die Speicherbereiche atomar reserviert werden können, d.h. dass bspw. die Anforderung eines Leseprozesses, von einem Speicherbereich zu lesen, ununterbrochen ausgeführt werden kann. Somit kann während der Anforderung zum Lesen nicht ein Schreibprozess beginnen, ein Abbild in den betreffenden Speicherplatz zu schreiben.
  • Eine erfindungsgemäße Recheneinheit, z.B. ein Steuergerät eines Kraftfahrzeugs, und ein erfindungsgemäßer Recheneinheitenverbund, sind, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen.
  • Auch die Implementierung des Verfahrens in Form eines Computerprogramms 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.
  • 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.
  • Kurze Beschreibung der Zeichnungen
  • 1 zeigt schematisch einen Ablauf eines nicht erfindungsgemäßen Verfahrens zum Schreiben und Lesen eines Datensatzes.
  • 2 bis 7 zeigen schematisch einen Ablauf eines erfindungsgemäßen Verfahrens in einer bevorzugten Ausführungsform zu verschiedenen Zeitpunkten.
  • Ausführungsform(en) der Erfindung
  • In 1 ist schematisch ein Ablauf eines nicht erfindungsgemäßen Verfahrens zum Schreiben und Lesen eines Datensatzes dargestellt. Beispielhaft sind ein Schreibprozess 300 und drei Leseprozesse 311, 312, 313 gezeigt, die in einen Datensatz 100 schreiben bzw. den Datensatz 100 lesen.
  • Bei dem Schreibprozess bzw. den Leseprozessen kann es sich bspw. um verschiedenen Anwendungen oder verschiedene Schritte einer Anwendung beim Betrieb eines Kraftfahrzeugs handeln, die auf den Datensatz zugreifen wollen.
  • Bei dem Datensatz kann es sich bspw. um eine Information handeln, die zum einen immer wieder aktualisiert wird und die zum anderen immer wieder, möglichst in ihrer aktuellsten Version, benötigt wird.
  • Um in den Datensatz 100 zu schreiben, kann hier nun zunächst von dem Schreibprozess ein Abbild 101 in einen Speicherbereich 201 geschrieben werden. Nachdem der Schreibprozess 300 das Abbild 101 fertig gestellt hat, kann dieses Abbild 101 auf den Datensatz 100 kopiert werden, so dass der Datensatz 100 aktuell ist.
  • Um den Datensatz 100 zu lesen, kann von jedem der Leseprozesse 311, 312, 313 jeweils ein eigenes Abbild 102, 103 bzw. 104 des Datensatzes 100 in einen zugeordneten Speicherbereich 202, 203 bzw. 204 kopiert und von dort gelesen werden.
  • Dabei ist zu beachten, dass, während das geschriebene Abbild 101 auf den Datensatz 100 kopiert und während eines der Abbilder 102, 103, 104 von dem Datensatz 100 kopiert wird, für jeden dieser Kopiervorgänge andere Vorgänge ausgeschlossen werden müssen, damit die Konsistenz des Datensatzes 100 gewahrt bleibt. Während dieses wechselseitigen Ausschlusses können dementsprechend die ausgeschlossenen Prozesse nicht arbeiten, wodurch Leistung verloren geht bzw. ungenutzt bleibt.
  • In den 2 bis 7 ist schematisch ein Ablauf eines erfindungsgemäßen Verfahrens in einer bevorzugten Ausführungsform zu verschiedenen Zeitpunkten dargestellt. Auch hier sind beispielhaft ein Schreibprozess 300 und drei Leseprozesse 311, 312, 313 dargestellt, die in den Datensatz 100 schreiben bzw. den Datensatz 100 lesen. Insgesamt sind fünf Speicherplätze 201, 202, 203, 204, 205 vorgesehen, d.h. ein Speicherplatz mehr als Schreib- und Leseprozesse vorhanden sind. Das Verfahren kann dabei auf einer Recheneinheit 180, bspw. einem Steuergerät, ausgeführt werden. Der Übersichtlichkeit halber ist die Recheneinheit nur in 2 dargestellt.
  • In 2 ist nun das Verfahren zu einem Zeitpunkt bspw. unmittelbar nach einer Initialisierung der Recheneinheit 180, auf welcher das Verfahren ausgeführt wird, gezeigt. Dabei wird ein Abbild 111 in einen der Speicherplätze, von denen zu diesem Zeitpunkt noch keiner verwendet wird, hier den Speicherplatz 201, geschrieben. Das Schreiben dieses Abbilds 111, welches zu diesem Zeitpunkt das einzige und somit auch das aktuellste Abbild des Datensatzes 100 darstellt, kann bspw. in den Initialisierungsprozess der Recheneinheit integriert sein.
  • Weiterhin wird ein Verweis 250, bspw. in Form eines sog. Pointers oder Zeigers, erstellt, welcher immer den Speicherplatz, in welchem das aktuellste Abbild des Datensatzes, hier also das Abbild 111 in dem Speicherplatz 201, angibt und für die Leseprozesse 311, 312, 313 sichtbar ist.
  • In 3 ist nun das Schreiben eines Abbildes durch den Schreibprozess 300 gezeigt. Der Schreibprozess wählt hierzu einen Speicherplatz, in dem sich nicht das aktuellste Abbild 111 befindet und von welchem auch nicht gelesen wird, aus und schreibt ein Abbild des Datensatzes in diesen Speicherplatz, hier den Speicherplatz 202.
  • In 4 ist nun das Lesen des Abbildes 111 durch den Leseprozess 311 gezeigt, während der Schreibprozess 300 weiterhin in den Speicherplatz 202 schreibt. Der Leseprozess 311 weiß durch den Verweis 250, in welchem Speicherplatz sich das aktuellste Abbild befindet, hier das Abbild 111 in dem Speicherplatz 201, welches er lesen kann.
  • Während der Leseprozess 311 von dem Speicherbereich 201 liest, kann ein sog. Semaphor 271 gesetzt werden, damit ein Schreibprozess, der in einen Speicherplatz schreiben will, weiß, welcher Speicherplatz gerade in Verwendung ist und demnach nicht beschrieben werden darf.
  • In 5 ist zusätzlich zu 4 das Lesen des Abbildes 111 durch den Leseprozess 312 gezeigt. Auch der Leseprozess 312 weiß aufgrund des Verweises 250, in welchem Speicherplatz sich das aktuellste Abbild des Datensatzes befindet. Auch der Leseprozess 312 setzt ein Semaphor 272, um den Speicherplatz 201 als verwendet zu markieren.
  • Nach Beendigung eines Leseprozesses kann dann auch das jeweilige Semaphor gelöscht werden. Auf diese Weise wird ein Speicherplatz, von dem nicht mehr gelesen wird und wenn es sich nicht um den Speicherplatz mit dem aktuellsten Abbild handelt, zum Schreiben bzw. Überschreiben für einen Schreibprozess freigegeben werden. Da ein neuer Leseprozess immer das aktuellste Abbild liest, kann ein solches älteres Abbild auch ohne Bedenken überschrieben werden.
  • In 6 ist nun der Schreibprozess 300 mit dem Schreiben in den Speicherplatz 202 fertig und befindet sich bereits beim Schreiben eines neuen Abbildes in den Speicherplatz 203. Das vollständig geschriebene Abbild 112 in dem Speicherplatz 202 ist nun das aktuellste Abbild, weswegen der Verweis 250 nun auf den Speicherplatz 202 zeigt. Ein Leseprozess, welcher mit dem Lesen eines Abbildes beginnt, wird daher das Abbild 212 in dem Speicherplatz 202 lesen, wie dies im hier gezeigten Fall bei dem Leseprozess 311 der Fall ist. Entsprechend wird auch das Semaphor 271 bei dem Speicherplatz 202 gesetzt.
  • Der Leseprozess 312 ist jedoch bspw. noch nicht mit dem Lesen des Abbilds 111 in dem Speicherplatz 201 fertig, so dass der Leseprozess 312 weiterhin auf den Speicherplatz 201 zugreift. Der Speicherplatz 201 kann somit, obwohl bereits ein aktuelleres Abbild des Datensatzes existiert, noch nicht neu beschrieben werden.
  • In 7 ist nun ein Fall gezeigt, bei dem jeder der drei Leseprozesse 311, 312, 313 von einem anderen Speicherplatz, hier den Speicherplätzen 201, 202, 203, das jeweilige Abbild 112, 111 bzw. 113 liest. Das Lesen ist dabei mittels der Semaphore 272, 271, 273 gezeigt, was dazu führt, dass diese drei Speicherplätze 311, 312, 313 noch nicht neu beschrieben werden dürfen.
  • Weiterhin ist das aktuellste Abbild nunmehr jedoch bereits das Abbild 114 in dem Speicherplatz 204, was mittels des Verweises 250 gezeigt ist. Da der Schreibprozess 300 bereits erneut ein Abbild schreibt, muss er hierzu auf den Speicherplatz 205 zugreifen, weil alle übrigen Speicherplätze aus den genannten Gründen noch nicht beschrieben werden dürfen. Dies zeigt, warum die Anzahl an Speicherplätzen um eins höher sein sollte, als insgesamt Prozesse vorhanden sind. Auf diese Weise wird tritt keine Wartezeit auf.
  • Insbesondere ist anzumerken, dass bei dem vorgeschlagenen Verfahren jeder Leseprozess, der den Datensatz 100 lesen will, ohne Wartezeit auf das aktuellste Abbild des Datensatzes 100 zugreifen und dieses lesen kann. Zugleich kann jedoch auch jeder Schreibprozess ohne Wartezeit ein Abbild in einen Speicherplatz schreiben. Durch die Verwendung des Verweises kann dabei auch sichergestellt werden, dass jeder Leseprozess vom zum Zeitpunkt des Beginns des Leseprozess aktuellsten Abbild liest.
  • Weiterhin ist bei dem vorgeschlagen Verfahren vorteilhaft, dass – im Vergleich zu dem in 1 gezeigten Verfahren – nicht mehr in den Datensatz 100 kopiert werden muss, was lange Wartezeiten für Leseprozesse verursachen kann. Insgesamt wird durch das vorgeschlagene Verfahren nicht nur Jitter im System reduziert, sondern es wird auch eine Buslast im System reduziert, da keine zusätzlichen Kopien mehr erzeugt werden müssen. Zudem wird die verfügbare Systemleistung besser ausgenutzt.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • DE 10229520 A1 [0003]

Claims (10)

  1. Verfahren zum Schreiben und Lesen eines Datensatzes (100) in wenigstens einer Recheneinheit (180) einer Anzahl an Speicherplätzen (201, 202, 203, 204, 305) bei Verwendung ein oder mehrerer Schreibprozesse (300) und ein oder mehrerer Leseprozesse (311, 312, 313), wobei bei jedem Schreibprozess (300) ein Abbild (111, 112, 113, 114) des Datensatzes (100) in einen Speicherplatz (201, 202, 203, 204, 305) geschrieben wird, und wobei bei jedem Leseprozess (311, 312, 313) ein zum Startzeitpunkt des jeweiligen Leseprozesses (311, 312, 313) zuletzt vollständig geschriebenes Abbild des Datensatzes (100) aus einem beschriebenen Speicherplatz gelesen wird.
  2. Verfahren nach Anspruch 1, wobei bei jedem Schreibprozess (300) ein Abbild des Datensatzes (100) in einen Speicherplatz geschrieben wird, von dem nicht gelesen wird und in den nicht im Rahmen eines anderen Schreibprozesses geschrieben wird.
  3. Verfahren nach Anspruch 1 oder 2, wobei bei keinem Schreibprozess ein Abbild des Datensatzes (100) in denjenigen Speicherplatz geschrieben wird, in den zuletzt vollständig ein Abbild des Datensatzes (100) geschrieben wurde.
  4. Verfahren nach einem der vorstehenden Ansprüche, wobei jedes Abbild (111, 112, 113, 114) des Datensatzes (100) aus dem jeweiligen Speicherplatz gleichzeitig im Rahmen verschiedener Leseprozesse (311, 312, 313) gelesen werden kann.
  5. Verfahren nach einem der vorstehenden Ansprüche, wobei das zuletzt vollständig geschriebene Abbild des Datensatzes (100) mittels eines Verweises (250) auf dieses Abbild für nachfolgende Leseprozesse lesbar gemacht wird.
  6. Verfahren nach einem der vorstehenden Ansprüche, wobei bei einer Initialisierung der wenigstens einen Recheneinheit (180) ein Abbild (111) des Datensatzes (100) in einen Speicherplatz (201) geschrieben wird.
  7. Verfahren nach einem der vorstehenden Ansprüche, wobei als die Anzahl an Speicherplätzen (201, 202, 203, 204, 305) wenigstens eine um Eins erhöhte Anzahl der Schreibprozesse und Leseprozesse verwendet wird.
  8. Recheneinheit (180) oder Recheneinheitenverbund, die bzw. der dazu eingerichtet ist, ein Verfahren nach einem der vorstehenden Ansprüche durchzuführen.
  9. Computerprogramm, das eine Recheneinheit (180) oder einen Recheneinheitenverbund dazu veranlasst, ein Verfahren nach einem der Ansprüche 1 bis 7 durchzuführen, wenn es auf der Recheneinheit (180) bzw. auf dem Recheneinheitenverbund ausgeführt wird.
  10. Maschinenlesbares Speichermedium mit einem darauf gespeicherten Computerprogramm nach Anspruch 9.
DE102015220485.5A 2015-10-21 2015-10-21 Verfahren zum Schreiben und Lesen eines Datensatzes Pending DE102015220485A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102015220485.5A DE102015220485A1 (de) 2015-10-21 2015-10-21 Verfahren zum Schreiben und Lesen eines Datensatzes
CN201610912859.9A CN107025144B (zh) 2015-10-21 2016-10-20 用于写入以及读取数据集的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102015220485.5A DE102015220485A1 (de) 2015-10-21 2015-10-21 Verfahren zum Schreiben und Lesen eines Datensatzes

Publications (1)

Publication Number Publication Date
DE102015220485A1 true DE102015220485A1 (de) 2017-04-27

Family

ID=58490124

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015220485.5A Pending DE102015220485A1 (de) 2015-10-21 2015-10-21 Verfahren zum Schreiben und Lesen eines Datensatzes

Country Status (2)

Country Link
CN (1) CN107025144B (de)
DE (1) DE102015220485A1 (de)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10229520A1 (de) 2002-07-01 2004-01-15 Robert Bosch Gmbh Verfahren und Vorrichtung sowie Betriebssystem zur Steuerung von Vorgängen bei einem Fahrzeug

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6115804A (en) * 1999-02-10 2000-09-05 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system that permits multiple caches to concurrently hold data in a recent state from which data can be sourced by shared intervention
US7437389B2 (en) * 2004-03-10 2008-10-14 Hitachi, Ltd. Remote copy system
JP4104586B2 (ja) * 2004-09-30 2008-06-18 株式会社東芝 ファイル管理機能を備えたファイルシステム及びファイル管理方法
US7779423B2 (en) * 2006-11-03 2010-08-17 International Business Machines Corporation Detecting entity changes in a storage area network environment
US10133820B2 (en) * 2007-06-29 2018-11-20 Veritas Technologies Llc Techniques for performing intelligent content indexing
EP2196895A1 (de) * 2008-12-09 2010-06-16 Thomson Licensing System zum Speichern und/oder Abrufen eines Datensatzes und zugehöriges Verfahren
DE102010040115A1 (de) * 2010-09-01 2012-03-01 Robert Bosch Gmbh Verfahren zum Bereitstellen von Informationen für ein Steuergerät
CN102662852B (zh) * 2012-03-20 2015-05-27 山东省科学院自动化研究所 一种利用MCU内部数据Flash存储非易失性数据的方法
US9442840B2 (en) * 2012-12-19 2016-09-13 Qualcomm Incorporated Virtual boundary codes in a data image of a read-write memory device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10229520A1 (de) 2002-07-01 2004-01-15 Robert Bosch Gmbh Verfahren und Vorrichtung sowie Betriebssystem zur Steuerung von Vorgängen bei einem Fahrzeug

Also Published As

Publication number Publication date
CN107025144A (zh) 2017-08-08
CN107025144B (zh) 2022-04-05

Similar Documents

Publication Publication Date Title
DE112010004931B4 (de) Mehrphasige Wiederherstellung von Dateisystemen mit Selektiver Bedarfsweiser Verfügbarkeit von Daten
DE112017005868T5 (de) Verwaltung von e/a-abläufen für datenobjekte in einem speichersystem
DE102009019271A1 (de) Übertragen von Sequenzzahlen für das Wiederherstellen nach Stromausfall bei einem nichtflüchtigen Speicher
DE112011102076T5 (de) Neuordnen des Zugriffs zum Verringern der Gesamtsuchzeit auf Bandmedien
DE112010004667T5 (de) Speichervorrichtung und Speichersteuerung
DE102017119065B4 (de) Aktualisieren eines Speichers
DE102018202446A1 (de) Verfahren zum Modularisieren einer Softwarearchitektur
EP1067460A1 (de) Datenträger mit wiederherstellbarem Basisdatengrundzustand und Verfahren zu dessen Herstellung
DE102015119202A1 (de) Schnittstelleneinheit zur Weiterleitung priorisierter Eingangsdaten an einen Prozessor
DE102008001162A1 (de) Zurücksetzverfahren und Informationsverarbeitungsvorrichtung, die dieses ausführt
DE112018005998B4 (de) Kopieren und weiterleiten für eine gleichzeitig ablaufende kopierende garbage-collection
EP3129891B1 (de) Verfahren zum verbesserten zugriff auf einen hauptspeicher eines computersystems, entsprechendes computersystem sowie computerprogramm-produkt
DE112019006886T5 (de) Systementwicklungsunterstützungsvorrichtung, Verfahren, Programm und Aufzeichnungsmedium
DE102015220485A1 (de) Verfahren zum Schreiben und Lesen eines Datensatzes
DE102021131057A1 (de) System und Verfahren zur Ausführung einer Aufgabe eines Betriebssystems für ein Fahrzeug
EP2812788B1 (de) Verfahren zum löschen von informationen, verwendung eines verfahrens, computerprogrammprodukt und computersystem
DE112015002881B4 (de) Speichervorrichtung, Flash-Speicher-Steuervorrichtung und Programm
DE102015118522A1 (de) Verfahren und Vorrichtung zum beschleunigten Ausführen von Applikationen
DE102015218589A1 (de) Verfahren und Vorrichtung zum Betreiben eines Many-Core-System
DE10260103A1 (de) Verfahren und Vorrichtung zur Änderung von Software in einem Steuergerät sowie entsprechendes Steuergerät
WO2009103728A1 (de) Verfahren und vorrichtung zum speichern von informationsdaten
DE102021117739B4 (de) Verwaltung von Zugriffen mehrerer Applikationen auf einen Datenspeicher
EP2711793B1 (de) Verfahren zum Betreiben eines Bediengeräts zur Steuerung einer technischen Anlage
DE102022003674A1 (de) Verfahren zum statischen Allozieren von lnformationen zu Speicherbereichen, informationstechnisches System und Fahrzeug
DE102017119068B4 (de) Aktualisieren eines Speichers

Legal Events

Date Code Title Description
R012 Request for examination validly filed