JP2023036774A - 共有メモリのアクセス制御方法、共有メモリのアクセス制御装置、電子機器および自動運転車両 - Google Patents
共有メモリのアクセス制御方法、共有メモリのアクセス制御装置、電子機器および自動運転車両 Download PDFInfo
- Publication number
- JP2023036774A JP2023036774A JP2022203473A JP2022203473A JP2023036774A JP 2023036774 A JP2023036774 A JP 2023036774A JP 2022203473 A JP2022203473 A JP 2022203473A JP 2022203473 A JP2022203473 A JP 2022203473A JP 2023036774 A JP2023036774 A JP 2023036774A
- Authority
- JP
- Japan
- Prior art keywords
- shared memory
- data
- index
- block
- access control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 208
- 238000000034 method Methods 0.000 title claims abstract description 204
- 230000008569 process Effects 0.000 claims abstract description 152
- 239000000872 buffer Substances 0.000 claims abstract description 72
- 238000004590 computer program Methods 0.000 claims description 13
- 230000008859 change Effects 0.000 claims description 5
- 238000004891 communication Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000003044 adaptive effect Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 101000822695 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C1 Proteins 0.000 description 1
- 101000655262 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C2 Proteins 0.000 description 1
- 101000655256 Paraclostridium bifermentans Small, acid-soluble spore protein alpha Proteins 0.000 description 1
- 101000655264 Paraclostridium bifermentans Small, acid-soluble spore protein beta Proteins 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
- G06F12/0669—Configuration or reconfiguration with decentralised address assignment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1008—Correctness of operation, e.g. memory ordering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/17—Embedded application
- G06F2212/173—Vehicle or other transportation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/254—Distributed memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
Abstract
【課題】共有メモリのアクセス制御方法、共有メモリのアクセス制御装置、電子機器及び自動運転車両を提供する。【解決手段】共有メモリのアクセス制御方法は、共有メモリを作成及び初期化する。初期化された共有メモリには、複数の領域構成オブジェクト、複数のブロック構成オブジェクト及び複数のデータバッファが含まれる。方法はさらに、第1のプロセスの書き込み対象データのデータ量に基づいて、少なくとも1つのターゲットブロックを決定し、第1のプロセスにより、書き込み対象データを少なくとも1つのターゲットブロックに対応するターゲットデータバッファに書き込み、少なくとも1つのターゲットブロックの構成情報をターゲット領域に対応する領域構成オブジェクトに記憶し、ターゲットデータバッファの構成情報を少なくとも1つのターゲットブロックに対応するブロック構成オブジェクトに記憶する。【選択図】図1
Description
本開示は、人工知能技術分野における無人運転、操作システム技術に関し、特に共有メモリのアクセス制御方法、共有メモリのアクセス制御装置、電子機器および自動運転車両に関する。
同一のホストでは、異なるモジュールは異なるプロセス空間にある可能性があり、プログラムの実行効率およびシステム性能を向上させるために、同一のホストの複数のプロセスの通信は共有メモリを利用して実現される。
複数のプロセスが共有メモリを介して通信する必要がある時、通常、そのうちの1つのプロセスが先に起動して、指定されたサイズの1つの共有メモリを作成し、メモリの初期化が完了した後に、他のプロセスが起動し、他のプロセスが共有メモリを自身のプロセス空間にマッピングすることに事前に合意されている。その後、当該複数のプロセスは共有メモリを介して通信することができ、通常、1つのプロセスが共有メモリにデータを書き込み、他のプロセスがデータを照会または読み出す。現在の案に存在する課題は、共有メモリの構成が一定しており、適応長のデータ書き込みがサポートされていないことである。
本開示は、適応長のデータの書き込みを実現した共有メモリのアクセス制御方法、共有メモリアクセス装置、電子機器および自動運転車両を提供する。
本開示の第1の態様によれば、共有メモリを作成および初期化するステップであって、初期化された共有メモリには複数の領域構成オブジェクト、複数のブロック構成オブジェクトおよび複数のデータバッファが含まれるステップと、第1のプロセスに対応する書き込み対象データのデータ量に基づいて、少なくとも1つのターゲットブロックを決定するステップと、前記第1のプロセスにより、前記書き込み対象データを前記少なくとも1つのターゲットブロックに対応するターゲットデータバッファに書き込み、前記少なくとも1つのターゲットブロックの構成情報をターゲット領域に対応する領域構成オブジェクトに記憶し、前記ターゲットデータバッファの構成情報を前記少なくとも1つのターゲットブロックに対応するブロック構成オブジェクトに記憶するステップと、を含む、共有メモリのアクセス制御方法が提供される。
本開示の第2の態様によれば、共有メモリを作成および初期化するように構成される作成モジュールであって、初期化された共有メモリには複数の領域構成オブジェクト、複数のブロック構成オブジェクトおよび複数のデータバッファが含まれる作成モジュールと、第1のプロセスに対応する書き込み対象データのデータ量に基づいて、少なくとも1つのターゲットブロックを決定するように構成される決定モジュールと、前記第1のプロセスにより、前記書き込み対象データを前記少なくとも1つのターゲットブロックに対応するターゲットデータバッファに書き込み、前記少なくとも1つのターゲットブロックの構成情報をターゲット領域に対応する領域構成オブジェクトに記憶し、前記ターゲットデータバッファの構成情報を前記少なくとも1つのターゲットブロックに対応するブロック構成オブジェクトに記憶するように構成される書き込みモジュールと、を備える、共有メモリのアクセス制御装置が提供される。
本開示の第3の態様によれば、 少なくとも1つのプロセッサと、該少なくとも1つのプロセッサと通信可能に接続されるメモリと、を備え、前記メモリには、前記少なくとも1つのプロセッサによって実行可能な命令が記憶されており、前記命令が前記少なくとも1つのプロセッサによって実行される場合、前記少なくとも1つのプロセッサが上記第1の態様に記載の共有メモリのアクセス制御方法を実行できる電子機器が提供される。
本開示の第4の態様によれば、コンピュータに上記第1の態様に記載の共有メモリのアクセス制御方法を実行させるためのコンピュータ命令を記憶した非一時的コンピュータ読み取り可能な記憶媒体が提供される。
本開示の第5の態様によれば、プロセッサによって実行される場合、第1の態様に記載の共有メモリのアクセス制御方法を実行するコンピュータプログラムが提供される。
本開示の第6の態様によれば、第3の態様に記載の電子機器を備える自動運転車両が提供される。
本開示の技術案によれば、共有メモリへの適応長のデータの書き込みを実現した。
なお、この概要部分で説明される内容は本開示の実施例の肝心または重要な特徴を特定するためのものではなく、本開示の範囲を限定するものでもないことを理解されたい。本開示の他の特徴は以下の明細書によって理解しやすくなる。
図面は本解決案をよりよく理解するためのものであり、本開示を限定するものではない。
本開示の実施例に係る共有メモリのアクセス制御方法の概略フローチャートである。
本開示の実施例に係る共有メモリの概略構成図である。
本開示の実施例に係る共有メモリのヘッドオブジェクトの概略構成図である。
本開示の実施例に係るプロセスが共有メモリにアクセスする概略図である。
本開示の実施例に係る共有メモリのアクセス制御装置の概略構成図である。
本開示の実施例に係る共有メモリのアクセス制御方法を実現するように構成される電子機器の概略ブロック図である。
以下、図面を参照して本開示の例示的な実施例を説明し、理解を助けるために、その中には本開示の実施例の様々な詳細が含まれており、それらを単なる例示するものとして見なすべきである。そのため、当業者であれば、本開示の範囲および主旨から逸脱しない限り、ここで説明される実施例に対して様々な変更および修正を行うことができることを認識されたい。同様に、明確と簡潔のために、以下の説明では、周知機能および構造に関する説明が省略されている。
本開示の実施例の解決案では、共有メモリの構造を最適化する。共有メモリは論理的に領域(Region)、ブロック(Block)およびデータバッファ(Buffer)に分割され、領域は1つまたは複数のブロックを含み、各ブロックは1つのデータバッファに対応しており、領域構成オブジェクトにより、記憶領域に含まれるブロックの構成情報を記憶し、ブロック構成オブジェクトにより、記憶ブロックに対応するデータバッファの構成情報を記憶し、データを書き込む時に、書き込み対象データ長に基づいて1つまたは複数のブロックを決定し、書き込み対象データを、当該1つまたは複数のブロックに対応する1つまたは複数のデータバッファに書き込み、同時に、当該1つまたは複数のデータバッファの構成情報を、当該1つまたは複数のブロックに対応するブロック構成オブジェクトに書き込み、当該1つまたは複数のブロックの構成情報を、対応する領域の領域構成オブジェクトに書き込み、これにより、領域に含まれるブロックの数は、書き込み対象データ長によって決定され、適応長のデータの書き込みが実現される。
本開示は、人工知能技術分野の無人運転、操作システム分野に適用され、具体的には、車載システムの操作システムに適用され、共有メモリ内への適応長のデータの書き込みを実現した共有メモリのアクセス制御方法、共有メモリのアクセス制御装置、電子機器、記憶媒体、プログラム製品および自動運転車両を提供する。
以下、具体的な実施例を用いて、本開示に係る共有メモリのアクセス制御方法を詳しく説明する。なお、以下のいくつかの具体的な実施例は互いに組み合わせることができ、同じまたは類似した概念またはプロセスについて、一部の実施例ではその詳しい説明が省略されることはある。
図1は、本開示の実施例に係る共有メモリのアクセス制御方法の概略フローチャートである。当該方法の実行主体は共有メモリのアクセス制御装置であり、当該装置はソフトウェアおよび/またはハードウェアの方式で実現することができる。図1に示すように、当該方法は以下のS101~S103を含む。
S101において、共有メモリを作成および初期化し、初期化された共有メモリには複数の領域構成オブジェクト、複数のブロック構成オブジェクトおよび複数のデータバッファが含まれる。
このステップでは、共有メモリを作成および初期化するプロセスは、共有メモリを介して通信する必要のある複数のプロセスのうちのいずれか1つであってもよく、例えば、複数のプロセスのうち最初に起動して実行されるプロセスが共有メモリを作成および初期化し、その後に起動して実行されるその他のプロセスが、初期化された共有メモリの構成情報を自身のプロセスに更新することができるが、最初に起動して実行されるプロセスは、特定のプロセスに限定されない。
共有メモリは、論理的には領域、ブロックおよびデータバッファに分割され、ここで、領域は1つまたは複数のブロックを含み、各ブロックは1つのデータバッファを指し、各データバッファは1セグメントの連続メモリを指し、ブロックは共有メモリを割り当てる最小単位である。領域、ブロックおよびデータバッファの管理を実現するために、共有メモリの構造には複数の領域構成オブジェクト、複数のブロック構成オブジェクト、および複数のデータバッファが含まれる。各領域構成オブジェクトは、当該領域に含まれるブロックの構成情報を記憶するために使用され、例えば、領域構成オブジェクトには、当該領域に対応するブロックのフラグまたはインデックス、データ長または読み出し/書き込み状態などが含まれる。各ブロック構成オブジェクトは、当該ブロックに対応するデータバッファの構成情報を記憶するために使用され、例えば、ブロック構成オブジェクトには、当該ブロックに対応するデータバッファのアドレス、データ長または読み出し/書き込み状態などが含まれる。
S102において、第1のプロセスに対応する書き込み対象データのデータ量に基づいて、少なくとも1つのターゲットブロックを決定する。
第1のプロセスは複数のプロセスのうちのいずれか1つであってもよく、第1のプロセスは、共有メモリにデータを書き込む必要がある時、書き込み対象データのデータ量、つまり書き込み対象データの長さに基づいて、必要とされブロックの数、つまり必要とされるデータバッファの数を決定する。
一例として、書き込み対象データの長さは20であり、各ブロックによって指されるデータバッファのサイズは10である場合、必要とされるブロックの数が2であると決定することができ、即ち、2つのターゲットブロックが決定される。一例として、書き込み対象データの長さは25であり、各ブロックによって指されるデータバッファのサイズは10である場合、必要とされるブロックの数が3であると決定することができ、即ち3つのターゲットブロックが決定される。
S103において、第1のプロセスにより書き込み対象データを少なくとも1つのターゲットブロックに対応するターゲットデータバッファに書き込み、少なくとも1つのターゲットブロックの構成情報をターゲット領域に対応する領域構成オブジェクトに記憶し、ターゲットデータバッファの構成情報を少なくとも1つのターゲットブロックに対応するブロック構成オブジェクトに記憶する。
第1のプロセスは、書き込み対象データを、少なくとも1つのターゲットブロックによって指される少なくとも1つのターゲットデータバッファに書き込み、データの書き込みを実現し、これとともに、各ターゲットデータバッファの構成情報を対応するターゲットブロックのブロック構成オブジェクトに記憶し、例えば各ターゲットブロックに対応するブロック構成オブジェクトに、当該ターゲットブロックによって指されるターゲットデータバッファの有効データ長を書き込み、さらに、ターゲットブロックの構成情報を対応するターゲット領域の領域構成オブジェクトに書き込み、例えば当該領域に含まれる少なくとも1つのターゲットブロックのフラグまたはインデックス番号、有効データ長等を領域構成オブジェクトに書き込む。このようにすることで、1つの領域内に含まれるブロックの数は書き込み対象データによって決定され、つまり、領域に対応する利用可能なメモリ長は可変であり、プロセスは一定の長さごとにデータを書き込む必要がなく、適応長のデータ書き込みを実現することができる。
本開示の実施例に係る方法では、共有メモリ内の各領域は1つまたは複数のブロックを含むことができ、各ブロックは1つのデータバッファに対応しており、書き込み対象データ長に基づいて1つまたは複数のターゲットブロックを決定し、書き込み対象データを当該1つまたは複数のターゲットブロックに対応するデータバッファに書き込む。このようにすることで、1つの領域に対応する利用可能なメモリ長は書き込み対象データに基づいて可変であり、適応長のデータ書き込みを実現することができる。
上記実施例に基づき、まず、共有メモリの構造および共有メモリの作成および初期化をどのようにして行うかについて説明する。
選択可能に、共有メモリの構造は図2を参照されたい。共有メモリにはヘッダー(Header)オブジェクト、状態(State)オブジェクト、領域構成オブジェクト、ブロック構成オブジェクトおよびデータバッファが含まれ、一例として、領域構成オブジェクトの数はMであり、ブロック構成オブジェクトおよびデータバッファの数は両方ともNである。
選択可能に、ヘッドオブジェクトの構造は図3を参照されたい。ヘッドオブジェクトには、初期化フラグ(Flag)、バージョン(Version)、チェックパラメータ(Check Sum)、状態オブジェクトのサイズ(State Size)、領域構成オブジェクトのサイズ(Region Size)、領域構成オブジェクトの数(Region Num)、ブロック構成オブジェクトのサイズ(Block Size)、ブロック構成オブジェクトの数(Block Num)、データバッファ長(Buffer Len)、および予約フィールド(Reserve)が含まれる。
選択可能に、初期化フラグは、共有メモリの初期化が完了しているか否かを示すために使用され、即ち共有メモリの有効性フラグである。バージョンは、共有メモリの構成バージョンを表し、後続の互換性をサポートするために使用される。チェックパラメータは、ヘッドオブジェクトの一部またはすべてのデータのチェック値(例えばチェックサム)を表す。状態オブジェクトのサイズは、状態オブジェクトが占有するメモリのサイズを表す。領域構成オブジェクトのサイズは、各領域構成オブジェクトが占有するメモリのサイズを表す。領域構成オブジェクトの数は、図2において連続的に構成された領域構成オブジェクトの数であり、例えばMである。ブロック構成オブジェクトのサイズは各ブロック構成オブジェクトが占有するメモリのサイズである。ブロック構成オブジェクトの数は、図2において連続的に構成されたブロック構成オブジェクトの数であり、例えばNであり、ブロック構成オブジェクトの数はデータバッファの数と一致する。データバッファ長は各データバッファの長さを表し、メモリ割り当ての最小長さ単位である。予約フィールドは拡張予約フィールドである。
選択可能に、状態オブジェクトは共有メモリの現在の書き込み保護状態、領域インデックス、ブロックインデックス、メモリ更新時間などを記憶するために使用される。ここで、領域インデックスは次の書き込みインデックスであり、即ち、次の書き込み領域のフラグであり、ブロックインデックスは次の書き込みインデックスであり、即ち次の書き込みブロックのフラグである。共有メモリに新しいデータが書き込まれる度に、領域インデックスおよびブロックインデックスは更新される。メモリの更新時間は共有メモリが読み出される時または書き込まれる時に更新される。
選択可能に、領域構成オブジェクトは、当該領域に含まれるブロックの構成情報を記憶するために使用され、例えば当該領域に対応する少なくとも1つのブロックの開始インデックス、有効データ長、読み出し/書き込み状態などを記憶するために使用される。
選択可能に、ブロック構成オブジェクトは、当該ブロックに対応するデータバッファの構成情報を記憶するために使用され、例えば当該ブロックに対応するデータバッファのオフセットアドレス、有効データ長さ、読み出し/書き込み状態などを記憶するために使用される。
上記例示的な共有メモリの構造を参照して、共有メモリの作成および初期化について以下に説明する。最初に実行されるプロセスにより共有メモリを作成し、共有メモリの先頭アドレスに基づいてヘッドオブジェクトを作成し最初に実行されるプロセスのパラメータに基づいて、ヘッドオブジェクトに領域構成オブジェクトの属性パラメータ、複数のブロック構成オブジェクトの属性パラメータ、および複数のデータバッファの属性パラメータをそれぞれ追加し、領域構成オブジェクト、複数のブロック構成オブジェクトおよび複数のデータバッファを作成する。
最初に実行されるプロセスは標準システム呼び出しインターフェース(例えばshm_open)を介して共有メモリを作成し、当該インターフェースはプロセスセキュリティ属性を有し、同じメモリ名称(身分識別子)に導入される複数のプロセスについて、1つのプロセスのみが共有メモリを作成できるため、最初に実行されるプロセスが共有メモリを作成した後、その後に起動して実行される他のプロセスが共有メモリを作成しようとしても失敗することになり、これにより、共有メモリが複数作成されることを回避することができる。
最初に実行されるプロセスは、共有メモリの先頭アドレスに基づいてヘッドオブジェクトを作成し、ヘッドオブジェクト内の初期化フラグを無効状態に設定して、チェックパラメータを無効データに設定することにより、初期化が完了していないことを示す。その後、最初に実行されるプロセスは自身のパラメータに基づいてヘッドオブジェクト内の、領域構成オブジェクトの属性パラメータ、複数のブロック構成オブジェクトの属性パラメータおよび複数のデータバッファの属性パラメータを設定し、バージョン、状態オブジェクトのサイズ、領域構成オブジェクトのサイズ、領域構成オブジェクトの数、ブロック構成オブジェクトのサイズ、ブロック構成オブジェクトの数およびデータバッファ長さを設定することを含む。
その後、最初に実行されるプロセスは、ヘッドオブジェクトに隣接して状態オブジェクトを作成し、且つ状態オブジェクトを初期化し、次に領域構成オブジェクトの数に従って、状態オブジェクトに隣接して、対応する数の領域構成オブジェクトを連続して作成し、且つ領域構成オブジェクトを初期化し、次にブロック構成オブジェクトの数に従って、最後の領域構成オブジェクトに隣接して、対応する数のブロック構成オブジェクトを連続して作成し、且つブロック構成オブジェクトを初期化し、各ブロックは1つのデータバッファを指し、各データバッファは、1セグメントの連続メモリを指す。このようすることで、共有メモリが可変長データの読み出しをサポートする。
最後に、最初に実行されるプロセスは、ヘッドオブジェクトのチェック値を決定し、チェック値をチェックパラメータに書き込み、初期化されたフラグを有効状態に更新する。例えば、最初に実行されるプロセスは、ヘッドオブジェクト内の一部のデータのチェックサムを算出し、チェックサムをチェックパラメータに書き込む。これにより、共有メモリの初期化が完了する。
最初に実行されるプロセス以外の他のプロセス、即ち最初に実行されるプロセスの後に起動して実行される他のプロセスは、最初に実行されるプロセスが共有メモリを作成および初期化した後、初期化された共有メモリに基づいて自身のパラメータを更新する必要があり、これにより共有メモリの読み出し/書き込みを実現する。
選択可能に、他のプロセスにより初期化フラグおよびチェックパラメータをチェックする。初期化フラグが有効状態であり、且つチェックパラメータが他のプロセスのチェック値と一致する場合、領域構成オブジェクトの属性パラメータ、複数のブロック構成オブジェクトの属性パラメータおよび複数のデータバッファの属性パラメータに基づいて、他のプロセスの構成パラメータを更新する。その後、他のプロセスが共有メモリにデータを書き込む時、構成パラメータおよび他のプロセスに対応する書き込み対象データのデータ量に基づいて、少なくとも1つのターゲットブロックを決定する。
他のプロセスが実行された後、共有メモリの作成を試み、最初に実行されるプロセスがすでに共有メモリを作成したため、他のプロセスが共有メモリの作成に失敗し、他のプロセスが遅延待機に入り、最初に実行されるプロセスによって作成された共有メモリ内の初期化フラグおよびチェックパラメータに基づいて、共有メモリ初期化が完了したか否かを判断し、ここで、チェックパラメータについて、他のプロセスはヘッドオブジェクトのチェック値を算出し、算出されたチェック値と共有メモリ内のチェックパラメータとを比較し、一致する場合、チェックに成功する。共有メモリの初期化が完了したと決定した後、他のプロセスはヘッドオブジェクト内の状態オブジェクトのサイズを読み出し、当該他のプロセス自身のパラメータ内の状態オブジェクトのサイズと一致しない場合、エラーを報告して終了し、一致する場合、引き続きヘッドオブジェクト内の領域構成オブジェクトのサイズを読み出し、当該他のプロセス自身のパラメータ内の領域構成オブジェクトのサイズと一致しない場合、エラーを報告して終了し、一致する場合、引き続きヘッドオブジェクト内のブロック構成オブジェクトのサイズを読み出し、当該他のプロセスのブロック構成オブジェクトのサイズと一致しない場合、エラーを報告して終了し、一致する場合、ヘッドオブジェクト内の、領域構成オブジェクトの数、ブロック構成オブジェクトの数およびデータバッファ長を読み出して当該他のプロセスの構成パラメータとして更新し、これにより、パラメータの適応構成を実現する。共有メモリについてのチェック、およびエラーを報告して終了することにより、共有メモリの構成の異常を回避する。
上記手順により、最初に実行されるプロセスは共有メモリの作成および初期化を完了させ、他のプロセスは、初期化が完了した後に、共有メモリの構成情報を自身のプロセスに更新することで適応構成パラメータをサポートし、当該プロセスは複数のプロセス間の起動順序について特に要件がない。
また、複数のプロセスが正常に起動して上記手順を完了させた後、いずれか1つのプロセスが再起動すると、当該再起動するプロセスによって実行される手順は上記他のプロセスと同様に、プロセスの再起動後、共有メモリの作成を試み、共有メモリがすでに作成されたため、再起動するプロセスは共有メモリの作成に失敗し、再起動するプロセスは、作成された共有メモリの初期化フラグおよびチェックパラメータをチェックし、チェックが成功した後に、再起動するプロセスの構成パラメータを更新し、その後、当該再起動するプロセスが共有メモリにデータを書き込む時、構成パラメータおよび当該再起動するプロセスに対応する書き込み対象データのデータ量に基づいて、少なくとも1つのターゲットブロックを決定する。以上から分かるように、本開示の実施例に係る方法により、1つのプロセスに異常が発生して再起動すると、他のプロセスは再起動する必要がなく、当該再起動するプロセスは他のプロセスとの通信関係を自動的に再開することができる。
以下、共有メモリの書き込み手順を説明する。
第1のプロセスが書き込み対象データのデータ量に基づいて、ターゲットブロックの第1の数を決定し、状態オブジェクトからブロックインデックスを取得し、ブロックインデックスから始まる第1の数のブロックを少なくとも1つのターゲットブロックとして決定する。第1のプロセスは、書き込み対象データを、少なくとも1つのターゲットブロックに対応するターゲットデータバッファに書き込み、少なくとも1つのターゲットブロックの構成情報をターゲット領域に対応する領域構成オブジェクトに記憶し、ターゲットデータバッファの構成情報を少なくとも1つのターゲットブロックに対応するブロック構成オブジェクトに記憶する。
一例として、書き込み対象データの長さは25であり、各ブロックによって指されるデータバッファのサイズは10である場合、ターゲットブロックの第1の数を3として決定することができる。その後、第1のプロセスは共有メモリの状態オブジェクト内の書き込み保護状態を有効(一回で1つだけのプロセスによるデータの書き込みが許容される)にすることで書き込み保護を得た後、状態オブジェクトから領域インデックスを読み出し、当該領域インデックスに対応する領域はターゲット領域、即ち書き込み対象領域である。なお、領域インデックスに対応する領域が読み出されている場合、書き込み可能な領域があるまで領域インデックスを次へ移動し、ターゲット領域の領域構成オブジェクト内の書き込み保護状態を有効(即ち読み出しが許容されない)にし、その後、状態オブジェクトからブロックインデックスを読み出し、当該ブロックインデックスから3つのブロック(最後のブロックインデックスが割り当てられても足りない場合、開始ブロックインデックスにループする)を連続して割り当て、即ち3つのターゲットブロックを決定し、ターゲットブロックのブロック構成オブジェクト内の書き込み保護状態を有効(即ち読み出しが許容されない)にし、ターゲットブロックの開始および終了インデックスをターゲット領域の領域構成オブジェクトに保存し、書き込み対象データをターゲットブロックに対応するデータバッファに書き込む。その後、ブロックインデックスおよび領域インデックスを更新し、即ちブロックインデックスを最後のターゲットブロックの次のブロックのインデックスに更新し、領域インデックスをターゲット領域の次の領域のインデックスに更新し、上記の書き込み保護状態を復元し、これにより、データの書き込みが完了する。1つの領域は1つまたは複数のブロックで構成することができるため、領域に対応する利用可能なメモリの長さは可変で、書き込み対象データの長さに基づいて決定することができ、可変長データの読み出し/書き込みをサポートすることができる。
選択可能に、共有メモリの読み出し/書き込み後に、状態オブジェクト内のメモリ更新時間を現在の時間に修正することによって共有メモリの直前使用時間を示すことができる。メモリ更新時間が予め設定された時間帯内に変化しない場合、共有メモリをリリースする。これにより、使用されていない共有メモリがタイムリーにクリアされることが確保され、当該部分の共有メモリが改めて割り当て可能となり、共有メモリの自動的なクリアが実現される。
以下、共有メモリの読み出し手順を説明する。
第2のプロセスにより共有メモリ内には読み出し対象データが存在するか否かを決定し、存在する場合、読み出し対象データを読み出す。
図4を参照すると、各プロセス自身のパラメータ内には1つの読み出しインデックスおよび1つの書き込みインデックスがそれぞれ含まれ、書き込みインデックスは共有メモリの状態オブジェクトからコピーされた領域インデックスであり、共有メモリ内の次の書き込み対象の領域を表し、読み出しインデックスは書き込みインデックスと一致し、読み出し対象の領域を表す。
第2のプロセスの書き込みインデックスと共有メモリの状態オブジェクト内の領域インデックスとが一致するか否かを判断する。第2のプロセスの書き込みインデックスと領域インデックスとが一致しない場合、共有メモリ内に新しいデータが書き込まれて、領域インデックスが変化したことを表すため、第2のプロセスの書き込みインデックスを領域インデックスに更新する必要がある。次に、更新された書き込みインデックスが第2のプロセスの読み出しインデックスと一致するか否かを判断する。更新された書き込みインデックスが第2のプロセスの読み出しインデックスと一致しない場合、共有メモリ内には読み出し対象データが存在すると決定する。第2のプロセスの読み出しインデックスに基づいて、読み出し対象データを読み出し、読み出しが完了した後に、読み出しインデックスを更新する。
一例として、第2のプロセスの読み出しインデックスおよび書き込みインデックスが両方とも2であり、共有メモリの領域インデックスがデータの書き込み後に2から3になったと仮定すると、この場合、第2のプロセスの書き込みインデックスと領域インデックスとが一致せず、第2のプロセスの書き込みインデックスを3に更新することで、共有メモリ内の次の書き込み対象となるのが領域3であることを示し、この時、第2のプロセスの更新された書き込みインデックス3とその読み出しインデックス2とが一致せず、共有メモリ内には領域2に読み出し対象データが存在すると決定し、領域2の読み出し保護状態を有効にすることで、領域2が読み出されていることを示し、書き込みを回避し、領域2の領域構成オブジェクト内のブロックの開始インデックス、終了インデックスおよび有効データ長を取得し、ブロックに対応するデータバッファのデータを第2のプロセスにコピーし、最後に、読み出し保護状態を復元し、第2のプロセスの読み出しインデックスを次へ移動して3に更新し、これにより、データの読み出しが完了する。当該方法は、複数のプロセスが同時に共有メモリからデータを読み出すことをサポートすることができ、データ読み出し効率が向上する。
図5は本開示の実施例に係る共有メモリのアクセス制御装置の概略構成図である。図5に示すように、共有メモリのアクセス制御装置500は、共有メモリを作成および初期化するように構成される作成モジュール501であって、初期化された共有メモリには複数の領域構成オブジェクト、複数のブロック構成オブジェクトおよび複数のデータバッファが含まれる作成モジュール501と、第1のプロセスに対応する書き込み対象データのデータ量に基づいて、少なくとも1つのターゲットブロックを決定するように構成される決定モジュール502と、第1のプロセスにより書き込み対象データを少なくとも1つのターゲットブロックに対応するターゲットデータバッファに書き込み、少なくとも1つのターゲットブロックの構成情報をターゲット領域に対応する領域構成オブジェクトに記憶し、ターゲットデータバッファの構成情報を少なくとも1つのターゲットブロックに対応するブロック構成オブジェクトに記憶するように構成される書き込みモジュール503と、を備える。
1つの実施形態では、作成モジュール501は、最初に実行されるプロセスにより共有メモリを作成するように構成される第1の作成ユニットと、共有メモリの先頭アドレスに基づいてヘッドオブジェクトを作成するように構成される第2の作成ユニットと、最初に実行されるプロセスのパラメータに基づいて、ヘッドオブジェクトに領域構成オブジェクトの属性パラメータ、複数のブロック構成オブジェクトの属性パラメータ、および複数のデータバッファの属性パラメータをそれぞれ追加し、領域構成オブジェクト、複数のブロック構成オブジェクトおよび複数のデータバッファを作成するように構成される第3の作成ユニットと、を備える。
1つの実施形態では、第1のプロセスは、最初に実行されるプロセス以外の他のプロセスまたは再起動するプロセスであり、ヘッドオブジェクトには初期化フラグとチェックパラメータとがさらに含まれ、書き込みモジュール503は、他のプロセスにより初期化フラグとチェックパラメータとをチェックするように構成されるチェックユニットと、初期化フラグが有効状態であり、且つチェックパラメータが他のプロセスのチェック値と一致する場合、領域構成オブジェクトの属性パラメータ、複数のブロック構成オブジェクトの属性パラメータおよび複数のデータバッファの属性パラメータに基づいて、他のプロセスの構成パラメータを更新するように構成される第1の更新ユニットと、構成パラメータおよび他のプロセスに対応する書き込み対象データのデータ量に基づいて、少なくとも1つのターゲットブロックを決定するように構成される第1の決定ユニットと、を備える。
1つの実施形態では、共有メモリのアクセス制御装置500は、 初期化フラグを無効状態に設定し、且つチェックパラメータを無効データに設定するように構成される第1の設定ユニットと、ヘッドオブジェクトのチェック値を決定し、チェック値をチェックパラメータに書き込み、初期化されたフラグを有効状態に更新するように構成される第2の設定ユニットをさらに備える。
1つの実施形態では、初期化された共有メモリには状態オブジェクトがさらに含まれ、状態オブジェクトにはブロックインデックスが含まれ、決定モジュール502は、書き込み対象データのデータ量に基づいて、ターゲットブロックの第1の数を決定するように構成される第2の決定ユニットと、状態オブジェクトからブロックインデックスを取得するように構成される取得ユニットと、ブロックインデックスから始まる第1の数のブロックを少なくとも1つのターゲットブロックとして決定するように構成される第3の決定ユニットと、を備える。
1つの実施形態では、状態オブジェクトには領域インデックスがさらに含まれ、領域インデックスに対応する領域はターゲット領域である。
1つの実施形態では、共有メモリのアクセス制御装置500は、ブロックインデックスと領域インデックスとを更新するように構成される第2の更新ユニットをさらに備える。
1つの実施形態では、状態オブジェクトにはメモリ更新時間がさらに含まれ、 共有メモリのアクセス制御装置500は、メモリ更新時間を現在の時間に修正するように構成される第3の更新ユニットをさらに備える。
1つの実施形態では、共有メモリのアクセス制御装置500は、メモリ更新時間が予め設定された時間帯内に変化しない場合、共有メモリをリリースするように構成されるリリースモジュールをさらに備える。
1つの実施形態では、共有メモリのアクセス制御装置500は、第2のプロセスにより共有メモリ内には読み出し対象データが存在するか否かを決定するように構成される第4の決定ユニットと、存在する場合、読み出し対象データを読み出すように構成される読み出しユニットと、をさらに備える。
1つの実施形態では、第4の決定ユニットは、第2のプロセスの書き込みインデックスが領域インデックスと一致するか否かを判断するように構成される第1の判断ユニットと、第2のプロセスの書き込みインデックスが領域インデックスと一致しない場合、書き込みインデックスを領域インデックスに更新するように構成される第4の更新ユニットと、更新された書き込みインデックスが第2のプロセスの読み出しインデックスと一致するか否かを判断するように構成される第2の判断ユニットと、更新された書き込みインデックスが第2のプロセスの読み出しインデックスと一致しない場合、共有メモリには読み出し対象データが存在すると決定するように構成される第5の決定ユニットと、を備える。
1つの実施形態では、読み出しユニットは、第2のプロセスの読み出しインデックスに基づいて、読み出し対象データを読み出し、読み出しが完了した後に、読み出しインデックスを更新するように構成される。
本開示の実施例に係る装置は上記方法実施例における共有メモリのアクセス制御方法を実行するために使用することができ、その実現の原理と技術効果は類似しており、ここで詳しい説明を省略する。
本開示の実施例によれば、本開示は、電子機器およびコンピュータ命令を記憶した非一時的コンピュータ読み取り可能な記憶媒体をさらに提供する。
本開示の実施例によれば、本開示は、コンピュータプログラム製品をさらに提供し、プログラム製品は、コンピュータプログラムを含み、コンピュータプログラムは読み取り可能な記憶媒体に記憶され、電子機器の少なくとも1つのプロセッサは読み取り可能な記憶媒体からコンピュータプログラムを読み出すことができ、少なくとも1つのプロセッサはコンピュータプログラムを実行することにより、電子機器に上記いずれか1つの実施例に係る解決案を実行させる。
図6は、本開示の実施例に係る共有メモリのアクセス制御方法を実現するように構成される電子機器の概略図である。電子機器は、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレーム、及び他の適切なコンピュータなどの様々な形式のデジタルコンピュータを表すことを目的とする。電子機器は、携帯情報端末、携帯電話、スマートフォン、ウェアラブルデバイス、他の同様のコンピューティングデバイスなどの様々な形式のモバイルデバイスを表すこともできる。本明細書で示されるコンポーネント、それらの接続と関係、及びそれらの機能は単なる例であり、本明細書の説明及び/又は要求される本開示の実現を制限することを意図したものではない。
図6に示すように、電子機器600は、リードオンリーメモリ(ROM)602に記憶されるコンピュータプログラムまたは記憶ユニット608からランダムアクセスメモリ(RAM)603にロードされるコンピュータプログラムに基づいて様々な適切な動作と処理を行うことができる計算ユニット601を備える。RAM 603では、デバイス600の操作に必要な様々なプログラムおよびデータを記憶することができる。計算ユニット601、ROM 602およびRAM 603はバス604を介して互いに接続される。入力/出力(I/O)インターフェース605もバス604に接続される。
電子機器600内の複数の部品はI/Oインターフェース605に接続され、キーボード、マウスなどの入力ユニット606と、様々なタイプのディスプレイ、スピーカーなどの出力ユニット607と、磁気ディスク、光ディスクなどの記憶ユニット608と、ネットワークカード、モデム、無線通信送受信機などのおよび通信ユニット609と、を備える。通信ユニット609は、デバイス600がインターネットのようなコンピュータネットワークおよび/または様々な電信ネットワークを介して他のデバイスと情報/データを交換すること許容する。
計算ユニット601は処理と計算能力を備える様々な汎用および/または専用処理コンポーネントであってもよい。計算ユニット601のいくつかの例は、中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)、様々な専有の人工知能(AI)計算チップ、機械学習モデルアルゴリズムを実行する様々な計算ユニット、デジタル信号プロセッサ(DSP)、および如何なる適切なプロセッサ、コントローラ、マイクロコントローラなどを含むが、これらに限定されない。計算ユニット601は上記で説明された各方法と処理を実行し、例えば共有メモリのアクセス制御方法を実行する。例えば、いくつかの実施例では、共有メモリのアクセス制御方法はコンピュータソフトウェアプログラムとして実現することができ、それは有形的に機器読み取り可能な媒体、例えば記憶ユニット608に含まれる。いくつかの実施例では、コンピュータプログラムの一部または全部はROM 602および/または通信ユニット609を介してデバイス600にロードおよび/またはインストールすることができる。コンピュータプログラムがRAM 603にロードされ且つ計算ユニット601によって実行される時、上記で説明された共有メモリのアクセス制御方法の1つまたは複数のステップを実行することができる。予備的に、他の実施例では、計算ユニット601は他の任意の適切な方式(例えば、ファームウェアにより)により、共有メモリのアクセス制御方法を実行するように構成されてもよい。
本開示の実施例によれば、本開示は上記実施例における電子機器を備える自動運転車両をさらに提供する。一例として、当該電子機器は無人運転車両における制御デバイスである。
本文の以上で説明されたシステムと技術の様々な実施形態は、デジタル電子回路システム、集積回路システム、フィールド・プログラマブル・ゲート・アレイ(FPGA)、特定用途向け集積回路(ASIC)、専用標準製品(ASSP)、システムオンチップ(SOC)、負荷プログラマブル論理デバイス(CPLD)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組み合わせで実現することができる。これらの様々な実施形態は、1つまたは複数のコンピュータプログラム内で実行することを含むことができ、当該1つまたは複数のコンピュータプログラムは、少なくとも1つのプログラマブルプロセッサを備えるプログラマブルシステムにおいて実行および/または解釈することができ、当該プログラマブルプロセッサは専用または汎用プログラマブルプロセッサであってもよく、記憶システム、少なくとも1つの入力装置、および少なくとも1つの出力装置からデータと命令を受信することができ、且つデータと命令を当該記憶システム、当該少なくとも1つの入力装置、および当該少なくとも1つの出力装置に送信する。
本開示の方法を実施するプログラムコードは1つまたは複数のプログラミング言語の任意の組み合せで書くことができる。これらのプログラムコードは汎用コンピュータ、専用コンピュータまたは他のプログラマブルデータ処理装置のプロセッサまたはコントローラに提供することができ、これにより、プログラムコードがプロセッサまたはコントローラによって実行される際に、フローチャートおよび/またはブロック図で規定される機能/操作は実施される。プログラムコードは完全に機器で実行するか、一部が機器で実行するか、独立したソフトウェアパケットとして部分的に機器で実行され且つ部分的にリモート機器で実行されるか、または完全にリモート機器またはサーバで実行される。
本開示の文脈では、機器読み取り可能な媒体は有形の媒体であってもよく、命令実行システム、装置またはデバイスで使用されるプログラム、または命令実行システム、装置またはデバイスに合わせて使用するプログラムを含むまたは記憶することができる。機器読み取り可能な媒体は機器読み取り可能な信号媒体または機器読み取り可能な記憶媒体である。機器読み取り可能な媒体は電子的、磁性的、光学的、電磁的、赤外線のもの、または半導体システム、装置またはデバイス、または上記内容の如何なる適切な組み合せを含むことができるが、これらに限定されない。機器読み取り可能な記憶媒体のより具体的な例は、1つまたは複数のラインに基づく電気的接続、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能なプログラマブルリードオンリーメモリ(EPROMまたはフラッシュメモリ)、フラッシュ、コンパクトディスクリードオンリーメモリ(CD-ROM)、光学記憶デバイス、磁気記憶デバイス、または上記内容の如何なる適切な組み合せを含むことができる。
ユーザとのインタラクションを提供するために、ここで説明されているシステム及び技術をコンピュータ上で実施することができ、当該コンピュータは、ユーザに情報を表示するためのディスプレイ装置(例えば、CRT(陰極線管)又はLCD(液晶ディスプレイ)モニタ)と、キーボード及びポインティングデバイス(例えば、マウス又はトラックボール)とを有し、ユーザは、当該キーボード及び当該ポインティングデバイスによって入力をコンピュータに提供することができる。他の種類の装置も、ユーザとのインタラクションを提供することができ、例えば、ユーザに提供されるフィードバックは、任意の形式のセンシングフィードバック(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)であってもよく、任意の形式(音響入力と、音声入力、または、触覚入力とを含む)でユーザからの入力を受信することができる。
ここで説明されるシステム及び技術は、バックエンドコンポーネントを備えるコンピューティングシステム(例えば、データサーバとする)、又はミドルウェアコンポーネントを備えるコンピューティングシステム(例えば、アプリケーションサーバ)、又はフロントエンドコンポーネントを備えるコンピューティングシステム(例えば、グラフィカルユーザインタフェース又はウェブブラウザを有するユーザコンピュータ、ユーザは、当該グラフィカルユーザインタフェース又は当該ウェブブラウザによってここで説明されるシステム及び技術の実施形態とインタラクションできる)、又はこのようなバックエンドコンポーネントと、ミドルウェアコンポーネントと、フロントエンドコンポーネントのいずれかの組み合わせを備えるコンピューティングシステムで実行することができる。いずれかの形態又は媒体のデジタルデータ通信(例えば、通信ネットワーク)によってシステムのコンポーネントを相互に接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)およびインターネットを含む。
コンピュータシステムは、クライアントとサーバを備えることができる。クライアントとサーバは、一般に、互いに離れており、通常に通信ネットワークを介してインタラクションする。対応するコンピュータ上で実行され、互いにクライアント-サーバ関係を有するコンピュータプログラムによってクライアントとサーバとの関係が生成される。サーバはクラウドサーバであってもよく、クラウドコンピューティングサーバまたはクラウドホストとも呼ばれ、クラウドコンピューティングサービスシステムにおける1つのホスト製品であり、従来の物理ホストとVPSサービス(「Virtual Private Server」、または「VPS」と略す)に存在する管理の難しさ、業務拡張性が弱いという欠陥を解決する。サーバは分散システムのサーバであってもよいし、ブロックチェーンを組み込んだサーバであってもよい。
なお、以上に示す様々な形式のフローを使用して、ステップを改めて並べ替え、追加または削除することができることを理解されたい。例えば、本出願に記載の各ステップは、並列に実行されてもよいし、順次的に実行されてもよいし、異なる順序で実行されてもよいが、本開示で開示されている技術案の所望の結果を実現することができれば、本明細書では限定されない。
上記具体的な実施形態は、本開示に対する保護範囲を限定するものではない。当業者であれば、設計要件と他の要因に応じて、様々な修正、組み合わせ、一部の組み合せ及び代替を行うことができる。本開示の精神と原則内で行われる任意の修正、同等の置換、及び改善などは、いずれも本開示の保護範囲内に含まれるべきである。
Claims (28)
- 共有メモリを作成および初期化するステップであって、初期化された共有メモリには複数の領域構成オブジェクト、複数のブロック構成オブジェクトおよび複数のデータバッファが含まれるステップと、
第1のプロセスに対応する書き込み対象データのデータ量に基づいて、少なくとも1つのターゲットブロックを決定するステップと、
前記第1のプロセスにより、前記書き込み対象データを前記少なくとも1つのターゲットブロックに対応するターゲットデータバッファに書き込み、前記少なくとも1つのターゲットブロックの構成情報をターゲット領域に対応する領域構成オブジェクトに記憶し、前記ターゲットデータバッファの構成情報を前記少なくとも1つのターゲットブロックに対応するブロック構成オブジェクトに記憶するステップと、
を含む、共有メモリのアクセス制御方法。 - 共有メモリを作成および初期化するステップが、
最初に実行されるプロセスにより前記共有メモリを作成するステップと、
前記共有メモリの先頭アドレスに基づいてヘッドオブジェクトを作成するステップと、
前記最初に実行されるプロセスのパラメータに基づいて、前記ヘッドオブジェクトに領域構成オブジェクトの属性パラメータ、複数のブロック構成オブジェクトの属性パラメータ、および複数のデータバッファの属性パラメータをそれぞれ追加し、前記領域構成オブジェクト、前記複数のブロック構成オブジェクトおよび前記複数のデータバッファを作成するステップと、
を含む請求項1に記載の共有メモリのアクセス制御方法。 - 前記第1のプロセスが、前記最初に実行されるプロセス以外の他のプロセスまたは再起動するプロセスであり、前記ヘッドオブジェクトには初期化フラグとチェックパラメータとが含まれ、
第1のプロセスに対応する書き込み対象データのデータ量に基づいて、少なくとも1つのターゲットブロックを決定するステップが、
前記他のプロセスにより前記初期化フラグと前記チェックパラメータとをチェックするステップと、
前記初期化フラグが有効状態であり、且つ前記チェックパラメータが前記他のプロセスのチェック値と一致する場合、前記領域構成オブジェクトの属性パラメータ、複数のブロック構成オブジェクトの属性パラメータおよび複数のデータバッファの属性パラメータに基づいて、前記他のプロセスの構成パラメータを更新するステップと、
前記構成パラメータおよび前記他のプロセスに対応する書き込み対象データのデータ量に基づいて、前記少なくとも1つのターゲットブロックを決定するステップと、
を含む請求項2に記載の共有メモリのアクセス制御方法。 - 前記ヘッドオブジェクトに領域構成オブジェクトの属性パラメータ、複数のブロック構成オブジェクトの属性パラメータ、および複数のデータバッファの属性パラメータをそれぞれ追加するステップの前に、
前記初期化フラグを無効状態に設定し、且つ前記チェックパラメータを無効データに設定するステップを含み、
前記領域構成オブジェクト、前記複数のブロック構成オブジェクトおよび前記複数のデータバッファを作成するステップの後に、
前記ヘッドオブジェクトのチェック値を決定し、前記チェック値を前記チェックパラメータに書き込み、前記初期化フラグを有効状態に更新するステップを含む請求項3に記載の共有メモリのアクセス制御方法。 - 前記初期化された共有メモリには状態オブジェクトが含まれ、前記状態オブジェクトにはブロックインデックスが含まれ、
第1のプロセスに対応する書き込み対象データのデータ量に基づいて、少なくとも1つのターゲットブロックを決定するステップが、
前記書き込み対象データのデータ量に基づいて、前記ターゲットブロックの第1の数を決定するステップと、
前記状態オブジェクトから前記ブロックインデックスを取得するステップと、
前記ブロックインデックスから始まる第1の数のブロックを前記少なくとも1つのターゲットブロックとして決定するステップと、
を含む請求項1に記載の共有メモリのアクセス制御方法。 - 前記状態オブジェクトには領域インデックスが含まれ、前記領域インデックスに対応する領域が前記ターゲット領域である請求項5に記載の共有メモリのアクセス制御方法。
- 前記ターゲットデータバッファの構成情報を前記少なくとも1つのターゲットブロックに対応するブロック構成オブジェクトに記憶するステップの後に、
前記ブロックインデックスと前記領域インデックスとを更新するステップを含む請求項6に記載の共有メモリのアクセス制御方法。 - 前記状態オブジェクトにはメモリ更新時間が含まれ、
前記ターゲットデータバッファの構成情報を前記少なくとも1つのターゲットブロックに対応するブロック構成オブジェクトに記憶するステップの後に、
前記メモリ更新時間を現在の時間に修正するステップを含む請求項5に記載の共有メモリのアクセス制御方法。 - 前記メモリ更新時間が予め設定された時間帯内に変化しない場合、前記共有メモリをリリースするステップを含む請求項8に記載の共有メモリのアクセス制御方法。
- 第2のプロセスにより前記共有メモリには読み出し対象データが存在するか否かを決定するステップと、
存在する場合、前記読み出し対象データを読み出すステップと、
を含む請求項6に記載の共有メモリのアクセス制御方法。 - 第2のプロセスにより前記共有メモリには読み出し対象データが存在するか否かを決定するステップが、
前記第2のプロセスの書き込みインデックスが前記領域インデックスと一致するか否かを判断するステップと、
前記第2のプロセスの書き込みインデックスが前記領域インデックスと一致しない場合、前記書き込みインデックスを前記領域インデックスに更新するステップと、
更新された書き込みインデックスが前記第2のプロセスの読み出しインデックスと一致するか否かを判断するステップと、
前記更新された書き込みインデックスが前記第2のプロセスの読み出しインデックスと一致しない場合、前記共有メモリには前記読み出し対象データが存在すると決定するステップと、
を含む請求項10に記載の共有メモリのアクセス制御方法。 - 前記読み出し対象データを読み出すステップが、
前記第2のプロセスの読み出しインデックスに基づいて、前記読み出し対象データを読み出し、読み出しが完了した後に、前記読み出しインデックスを更新するステップを含む請求項11に記載の共有メモリのアクセス制御方法。 - 共有メモリを作成および初期化するように構成される作成モジュールであって、初期化された共有メモリには複数の領域構成オブジェクト、複数のブロック構成オブジェクトおよび複数のデータバッファが含まれる作成モジュールと、
第1のプロセスに対応する書き込み対象データのデータ量に基づいて、少なくとも1つのターゲットブロックを決定するように構成される決定モジュールと、
前記第1のプロセスにより、前記書き込み対象データを前記少なくとも1つのターゲットブロックに対応するターゲットデータバッファに書き込み、前記少なくとも1つのターゲットブロックの構成情報をターゲット領域に対応する領域構成オブジェクトに記憶し、前記ターゲットデータバッファの構成情報を前記少なくとも1つのターゲットブロックに対応するブロック構成オブジェクトに記憶するように構成される書き込みモジュールと、
を備える、共有メモリのアクセス制御装置。 - 前記作成モジュールが、
最初に実行されるプロセスにより前記共有メモリを作成するように構成される第1の作成ユニットと、
前記共有メモリの先頭アドレスに基づいてヘッドオブジェクトを作成するように構成される第2の作成ユニットと、
前記最初に実行されるプロセスのパラメータに基づいて、前記ヘッドオブジェクトに領域構成オブジェクトの属性パラメータ、複数のブロック構成オブジェクトの属性パラメータ、および複数のデータバッファの属性パラメータをそれぞれ追加し、前記領域構成オブジェクト、前記複数のブロック構成オブジェクトおよび前記複数のデータバッファを作成するように構成される第3の作成ユニットと、
を含む請求項13に記載の共有メモリのアクセス制御装置。 - 前記第1のプロセスは、前記最初に実行されるプロセス以外の他のプロセスまたは再起動するプロセスであり、前記ヘッドオブジェクトには初期化フラグとチェックパラメータとが含まれ、
前記書き込みモジュールが、
前記他のプロセスにより前記初期化フラグと前記チェックパラメータとをチェックするように構成されるチェックユニットと、
前記初期化フラグが有効状態であり、且つ前記チェックパラメータが前記他のプロセスのチェック値と一致する場合、前記領域構成オブジェクトの属性パラメータ、複数のブロック構成オブジェクトの属性パラメータおよび複数のデータバッファの属性パラメータに基づいて、前記他のプロセスの構成パラメータを更新するように構成される第1の更新ユニットと、
前記構成パラメータおよび前記他のプロセスに対応する書き込み対象データのデータ量に基づいて、前記少なくとも1つのターゲットブロックを決定するように構成される第1の決定ユニットと、
を含む請求項14に記載の共有メモリのアクセス制御装置。 - 前記初期化フラグを無効状態に設定し、且つ前記チェックパラメータを無効データに設定するように構成される第1の設定ユニットと、
前記ヘッドオブジェクトのチェック値を決定し、前記チェック値を前記チェックパラメータに書き込み、前記初期化されたフラグを有効状態に更新するように構成される第2の設定ユニットと、
を備える請求項15に記載の共有メモリのアクセス制御装置。 - 前記初期化された共有メモリには状態オブジェクトが含なれ、前記状態オブジェクトにはブロックインデックスが含まれ、
前記決定モジュールが、
前記書き込み対象データのデータ量に基づいて、前記ターゲットブロックの第1の数を決定するように構成される第2の決定ユニットと、
前記状態オブジェクトから前記ブロックインデックスを取得するように構成される取得ユニットと、
前記ブロックインデックスから始まる第1の数のブロックを前記少なくとも1つのターゲットブロックとして決定するように構成される第3の決定ユニットと、
を含む請求項13~16のいずれか一項に記載の共有メモリのアクセス制御装置。 - 前記状態オブジェクトには領域インデックスがさらに含まれ、前記領域インデックスに対応する領域が前記ターゲット領域である請求項17に記載の共有メモリのアクセス制御装置。
- 前記ブロックインデックスと前記領域インデックスとを更新するように構成される第2の更新ユニットを備える請求項18に記載の共有メモリのアクセス制御装置。
- 前記状態オブジェクトにはメモリ更新時間が含まれ、
前記メモリ更新時間を現在の時間に修正するように構成される第3の更新ユニットを備える請求項17に記載の共有メモリのアクセス制御装置。 - 前記メモリ更新時間が予め設定された時間帯内に変化しない場合、前記共有メモリをリリースするように構成されるリリースモジュールを備える請求項20に記載の共有メモリのアクセス制御装置。
- 第2のプロセスにより前記共有メモリには読み出し対象データが存在するか否かを決定するように構成される第4の決定ユニットと、
存在する場合、前記読み出し対象データを読み出すように構成される読み出しユニットと、を備える請求項18に記載の共有メモリのアクセス制御装置。 - 前記第4の決定ユニットが、
前記第2のプロセスの書き込みインデックスが前記領域インデックスと一致するか否かを判断するように構成される第1の判断ユニットと、
前記第2のプロセスの書き込みインデックスが前記領域インデックスと一致しない場合、前記書き込みインデックスを前記領域インデックスに更新するように構成される第4の更新ユニットと、
更新された書き込みインデックスが前記第2のプロセスの読み出しインデックスと一致するか否かを判断するように構成される第2の判断ユニットと、
前記更新された書き込みインデックスが前記第2のプロセスの読み出しインデックスと一致しない場合、前記共有メモリには前記読み出し対象データが存在すると決定するように構成される第5の決定ユニットと、
を含む請求項22に記載の共有メモリのアクセス制御装置。 - 前記読み出しユニットが、
前記第2のプロセスの読み出しインデックスに基づいて、前記読み出し対象データを読み出し、読み出しが完了した後に、前記読み出しインデックスを更新するように構成される請求項23に記載の共有メモリのアクセス制御装置。 - 少なくとも1つのプロセッサと、該少なくとも1つのプロセッサと通信可能に接続されるメモリと、を備え、
前記メモリには、前記少なくとも1つのプロセッサによって実行可能な命令が記憶されており、前記命令が前記少なくとも1つのプロセッサによって実行される場合、前記少なくとも1つのプロセッサが請求項1から12のいずれか一項に記載の共有メモリのアクセス制御方法を実行できる電子機器。 - コンピュータに請求項1から12のいずれか一項に記載の共有メモリのアクセス制御方法を実行させるためのコンピュータ命令を記憶した非一時的コンピュータ読み取り可能な記憶媒体。
- プロセッサによって実行される場合、請求項1から12のいずれか一項に記載の共有メモリのアクセス制御方法を実現するコンピュータプログラム。
- 請求項25に記載の電子機器を備える自動運転車両。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111605154.XA CN114327946A (zh) | 2021-12-24 | 2021-12-24 | 共享内存访问控制方法、装置、电子设备及自动驾驶车辆 |
CN202111605154.X | 2021-12-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023036774A true JP2023036774A (ja) | 2023-03-14 |
Family
ID=81013769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022203473A Pending JP2023036774A (ja) | 2021-12-24 | 2022-12-20 | 共有メモリのアクセス制御方法、共有メモリのアクセス制御装置、電子機器および自動運転車両 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230120580A1 (ja) |
EP (1) | EP4170497A1 (ja) |
JP (1) | JP2023036774A (ja) |
KR (1) | KR20230004394A (ja) |
CN (1) | CN114327946A (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115437798A (zh) * | 2021-06-23 | 2022-12-06 | 北京车和家信息技术有限公司 | 共享内存的数据处理方法、装置、设备和介质 |
CN115334159B (zh) * | 2022-08-11 | 2023-07-21 | 北京百度网讯科技有限公司 | 处理流式数据的方法、装置、设备和介质 |
CN116107517B (zh) * | 2023-04-11 | 2023-06-09 | 远江盛邦(北京)网络安全科技股份有限公司 | 数据同步方法、装置、电子设备和存储介质 |
CN116401081B (zh) * | 2023-06-09 | 2023-09-01 | 中汽智联技术有限公司 | 数据共享方法 |
CN117520250A (zh) * | 2024-01-04 | 2024-02-06 | 珠海格力电器股份有限公司 | 双核设备的数据处理方法和双核设备 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5652885A (en) * | 1993-05-25 | 1997-07-29 | Storage Technology Corporation | Interprocess communications system and method utilizing shared memory for message transfer and datagram sockets for message control |
CN1277213C (zh) * | 2004-12-31 | 2006-09-27 | 大唐微电子技术有限公司 | 一种闪存文件系统管理方法 |
US8478932B2 (en) * | 2008-09-15 | 2013-07-02 | Texas Instruments Incorporated | Power efficient memory management for embedded systems |
CN102955817A (zh) * | 2011-08-30 | 2013-03-06 | 腾讯数码(深圳)有限公司 | 一种基于共享内存的对象管理与恢复方法及系统 |
CN103425538B (zh) * | 2012-05-24 | 2016-05-11 | 深圳市腾讯计算机系统有限公司 | 进程通讯方法及系统 |
US9514168B2 (en) * | 2013-03-15 | 2016-12-06 | Sunil Sayyaparaju | Method and system of implementing a database index in shared memory |
CN106168916B (zh) * | 2016-06-24 | 2018-06-26 | 北京百度网讯科技有限公司 | 数据传输方法和系统 |
CN107632945A (zh) * | 2016-07-18 | 2018-01-26 | 大唐移动通信设备有限公司 | 一种共享内存的数据读写方法和装置 |
US11023299B2 (en) * | 2018-09-28 | 2021-06-01 | Arista Networks, Inc. | System and method of a shared memory allocator |
CN111382123B (zh) * | 2018-12-28 | 2023-06-16 | 广州市百果园信息技术有限公司 | 文件存储方法、装置、设备及存储介质 |
CN109933438B (zh) * | 2019-01-31 | 2022-12-20 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 高速共享内存数据收发系统 |
CN109739670B (zh) * | 2019-02-01 | 2021-04-23 | 中国人民解放军国防科技大学 | 节点内进程通信方法、装置、计算机设备和存储介质 |
CN110704214B (zh) * | 2019-10-14 | 2021-05-25 | 北京京东乾石科技有限公司 | 进程间通信方法和装置 |
CN111182041B (zh) * | 2019-12-19 | 2022-05-13 | 苏州浪潮智能科技有限公司 | 一种网络服务器共享缓存区的方法和设备 |
CN111427707B (zh) * | 2020-03-25 | 2024-02-06 | 北京左江科技股份有限公司 | 一种基于共享内存池的ipc通信方法 |
CN113032162B (zh) * | 2021-03-23 | 2023-10-24 | 重庆兰德适普信息科技有限公司 | 一种基于共享内存备份机制的多进程通讯方法 |
-
2021
- 2021-12-24 CN CN202111605154.XA patent/CN114327946A/zh active Pending
-
2022
- 2022-12-16 EP EP22214119.4A patent/EP4170497A1/en not_active Withdrawn
- 2022-12-19 US US18/068,179 patent/US20230120580A1/en active Pending
- 2022-12-20 JP JP2022203473A patent/JP2023036774A/ja active Pending
- 2022-12-20 KR KR1020220179074A patent/KR20230004394A/ko unknown
Also Published As
Publication number | Publication date |
---|---|
CN114327946A (zh) | 2022-04-12 |
EP4170497A1 (en) | 2023-04-26 |
US20230120580A1 (en) | 2023-04-20 |
KR20230004394A (ko) | 2023-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2023036774A (ja) | 共有メモリのアクセス制御方法、共有メモリのアクセス制御装置、電子機器および自動運転車両 | |
US10956148B2 (en) | Concurrent I/O enclosure firmware/field-programmable gate array (FPGA) update in a multi-node environment | |
US11237761B2 (en) | Management of multiple physical function nonvolatile memory devices | |
JP2017194959A (ja) | NVMe装置に対しカーネルモードアクセス及び使用者モードアクセスを同時に可能にする方法及びホストコンピュータシステム並びに非一時的コンピュータ読出可能記録媒体 | |
CN111066005B (zh) | 响应于经由总线接口上的i/o操作产生的高速缓存命中对元数据道的异步更新 | |
US11099761B2 (en) | Method, device and computer program product for expanding storage space | |
CN105302536A (zh) | MapReduce应用的相关参数的配置方法和装置 | |
US20220374742A1 (en) | Method, device and storage medium for running inference service platform | |
CN113535087A (zh) | 数据迁移过程中的数据处理方法、服务器及存储系统 | |
CN116450184B (zh) | 一种系统升级方法、装置、电子设备及存储介质 | |
US20220091871A1 (en) | Overlay container storage driver for microservice workloads | |
US10289329B2 (en) | Burst buffer dynamic logical volume sizing in high performance computing environment | |
US10789008B2 (en) | Reducing write collisions in data copy | |
CN117082046A (zh) | 数据上传方法、装置、设备及存储介质 | |
CN107656702B (zh) | 加速硬盘读写的方法及其系统、以及电子设备 | |
CN113253938B (zh) | 数据处理方法、装置、设备、存储介质及计算机程序产品 | |
JP7522775B2 (ja) | 不揮発性記憶区画識別子 | |
US20210149799A1 (en) | Expansion of hba write cache using nvdimm | |
US11977785B2 (en) | Non-volatile memory device-assisted live migration of virtual machine data | |
US12056372B2 (en) | Collecting quality of service statistics for in-use child physical functions of multiple physical function non-volatile memory devices | |
US11853585B2 (en) | Performing a point-in-time snapshot copy operation within a data consistency application | |
US9251101B2 (en) | Bitmap locking using a nodal lock | |
WO2023024621A1 (en) | Conditionally deploying a reusable group of containers for a job based on available system resources | |
US20230088280A1 (en) | Conversational system action presentation | |
CN106325777A (zh) | 一种逻辑单元管理方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20221220 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240220 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20240917 |