JP7087150B1 - メモリ制御システム - Google Patents

メモリ制御システム Download PDF

Info

Publication number
JP7087150B1
JP7087150B1 JP2021053815A JP2021053815A JP7087150B1 JP 7087150 B1 JP7087150 B1 JP 7087150B1 JP 2021053815 A JP2021053815 A JP 2021053815A JP 2021053815 A JP2021053815 A JP 2021053815A JP 7087150 B1 JP7087150 B1 JP 7087150B1
Authority
JP
Japan
Prior art keywords
memory
unit
switching
control system
switching condition
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.)
Active
Application number
JP2021053815A
Other languages
English (en)
Other versions
JP2022150968A (ja
Inventor
拓真 川井
Original Assignee
ミラクシアエッジテクノロジー株式会社
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 ミラクシアエッジテクノロジー株式会社 filed Critical ミラクシアエッジテクノロジー株式会社
Priority to JP2021053815A priority Critical patent/JP7087150B1/ja
Application granted granted Critical
Publication of JP7087150B1 publication Critical patent/JP7087150B1/ja
Publication of JP2022150968A publication Critical patent/JP2022150968A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】従来よりも処理速度の低下が抑制されるメモリ制御システムを提供する。【解決手段】メモリ制御システム40は、複数のプロセス(第1プロセス21a~第nプロセス21c)で共有される共有ライブラリ22の実行時に使用されるグローバル変数を格納するための静的メモリ部41と、複数のプロセスのそれぞれごとのグローバル変数を格納するメモリ領域(第1メモリ領域42a~第nメモリ領域42c)を有する動的メモリ部42と、プロセス切替部11からのプロセス切替要求に基づいて、静的メモリ部41に格納されていたグローバル変数を、切り替え前に実行していたプロセスに対応するメモリ領域に書き戻し、切り替え後に実行するプロセスに対応するメモリ領域に格納されていたグローバル変数を静的メモリ部41に読み込むメモリ切替を行うメモリ切替制御部43とを備える。【選択図】図2

Description

本開示は、メモリ制御システムに関し、特に、複数のプロセス間で共有される共有ライブラリをサポートするメモリ制御システムに関する。
プロセッサが複数のプロセスを切り替えて実行するコンピュータ・システム(以下、単に「システム」という)では、異なるプロセス間でコードを共有するための共有ライブラリで用いられるグローバル変数については、そのグローバル変数の呼び出し元プロセスによって異なる実体(つまり、値)を持つ必要がある。このようなグローバル変数の切り替えについての仕組みは、通常のシステムでは、プロセッサに内蔵されているMMU(Memory Management Unit;メモリ管理ユニット)を利用して実現される。
ところが、組み込み機器等に用いられる小規模なプロセッサではMMUが搭載されていない場合があり、このようなプロセッサをもつシステムでは、従来、グローバル変数の切り替えは、XFALTと呼ばれる様なソフトウェアによって実現されている(例えば、特許文献1参照)。XFLATは、MMUのないLinux(登録商標)プラットフォーム上の共有ライブラリをサポートするソフトウェアである。
特開2005-32259号公報
しかしながら、従来のXFLATと呼ばれる技術では、グローバル変数へのアクセスに時間を要するために、グローバル変数へのアクセス頻度によっては、システムの処理速度が低下するという問題がある。
そこで、本開示は、従来よりも処理速度の低下が抑制されるメモリ制御システムを提供することを目的とする。
上記目的を達成するために、本開示の一形態に係るメモリ制御システムは、コンピュータによって実行されるオペレーティングシステムを構成するソフトウェアであるメモリ制御システムであって、複数のプロセス間で共有される共有ライブラリの実行時に使用されるグローバル変数を格納するための第1メモリ部と、前記複数のプロセスのそれぞれごとの前記グローバル変数を格納するための複数のメモリ領域を有する第2メモリ部と、前記複数のプロセスの中から実行するプロセスを切り替えるプロセス切替部からのプロセス切替要求に基づいて、前記第1メモリ部に格納されていた前記グローバル変数を、切り替え前に実行していたプロセスに対応する前記メモリ領域に書き戻し、切り替え後に実行するプロセスに対応する前記メモリ領域に格納されていた前記グローバル変数を前記第1メモリ部に読み込むメモリ切替を行うメモリ切替制御部とを備える。
本開示により、従来よりも処理速度の低下が抑制されるメモリ制御システムが提供される。
図1は、ソフトウェアによって共有ライブラリをサポートする従来のメモリ制御システムの構成を示すブロック図である。 図2は、実施の形態に係るメモリ制御システムの構成を示すブロック図である。 図3は、実施の形態に係るメモリ制御システムを含むシステムの動作を示すフローチャートである。 図4は、実施の形態の第1変形例に係るメモリ制御システムの構成を示すブロック図である。 図5は、実施の形態の第1変形例に係るメモリ制御システムを含むシステムの動作を示すフローチャートである。 図6は、実施の形態の第2変形例に係るメモリ制御システムの構成を示すブロック図である。 図7は、実施の形態の第3変形例に係るメモリ制御システムの構成を示すブロック図である。 図8は、実施の形態の第3変形例に係るメモリ制御システムの動作を示すフローチャートである。
(本発明者らが得た知見)
図1は、ソフトウェアによって共有ライブラリをサポートする従来のメモリ制御システム30の構成を示すブロック図である。ここには、OS(オペレーティングシステム)10及びアプリケーション20を含むソフトウェアの構成が示されている。
OS10には、プロセス切替部11が含まれる。プロセス切替部11は、実行するプロセス(第1プロセス21a~第nプロセス21c)を切り替える制御をする。
アプリケーション20には、第1プロセス21a~第nプロセス21c、共有ライブラリ22、メモリ制御システム30、第1メモリ領域23a~第nメモリ領域23cが含まれる。第1メモリ領域23a~第nメモリ領域23cは、それぞれ、対応する第1プロセス21a~第nプロセス21cのグローバル変数を格納する記憶領域である。メモリ制御システム30は、第1プロセス21a~第nプロセス21cからグローバル変数へのアクセスを可能にするアクセス制御部31(「アクセッサ関数」とも呼ばれる)と、アクセス制御部31を生成するコンパイラ32とから構成される。アクセス制御部31は、第1プロセス21a~第nプロセス21cからグローバル変数へのアクセスに対して、第1メモリ領域23a~第nメモリ領域23cのどのメモリ領域にアクセスするかを制御する。
このような従来のメモリ制御システム30を備えるシステムでは、MMUがなくてもグローバル変数へのアクセスが可能になるが、次の問題が生じることが分かった。
(1)第1プロセス21a~第nプロセス21cがグローバル変数にアクセスする際に、毎回、アクセス制御部31が実行されることになり、グローバル変数へのアクセス頻度に比例してシステムの処理速度が劣化する。
(2)上記(1)における処理速度の劣化は、システムが実行されるまで分からない、つまり、コンパイラによってアプリケーション20がビルドされた時点では分からない。
そこで、本発明者らは、これらの問題を解決するために、複数のプロセスについて共通するメモリ領域である静的メモリ領域を設け、実行するプロセスのグローバル変数を静的メモリ領域に格納しておく仕組みを考案した。それにより、共有ライブラリがグローバル変数にアクセスする際には、常に、静的メモリ領域にアクセスすれば済むので、従来のメモリ制御システム30のように、グローバル変数にアクセスする際に、毎回、アクセス制御部31を実行する必要がなくなる。その結果、グローバル変数へのアクセス頻度に比例してシステムの処理速度が劣化するという不具合が抑制され、それにより、システムが実行されるまで処理速度の劣化が分からないという問題も解消される。
(実施の形態)
以下、本開示の実施の形態について、図面を用いて詳細に説明する。なお、以下で説明する実施の形態は、いずれも本開示の一具体例を示す。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序等は、一例であり、本開示を限定する主旨ではない。また、各図は、必ずしも厳密に図示したものではない。各図において、実質的に同一の構成については同一の符号を付し、重複する説明は省略又は簡略化する。また、単に「グローバル変数」と記載した場合には、グローバル変数の値を意味する。例えば、「グローバル変数を格納する/読み込む」とは、「グローバル変数の値を格納する/読み込む」ことを意味する。
図2は、実施の形態に係るメモリ制御システム40の構成を示すブロック図である。ここには、OS10a及びアプリケーション20aを含むシステムのソフトウェア構成が示されている。
OS10aには、プロセス切替部11及びメモリ制御システム40が含まれる。プロセス切替部11は、第1プロセス21a~第nプロセス21cの中から実行するプロセスを切り替える制御をする。
メモリ制御システム40は、コンピュータによって実行されるOS10aを構成するソフトウェアであり、静的メモリ部41と、動的メモリ部42と、メモリ切替制御部43とを備える。
静的メモリ部41は、共有ライブラリ22の実行時に使用される1以上のグローバル変数を格納する第1メモリ部の一例であり、メモリ制御システム40のビルド時(つまり、静的に)に生成される。静的メモリ部41は、動的メモリ部42よりも高速にアクセスするメモリ媒体、例えば、DRAM(Dynamic Random Access Memory)に割り付けられてもよい。
動的メモリ部42は、第1プロセス21a~第nプロセス21cのそれぞれごとのグローバル変数を格納するための第1メモリ領域42a~第nメモリ領域42cを有する第2メモリ部の一例である。第1メモリ領域42a~第nメモリ領域42cは、それぞれ、対応する第1プロセス21a~第nプロセス21cの生成に伴って(つまり、動的に)生成される。動的メモリ部42は、静的メモリ部41よりも低速にアクセスするメモリ媒体、例えば、フラッシュメモリに割り付けられてもよい。
メモリ切替制御部43は、プロセス切替部11からのプロセス切替要求に基づいて、静的メモリ部41に格納されていたグローバル変数を、切り替え前に実行していたプロセスに対応するメモリ領域に書き戻し(つまり、退避し)、切り替え後に実行するプロセスに対応するメモリ領域に格納されていたグローバル変数を静的メモリ部41に読み込むメモリ切替を行う。
アプリケーション20aには、第1プロセス21a~第nプロセス21c、及び、共有ライブラリ22が含まれる。共有ライブラリ22は、第1プロセス21a~第nプロセス21c間で共有される一以上の関数(つまり、コード)を含み、静的メモリ部41に格納されたグローバル変数にアクセスする。
次に、以上のように構成されるメモリ制御システム40の動作について説明する。図3は、実施の形態に係るメモリ制御システム40を含むシステムの動作を示すフローチャートである。ここでは、第1プロセス21aが実行中であるが、実行するプロセスを、第1プロセス21aから第2プロセス21bに切り替えるケースにおける処理手順が示されている。
まず、プロセス切替部11は、メモリ切替制御部43に対して、第1プロセス21aから第2プロセス21bに切り替えるプロセス切替要求を発行する(S10)。
プロセス切替要求を受けたメモリ切替制御部43は、メモリ切替を行う(S11)。具体的には、メモリ切替制御部43は、静的メモリ部41に格納されていたグローバル変数を、第1プロセス21aに対応する第1メモリ領域42aに書き戻した後に(S11a)、第2プロセス21bに対応する第2メモリ領域42bに格納されていたグローバル変数を静的メモリ部41に読み込む(S11b)。
このようにしてメモリ切替が行われた後に、第2プロセス21bが実行され、第2プロセス21bの実行の下で、共有ライブラリ22が静的メモリ部41に格納されたグローバル変数にアクセス(つまり、書き込み/読み込みを)する(S12)。
以上のように、本実施の形態に係るメモリ制御システム40は、コンピュータによって実行されるOS10aを構成するソフトウェアであって、複数のプロセス(第1プロセス21a~第nプロセス21c)で共有される共有ライブラリ22の実行時に使用されるグローバル変数を格納するための静的メモリ部41と、複数のプロセスのそれぞれごとのグローバル変数を格納するメモリ領域(第1メモリ領域42a~第nメモリ領域42c)を有する動的メモリ部42と、複数のプロセスの中から実行するプロセスを切り替えるプロセス切替部11からのプロセス切替要求に基づいて、静的メモリ部41に格納されていたグローバル変数を、切り替え前に実行していたプロセスに対応するメモリ領域に書き戻し、切り替え後に実行するプロセスに対応するメモリ領域に格納されていたグローバル変数を静的メモリ部41に読み込むメモリ切替を行うメモリ切替制御部43とを備える。
これにより、共有ライブラリ22がグローバル変数へアクセスする際に、従来技術のようなアクセス制御部31が介在しないため、(1)グローバル変数へのアクセス頻度に比例してシステムの処理速度が劣化する不具合が抑制される。また、従来技術と比べて、本実施の形態によれば、プロセスの切り替え時のコスト(つまり、メモリ切替の処理)が若干、増加するが、この増分は一時的なメモリの大きさ(つまり、共有ライブラリ22が定義するグローバル変数のバイト数)にのみ比例し、ビルド時に確定するため、(2)処理速度の劣化が実行時まで分からないという問題が起きない。さらに、共有ライブラリ22のメモリ領域のプロセス分離(つまり、動的メモリ部42)がOS10aの機能として保証されるため、(3)コンパイラを改造することによる検証コストの増加という問題も起きない。
また、静的メモリ部41は、動的メモリ部42が配置されるメモリ媒体よりも高速にアクセスするメモリ媒体に配置されてもよい。これにより、共有ライブラリ22は高速メモリに対してアクセスするため、システムの処理速度のさらなる高速化が可能になるとともに、動的メモリ部42を低速メモリに配置することで、高速メモリの容量削減が可能になる。
なお、静的メモリ部41の高速メモリへの割り付け、及び、動的メモリ部42の低速メモリへの割り付けは、必須ではなく、システムが備えるハードウェア(メモリ媒体)構成に依存して実装すればよい。
(第1変形例)
図4は、実施の形態の第1変形例に係るメモリ制御システム40aの構成を示すブロック図である。ここには、OS10b及びアプリケーション20bを含むシステムのソフトウェア構成が示されている。
OS10bには、プロセス切替部11及びメモリ制御システム40aが含まれる。メモリ制御システム40aは、上記実施の形態に係るメモリ制御システム40の構成に、メモリ切替条件判断部44及びメモリ切替条件設定部45が追加された構成を備える。
メモリ切替条件判断部44は、予め定められたメモリ切替条件を保持し、プロセスの切り替え時において、メモリ切替条件が満たされるか否かを判断し、メモリ切替条件が満たされる場合にだけ、メモリ切替制御部43に対してメモリ切替(上記実施の形態におけるステップS11)を行わせる制御をする。メモリ切替条件が満たされる場合とは、例えば、切替後のプロセスの実行下では共有ライブラリ22が静的メモリ部41にアクセスすることが判明しているケースである。
メモリ切替条件設定部45は、第1プロセス21a~第nプロセス21cのいずれかからメモリ切替条件を取得し、取得したメモリ切替条件をメモリ切替条件判断部44に設定する。
アプリケーション20bには、第1プロセス21a~第nプロセス21c、及び、共有ライブラリ22が含まれる。本変形例では、第1プロセス21a~第nプロセス21cは、メモリ切替条件設定部45に対して、メモリ切替条件を指定することできる。メモリ切替条件は、例えば、あるプロセスの実行下で共有ライブラリ22が静的メモリ部41にアクセスするか否かの属性である。
図5は、実施の形態の第1変形例に係るメモリ制御システム40aを含むシステムの動作を示すフローチャートである。ここでは、第1プロセス21aが実行中であるが、実行するプロセスを、第1プロセス21aから第2プロセス21bに切り替えるケースにおける処理手順が示されている。
まず、プロセス切替部11は、メモリ切替制御部43に対して、第1プロセス21aから第2プロセス21bに切り替えるプロセス切替要求を発行する(S10)。
メモリ切替条件設定部45は、第2プロセス21bからメモリ切替条件を取得し、取得したメモリ切替条件をメモリ切替条件判断部44に設定する(S20)。例えば、メモリ切替条件設定部45は、第2プロセス21bから、第2プロセス21bの実行下で共有ライブラリ22が静的メモリ部41にアクセスするか否かの属性を示すメモリ切替条件を取得し、取得したメモリ切替条件をメモリ切替条件判断部44に設定する。なお、このステップS20は、上記ステップS10よりも前であってもよい。
そして、メモリ切替条件判断部44は、メモリ切替条件設定部45によって設定されたメモリ切替条件が満たされるか否かを判断する(S21)。例えば、メモリ切替条件判断部44は、第2プロセス21bの実行下で共有ライブラリ22が静的メモリ部41にアクセスするか否かを判断する。
その結果、メモリ切替条件が満たされる場合にだけ(S21でYes)、メモリ切替条件判断部44は、メモリ切替制御部43に対してメモリ切替を行わせる制御をする(S11)。例えば、第2プロセス21bの実行下で共有ライブラリ22が静的メモリ部41にアクセスすると判明した場合にだけ、メモリ切替条件判断部44は、上記実施の形態と同様に、メモリ切替制御部43に対してメモリ切替を行わせる制御をする。
一方、メモリ切替条件が満たされない場合には(S21でNo)、メモリ切替条件判断部44は、メモリ切替制御部43に対してメモリ切替を行わせない制御をする。例えば、第2プロセス21bの実行下で共有ライブラリ22が静的メモリ部41にアクセスしないと判明した場合には、メモリ切替条件判断部44は、メモリ切替制御部43に対してメモリ切替を行うことを禁止する制御をする。
その後、第2プロセス21bが実行される(S22)。このとき、第2プロセス21bがメモリ切替条件設定部45に対して予め指定した属性(第2プロセス21bの実行下で共有ライブラリ22が静的メモリ部41にアクセスするか否かの属性)に従って、共有ライブラリ22から静的メモリ部41へのアクセスが行われる(又は、行われない)。
以上のように、本変形例に係るメモリ制御システム40aは、上記実施の形態に係るメモリ制御システム40の構成に加えて、予め定められたメモリ切替条件を保持し、プロセスの切り替え時において、メモリ切替条件が満たされるか否かを判断し、メモリ切替条件が満たされる場合に、メモリ切替制御部43に対してメモリ切替を行わせるメモリ切替条件判断部44を備える。
これにより、メモリ切替は、プロセスの切り替わり時に無条件で実施されるのではなく、メモリ切替条件が満たされた場合にだけ行われるので、メモリ切替の頻度が少なくなり、プロセスの切り替えに伴うシステムの処理速度の劣化がさらに抑制される。
また、本変形例に係るメモリ制御システム40aは、さらに、第1プロセス21a~第nプロセス21cのいずれかからメモリ切替条件を取得し、取得したメモリ切替条件をメモリ切替条件判断部44に設定するメモリ切替条件設定部45を備える。これにより、メモリ切替条件判断部44で用いられるメモリ切替条件をプロセスから指定することができ、プロセスごとに、プロセスの切り替えに伴うシステムの処理速度の劣化抑制を制御できる。
なお、本変形例では、上記実施の形態に対して、メモリ切替条件判断部44及びメモリ切替条件設定部45が追加されたが、必ずしも、これら2つの処理部を必要とするわけではない。例えば、メモリ切替条件判断部44に保持させるメモリ切替条件が固定でよいならば、メモリ切替条件設定部45は不要である。固定でよいメモリ切替条件としては、例えば、静的メモリ部41にアクセスするプロセスの識別情報等である。これにより、静的メモリ部41にアクセスするプロセスが実行される場合にだけ、メモリ切替が実行される。
(第2変形例)
図6は、実施の形態の第2変形例に係るメモリ制御システム40bの構成を示すブロック図である。ここには、OS10c及びアプリケーション20cを含むシステムのソフトウェア構成が示されている。
OS10cには、プロセス切替部11及びメモリ制御システム40bが含まれる。メモリ制御システム40bは、上記実施の形態に係るメモリ制御システム40の構成に、プロセス生成部46が追加された構成を備える。
プロセス生成部46は、共有ライブラリ22を使用するプロセスを、システムの実行時に、動的に生成する。例えば、プロセス生成部46は、実行中のプロセスからプロセスコピーの指示を受けると、指示されたコピー元の既存プロセス(実行中のプロセス自身、又は、他のプロセス)のコピーを、新たなプロセス(図6における第(n+1)プロセス21d)として生成するとともに、コピー元のプロセスに対応する動的メモリ部42内のメモリ領域のコピーを、新たなプロセスに対応するメモリ領域(図6における第(n+1)メモリ領域42d)として生成する。なお、指示されたコピー元のプロセスが実行中のプロセス自身である場合には、プロセス生成部46は、動的メモリ部42のメモリ領域に代えて、静的メモリ部41のコピーを新たなプロセスに対応するメモリ領域(図6における第(n+1)メモリ領域42d)として生成する。
なお、プロセス生成部46は、動的にプロセスを生成するやり方として、既存プロセスのコピーではなく、実行中のプロセスから指示された新規のプロセスを生成してもよい。
以上のように、本変形例に係るメモリ制御システム40bは、上記実施の形態に係るメモリ制御システム40の構成に加えて、共有ライブラリ22を使用するプロセスを動的に生成するプロセス生成部46を備える。これにより、システムの実行時に動的にプロセスを生成することができ、システムの実現形態の幅が広がる。
(第3変形例)
図7は、実施の形態の第3変形例に係るメモリ制御システム40cの構成を示すブロック図である。ここには、OS10d及びアプリケーション20aを含むシステムのソフトウェア構成が示されている。
OS10dには、プロセス切替部11及びメモリ制御システム40cが含まれる。メモリ制御システム40cは、上記実施の形態に係るメモリ制御システム40の構成に、静的メモリ変更記録部47が追加された構成を備える。
静的メモリ変更記録部47は、共有ライブラリ22が静的メモリ部41に格納されたグローバル変数を変更した場合に、変更されたグローバル変数が格納されている静的メモリ部41のアドレスを記録するメモリ変更記録部の一例である。具体的には、静的メモリ変更記録部47は、共有ライブラリ22による静的メモリ部41へのアクセスを監視しており、共有ライブラリ22が静的メモリ部41に格納されたグローバル変数に対して書き込みをしたことを検出した場合に、そのグローバル変数の静的メモリ部41におけるアドレスを記録(つまり、保持)する。このようなアドレスの記録は、プロセスが切り替わるごとに、リセットされる。
メモリ切替制御部43は、プロセスの切り替え時において、静的メモリ部41に格納されていたグローバル変数を、切り替え前に実行していたプロセスに対応するメモリ領域に書き戻す際に、静的メモリ部41に格納されているグローバル変数のうち、静的メモリ変更記録部47が記録したアドレスに格納されているグローバル変数だけを書き戻す。
図8は、実施の形態の第3変形例に係るメモリ制御システム40cの動作を示すフローチャートである。ここでは、上記実施の形態における図3のステップS11a(静的メモリ部41から動的メモリ部42への書き戻し)に相当する手順の詳細が示されている。
静的メモリ部41に格納されていたグローバル変数を、第1プロセス21aに対応する第1メモリ領域42aに書き戻す際に、メモリ切替制御部43は、まず、静的メモリ変更記録部47に、書き込みが行われたグローバル変数のアドレスが記録されているか否かを判断する(S30)。
その結果、静的メモリ変更記録部47にアドレスが記録されている場合には(S30でYes)、メモリ切替制御部43は、静的メモリ部41に格納されているグローバル変数のうち、静的メモリ変更記録部47が記録したアドレスに格納されているグローバル変数だけを、第1メモリ領域42aに書き戻す(S31)。一方、静的メモリ変更記録部47にアドレスが記録されていない場合には(S30でNo)、メモリ切替制御部43は、静的メモリ部41から第1メモリ領域42aへの書き戻しをしない。
以上のように、本変形例に係るメモリ制御システム40cは、上記実施の形態に係るメモリ制御システム40の構成に加えて、共有ライブラリ22が静的メモリ部41に格納されたグローバル変数を変更した場合に、変更されたグローバル変数が格納されている静的メモリ部41のアドレスを記録する静的メモリ変更記録部47を備え、メモリ切替制御部43は、プロセスの切り替え時において、静的メモリ部41に格納されていたグローバル変数を、切り替え前に実行していたプロセスに対応するメモリ領域に書き戻す際に、静的メモリ部41に格納されているグローバル変数のうち、静的メモリ変更記録部47が記録したアドレスに格納されているグローバル変数だけを書き戻す。
これにより、プロセスの切り替え時において、静的メモリ部41から動的メモリ部42への書き戻しは、変更のあったグローバル変数だけについて行われるので、静的メモリ部41に格納されている全てのグローバル変数を退避する場合に比べ、書き戻しの処理に必要な時間が短縮される。
なお、本変形例では、静的メモリ変更記録部47は、変更されたグローバル変数が格納されている静的メモリ部41のアドレスを記録したが、これに代えて、静的メモリ部41の変更があったか否か(少なくとも一つグローバル変数について書き込みがあったか否か)だけを記録してもよい。この場合には、静的メモリ部41の変更があった場合にだけ、メモリ切替制御部43は、静的メモリ部41から動的メモリ部42への書き戻しを行う。
以上、本開示のメモリ制御システムについて、実施の形態及び変形例に基づいて説明したが、本開示は、これらの実施の形態及び変形例に限定されるものではない。本開示の主旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態又は変形例に施したものや、実施の形態及び変形例における一部の構成要素を組み合わせて構築される別の形態も、本開示の範囲内に含まれる。
例えば、上記実施の形態の第1~第3変形例の少なくとも2つを合体した構成を備えるメモリ制御システムも、本開示の範囲内に含まれる。
本開示に係るメモリ制御システムは、複数のプロセス間で共有される共有ライブラリをサポートするメモリ制御システムとして、特に、従来よりも処理速度の低下が抑制されるメモリ制御システムとして、利用できる。
10、10a~10d OS
11 プロセス切替部
20、20a~20c アプリケーション
21a 第1プロセス
21b 第2プロセス
21c 第nプロセス
21d 第(n+1)プロセス
22 共有ライブラリ
23a 第1メモリ領域
23b 第2メモリ領域
23c 第nメモリ領域
30 メモリ制御システム
31 アクセス制御部
32 コンパイラ
40、40a~40c メモリ制御システム
41 静的メモリ部
42 動的メモリ部
42a 第1メモリ領域
42b 第2メモリ領域
42c 第nメモリ領域
42d 第(n+1)メモリ領域
43 メモリ切替制御部
44 メモリ切替条件判断部
45 メモリ切替条件設定部
46 プロセス生成部
47 静的メモリ変更記録部

Claims (6)

  1. コンピュータによって実行されるオペレーティングシステムを構成するソフトウェアであるメモリ制御システムであって、
    複数のプロセス間で共有される共有ライブラリの実行時に使用されるグローバル変数を格納するための第1メモリ部と、
    前記複数のプロセスのそれぞれごとの前記グローバル変数を格納するための複数のメモリ領域を有する第2メモリ部と、
    前記複数のプロセスの中から実行するプロセスを切り替えるプロセス切替部からのプロセス切替要求に基づいて、前記第1メモリ部に格納されていた前記グローバル変数を、切り替え前に実行していたプロセスに対応する前記メモリ領域に書き戻し、切り替え後に実行するプロセスに対応する前記メモリ領域に格納されていた前記グローバル変数を前記第1メモリ部に読み込むメモリ切替を行うメモリ切替制御部とを備える、
    メモリ制御システム。
  2. さらに、予め定められたメモリ切替条件を保持し、プロセスの切り替え時において、前記メモリ切替条件が満たされるか否かを判断し、前記メモリ切替条件が満たされる場合に、前記メモリ切替制御部に対して前記メモリ切替を行わせるメモリ切替条件判断部を備える、
    請求項1記載のメモリ制御システム。
  3. さらに、前記複数のプロセスのいずれかから前記メモリ切替条件を取得し、取得した前記メモリ切替条件を前記メモリ切替条件判断部に設定するメモリ切替条件設定部を備える、
    請求項2記載のメモリ制御システム。
  4. さらに、前記共有ライブラリを使用するプロセスを動的に生成するプロセス生成部を備える、
    請求項1記載のメモリ制御システム。
  5. さらに、前記共有ライブラリが前記第1メモリ部に格納された前記グローバル変数を変更した場合に、変更された前記グローバル変数が格納されている前記第1メモリ部のアドレスを記録するメモリ変更記録部を備え、
    前記メモリ切替制御部は、プロセスの切り替え時において、前記第1メモリ部に格納されていた前記グローバル変数を、切り替え前に実行していたプロセスに対応する前記メモリ領域に書き戻す際に、前記第1メモリ部に格納されている前記グローバル変数のうち、前記メモリ変更記録部が記録したアドレスに格納されている前記グローバル変数だけを書き戻す、
    請求項1記載のメモリ制御システム。
  6. 前記第1メモリ部は、前記第2メモリ部が配置されるメモリ媒体よりも高速にアクセスするメモリ媒体に配置される、
    請求項1記載のメモリ制御システム。
JP2021053815A 2021-03-26 2021-03-26 メモリ制御システム Active JP7087150B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021053815A JP7087150B1 (ja) 2021-03-26 2021-03-26 メモリ制御システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021053815A JP7087150B1 (ja) 2021-03-26 2021-03-26 メモリ制御システム

Publications (2)

Publication Number Publication Date
JP7087150B1 true JP7087150B1 (ja) 2022-06-20
JP2022150968A JP2022150968A (ja) 2022-10-07

Family

ID=82067845

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021053815A Active JP7087150B1 (ja) 2021-03-26 2021-03-26 メモリ制御システム

Country Status (1)

Country Link
JP (1) JP7087150B1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11126173A (ja) * 1997-10-22 1999-05-11 Nec Corp メモリアクセス制御装置およびその記憶媒体
JP2005521937A (ja) * 2002-03-28 2005-07-21 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ コンピュータオペレーティングシステムにおけるコンテキスト切り替え方法及び装置
JP2011118756A (ja) * 2009-12-04 2011-06-16 Nec Corp 排他制御プログラム、排他制御方法、及び情報処理システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11126173A (ja) * 1997-10-22 1999-05-11 Nec Corp メモリアクセス制御装置およびその記憶媒体
JP2005521937A (ja) * 2002-03-28 2005-07-21 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ コンピュータオペレーティングシステムにおけるコンテキスト切り替え方法及び装置
JP2011118756A (ja) * 2009-12-04 2011-06-16 Nec Corp 排他制御プログラム、排他制御方法、及び情報処理システム

Also Published As

Publication number Publication date
JP2022150968A (ja) 2022-10-07

Similar Documents

Publication Publication Date Title
US8453015B2 (en) Memory allocation for crash dump
US7930515B2 (en) Virtual memory management
EP2645259B1 (en) Method, device and system for caching data in multi-node system
RU2509347C2 (ru) Гибкое увеличение страниц памяти
US7971026B2 (en) Information processing apparatus and access control method
JP4902501B2 (ja) 電力制御方法、計算機システム、及びプログラム
JP2000506659A (ja) マルチプロセッサデータ処理システム内でメモリを割り当てる方法
JP2016085677A (ja) メモリ管理方法、メモリ管理プログラム及び情報処理装置
US6600493B1 (en) Allocating memory based on memory device organization
JP2001282617A (ja) 共有されたキャッシュを動的に区分するための方法及びシステム
CN107391190B (zh) 一种程序模块动态装载方法
JP7087150B1 (ja) メモリ制御システム
US5878263A (en) Internal chaining technique for fixup records
US20110035557A1 (en) Fragmentation reduction using virtual sectors for static data
US20220318015A1 (en) Enforcing data placement requirements via address bit swapping
JP5196249B2 (ja) キャッシュメモリを利用するためのメモリシステム、その方法及びそのプログラム
CN113448722A (zh) 进程内存的映射方法和基于无服务器架构的实例处理方法
JP5471677B2 (ja) 仮想ディスク制御システム、方法及びプログラム
JP4792065B2 (ja) データ記憶方法
CN117056031B (zh) 一种基于虚拟进程的跨容器动态库共享方法
WO2024174921A1 (zh) 一种数据迁移方法、装置及电子设备和存储介质
JP5382471B2 (ja) 電力制御方法、計算機システム、及びプログラム
JP2003263276A (ja) ディスクシステムおよびディスクアクセス方法
JP3859063B2 (ja) 仮想計算機の構成情報アクセス制御方法
JP5561147B2 (ja) 仮想記憶管理装置、仮想記憶管理方法および仮想記憶管理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210326

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220517

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220608

R150 Certificate of patent or registration of utility model

Ref document number: 7087150

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150