JP2020077402A - オペレーティングシステム及びメモリ割り当て方法 - Google Patents
オペレーティングシステム及びメモリ割り当て方法 Download PDFInfo
- Publication number
- JP2020077402A JP2020077402A JP2019190757A JP2019190757A JP2020077402A JP 2020077402 A JP2020077402 A JP 2020077402A JP 2019190757 A JP2019190757 A JP 2019190757A JP 2019190757 A JP2019190757 A JP 2019190757A JP 2020077402 A JP2020077402 A JP 2020077402A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- memory area
- core
- heap
- allocation
- 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.)
- Granted
Links
Images
Landscapes
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
次に、コンフィギュレーションファイル41の記述例について説明する。なお、図7がコンフィギュレーションファイル41の具体的な記述例である。この図7に示すコンフィギュレーションファイル41では、DEF_MEM(メモリの定義)と、DEF_MEMOBJ(メモリ領域20の定義)と、DEF_HEAP(ヒープIDの定義)と、の3つの定義を記述することができる。
_MEMOBJ)を記述するための書式である。この書式を使用することにより、名前、位置、属性、親子関係、プロセッサコアとの関係を指定してメモリ領域20を作成することができる。
〜0xcfffffffの範囲のメモリ)に対して、「MEMOBJ_GLOBAL1」という名前で、グローバルメモリ領域23が作成される。
〜0x8127efffの範囲のメモリ)に対して、「MEMOBJ_CLUSTER1
」という名前で、クラスタメモリ領域が作成される。なお、このクラスタメモリ領域の親のメモリ領域20は「MEMOBJ_GLOBAL1」である。
このように、メモリ領域20が定義されることで、図8に示すようなツリー構造が作成される。
memobjidには「予め決められた仮想属性」または「ヒープIDに関連付けるメモリ領域20の名前」を指定する。
」としては、図5で説明した記述方法により定義されたメモリ領域20の名前を指定することができる。なお、このように直接的にメモリ領域20の名前を指定した場合、ヒープIDとメモリ領域20とが直接的に関連付けられる。このようなヒープIDを使用してアプリケーションプログラム40がメモリ獲得用APIを呼び出すと、オペレーティングシステム10が指定されたメモリ領域20からメモリを直接割り当てる。このようなヒープIDを実メモリIDと呼ぶ。
次に、メモリ獲得用APIの仕様について説明する。本実施形態に係るオペレーティングシステム10は、例えば図9に示すようなメモリ獲得用APIを備えており、このメモリ獲得用APIをアプリケーションプログラム40から呼び出し可能となっている。このメモリ獲得用APIには、引数として「heapid」「size」「addr」を指定可能である。
sizeには「獲得したいメモリのサイズ」を指定する。
次に、上記したメモリ獲得用APIが呼び出されたときのオペレーティングシステム10の処理について説明する。図10は、メモリ割り当て処理のメインフロー図である。
グローバルメモリ割り当て処理について、図11を参照しつつ説明する。
まず、図11に示すステップS200において、マイクロカーネル16は、メモリ獲得用APIの呼び出し元のプロセッサコアの番号(本実施形態においてはマイクロカーネル16が実行されているプロセッサコアの番号)を取得する。そして、ステップS201に進む。
ステップS209へ進んだ場合、エラーコードをアプリケーションプログラム40に返却する。そして処理が終了する。
クラスタメモリ割り当て処理について、図12を参照しつつ説明する。
まず、図12に示すステップS300において、マイクロカーネル16は、メモリ獲得用APIの呼び出し元のプロセッサコアの番号(本実施形態においてはマイクロカーネル16が実行されているプロセッサコアの番号)を取得する。そして、ステップS301に進む。
コアメモリ割り当て処理について、図13を参照しつつ説明する。
まず、図13に示すステップS400において、マイクロカーネル16は、メモリ獲得用APIの呼び出し元のプロセッサコアの番号(本実施形態においてはマイクロカーネル16が実行されているプロセッサコアの番号)を取得する。そして、ステップS401に進む。
実メモリ割り当て処理について、図14を参照しつつ説明する。
まず、図14に示すステップS500において、マイクロカーネル16は、メモリ獲得用APIの引数で指定されたヒープID(実メモリID)を基に、そのヒープIDに関連付けられたメモリ領域20をメモリ割り当ての対象として選択する。例えば、図7の(9)で定義された「HEAP_CORE4」というヒープIDがメモリ獲得用APIの引数で指定されている場合、このヒープIDに関連付けられた「MEMOBJ_CORE4」という名前のメモリ領域20をメモリ割り当ての対象として選択する。そして、ステップS501に進む。
以上説明したように、本実施形態によれば、実メモリIDが指定されてメモリ獲得用APIが呼び出されたときには、指定された実メモリIDに関連付けられたメモリ領域20からメモリ割り当てを実行させるようにしている。このため、アプリケーションプログラム40が指定した特定のメモリからのメモリ割り当てを実行したい場合には、実メモリIDを指定してメモリ獲得用APIを呼び出せばよい。
12 メモリ領域作成部
14 メモリ割り当て部
15 ヒープマネージャ
16 マイクロカーネル
20 メモリ領域
21a 第1のコアメモリ領域
21b 第2のコアメモリ領域
21c 第3のコアメモリ領域
21d 第4のコアメモリ領域
22a 第1のクラスタメモリ領域
22b 第2のクラスタメモリ領域
23 グローバルメモリ領域
30a 第1のプロセッサコア
30b 第2のプロセッサコア
30c 第3のプロセッサコア
30d 第4のプロセッサコア
31a 第1のプロセッサコアのローカルメモリ
31b 第2のプロセッサコアのローカルメモリ
31c 第3のプロセッサコアのローカルメモリ
31d 第4のプロセッサコアのローカルメモリ
32a 第1のクラスタ
32b 第2のクラスタ
33a 第1のクラスタメモリ
33b 第2のクラスタメモリ
34 グローバルメモリ
40 アプリケーションプログラム
41 コンフィギュレーションファイル
42 情報生成手段
43 内部データ
44 ヘッダファイル
45 アプリケーションプログラムのソースコード
46 コンパイラ
47 オブジェクトファイル
Claims (4)
- それぞれローカルメモリを備えた複数のプロセッサコアを相互に接続したマルチコア環境において実行され、アプリケーションプログラムから呼び出し可能なメモリ獲得用APIを実装したオペレーティングシステムであって、
予め設定された内部データに従って複数のメモリ領域を作成するメモリ領域作成部と、
前記メモリ獲得用APIの引数として指定されたヒープIDを参照し、前記ヒープIDに関連付けられた前記メモリ領域からメモリ割り当てを実行させるメモリ割り当て部と、
を備え、
前記メモリ領域として、前記複数のプロセッサコアのローカルメモリに係るコアメモリ領域と、前記ローカルメモリよりもアクセス速度が遅いメモリに係るメモリ領域と、を含み、
前記メモリ領域作成部は、前記メモリ領域で、前記コアメモリ領域が最下層であり、かつ、前記アクセス速度が遅いメモリに係るメモリ領域が前記コアメモリ領域よりも上位に配置されたツリー構造を作成し、
前記メモリ割り当て部は、
前記ヒープIDで指定されたメモリ領域からのメモリ割り当てに失敗したときには、当該メモリ領域の上位のメモリ領域からメモリ割り当てを実行させることを特徴とする、オペレーティングシステム。 - 前記アクセス速度が遅いメモリに係るメモリ領域として、1以上の前記コアメモリ領域に紐付けられたクラスタメモリ領域と、1以上の前記クラスタメモリ領域に紐付けられたグローバルメモリ領域と、を含み、
前記メモリ領域作成部は、前記クラスタメモリ領域が前記コアメモリ領域よりも上位に配置され、かつ、前記グローバルメモリ領域が前記クラスタメモリ領域よりも上位に配置されたツリー構造を作成することを特徴とする、請求項1記載のオペレーティングシステム。 - それぞれローカルメモリを備えた複数のプロセッサコアを相互に接続したマルチコア環境において、アプリケーションプログラムからメモリ獲得用APIが呼び出されたときに、メモリ割り当てを実行させるためのメモリ割り当て方法であって、
予め設定された内部データに従って複数のメモリ領域を作成するステップと、
前記メモリ獲得用APIの引数として指定されたヒープIDを参照し、前記ヒープIDに関連付けられた前記メモリ領域からメモリ割り当てを実行させるステップと、
を備え、
前記メモリ領域として、前記複数のプロセッサコアのローカルメモリに係るコアメモリ領域と、前記ローカルメモリよりもアクセス速度が遅いメモリに係るメモリ領域と、を含み、
前記メモリ領域で、前記コアメモリ領域が最下層であり、かつ、前記アクセス速度が遅いメモリに係るメモリ領域が前記コアメモリ領域よりも上位に配置されたツリー構造を作成し、
前記ヒープIDで指定されたメモリ領域からのメモリ割り当てに失敗したときには、当該メモリ領域の上位のメモリ領域からメモリ割り当てを実行させることを特徴とする、メモリ割り当て方法。 - 前記アクセス速度が遅いメモリに係るメモリ領域として、1以上の前記コアメモリ領域に紐付けられたクラスタメモリ領域と、1以上の前記クラスタメモリ領域に紐付けられたグローバルメモリ領域と、を含み、
前記メモリ領域作成部は、前記クラスタメモリ領域が前記コアメモリ領域よりも上位に配置され、かつ、前記グローバルメモリ領域が前記クラスタメモリ領域よりも上位に配置されたツリー構造を作成することを特徴とする、請求項3記載のメモリ割り当て方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019190757A JP6932755B2 (ja) | 2018-10-19 | 2019-10-18 | オペレーティングシステム及びメモリ割り当て方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018197732A JP6682599B2 (ja) | 2018-10-19 | 2018-10-19 | オペレーティングシステム及びメモリ割り当て方法 |
JP2019190757A JP6932755B2 (ja) | 2018-10-19 | 2019-10-18 | オペレーティングシステム及びメモリ割り当て方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018197732A Division JP6682599B2 (ja) | 2018-10-19 | 2018-10-19 | オペレーティングシステム及びメモリ割り当て方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020077402A true JP2020077402A (ja) | 2020-05-21 |
JP6932755B2 JP6932755B2 (ja) | 2021-09-08 |
Family
ID=70724246
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019190757A Active JP6932755B2 (ja) | 2018-10-19 | 2019-10-18 | オペレーティングシステム及びメモリ割り当て方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6932755B2 (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11184829A (ja) * | 1996-11-29 | 1999-07-09 | Mitsubishi Electric Corp | デバイス間データ転送装置及びその方法 |
US20060070072A1 (en) * | 2004-09-29 | 2006-03-30 | Sony Corporation | Information processing apparatus, memory area management method, and computer program |
JP2013528861A (ja) * | 2010-05-20 | 2013-07-11 | アップル インコーポレイテッド | サブバッファオブジェクト |
WO2013175843A1 (en) * | 2012-05-23 | 2013-11-28 | Kabushiki Kaisha Toshiba | Information processor, information processing method, and control program |
-
2019
- 2019-10-18 JP JP2019190757A patent/JP6932755B2/ja active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11184829A (ja) * | 1996-11-29 | 1999-07-09 | Mitsubishi Electric Corp | デバイス間データ転送装置及びその方法 |
US20060070072A1 (en) * | 2004-09-29 | 2006-03-30 | Sony Corporation | Information processing apparatus, memory area management method, and computer program |
JP2006127463A (ja) * | 2004-09-29 | 2006-05-18 | Sony Corp | 情報処理装置、メモリ領域管理方法、並びにコンピュータ・プログラム |
JP2013528861A (ja) * | 2010-05-20 | 2013-07-11 | アップル インコーポレイテッド | サブバッファオブジェクト |
US20140313214A1 (en) * | 2010-05-20 | 2014-10-23 | Apple Inc. | Subbuffer objects |
WO2013175843A1 (en) * | 2012-05-23 | 2013-11-28 | Kabushiki Kaisha Toshiba | Information processor, information processing method, and control program |
JP2013242823A (ja) * | 2012-05-23 | 2013-12-05 | Toshiba Corp | 情報処理装置、情報処理方法および制御プログラム |
US20130332666A1 (en) * | 2012-05-23 | 2013-12-12 | Kabushiki Kaisha Toshiba | Information processor, information processing method, and computer program product |
Also Published As
Publication number | Publication date |
---|---|
JP6932755B2 (ja) | 2021-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9965324B2 (en) | Process grouping for improved cache and memory affinity | |
US5511192A (en) | Method and apparatus for managing thread private data in a parallel processing computer | |
RU2569805C2 (ru) | Виртуальная архитектура неоднородной памяти для виртуальных машин | |
US6505286B1 (en) | User specifiable allocation of memory for processes in a multiprocessor computer having a non-uniform memory architecture | |
US6336177B1 (en) | Method, system and computer program product for managing memory in a non-uniform memory access system | |
US20160335121A1 (en) | Support of non-trivial scheduling policies along with topological properties | |
JP6423809B2 (ja) | オペレーティングシステム、プログラミングシステム及びメモリ割り当て方法 | |
CN110120940B (zh) | 一种面向Docker容器的文件系统资源隔离方法 | |
US8782646B2 (en) | Non-uniform memory access (NUMA) enhancements for shared logical partitions | |
KR20000006565A (ko) | 멀티-스레드가상머신에서메모리할당방법및그장치 | |
JP2008033392A (ja) | 仮想計算機システム及びその動作方法 | |
JP2007026094A (ja) | 実行装置およびアプリケーションプログラム | |
CN1140500A (zh) | 分布式数据库系统 | |
Virouleau et al. | Using data dependencies to improve task-based scheduling strategies on NUMA architectures | |
Eichenberger et al. | The design of openmp thread affinity | |
JP5307228B2 (ja) | 複数のタスクにわたる複数のオペレーティングシステム・サブプロセスの共有 | |
US20140289739A1 (en) | Allocating and sharing a data object among program instances | |
US7386702B2 (en) | Systems and methods for accessing thread private data | |
US7395400B2 (en) | Adaptive address space operating system | |
JP6682599B2 (ja) | オペレーティングシステム及びメモリ割り当て方法 | |
JP6932755B2 (ja) | オペレーティングシステム及びメモリ割り当て方法 | |
WO2017142525A1 (en) | Allocating a zone of a shared memory region | |
JP6953768B2 (ja) | 支援装置、プログラム | |
JP3019317B2 (ja) | プロセススケジューリング方法 | |
KR101140522B1 (ko) | 객체 관리 시스템 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20191018 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20201008 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20201201 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20201224 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210601 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210709 |
|
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: 20210803 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210818 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6932755 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |