JM プロジェクトは、主に Linux 関連のマニュアルページの日本語ページを翻訳・公開しています。
... , unsigned long maxnode , unsigned flags ); -lnuma でリンクする。 説明 mbind () は、 addr から始まる長さ len バイトの範囲のメモリーに NUMA メモリーポリシーを設定する。 NUMA ポリシーはポリシーモードと 0 個以上のノードから構成される。 メモリーポリシーはど ... のノードからメモリーを割り当てるかを決定する。 addr と len で指定されたメモリー範囲に、 メモリーの「無名」領域 --- MAP_ANONYMOUS 付きの mmap ( ... 2) システムコールを使って作成されたメモリー領域 --- や MAP_PRIVATE 付きの mmap (2) を使ってマップされたメモリーマップファイルが含まれている場合、アプリケーションがそ ... ... れているマルチプロセッサシステム のことである。メモリーノードへのアクセス時間は、アクセス元の CPU と アクセス先のノードの相対的な位置関係に依存する (これに対し、対称型マルチプロ ... セッサシステムでは、どの CPU から どのメモリーへのアクセス時間も同じである)。 通常は、 NUMA システムの各 CPU にはローカルのメモリーノードがあり、 そのメモリーノードには ... 、他の CPU のローカルノードや全ての CPU で 共有されるバス上のメモリーよりも早くアクセスすることができる。 NUMA システムコール Linux カーネルには、次に示す NUMA 関連のシステムコールが実装されて ... ... 。これは open (2) と同じである。下記にある他のインターフェースで使用する ファイルディスクリプターを返す。 ftruncate (2) 共有メモリーオブジェクトの大きさを設定する。 mmap (2) 呼び出したプロセスの仮想アドレス空間に共有メモリーオブジェクトを マップする。 mu ... nmap (2) 呼び出したプロセスの仮想アドレス空間から 共有メモリーオブジェクトをアンマップする。 shm_unlink (3) 共有メモリーオブジェクト名を削除する。 close (2) shm_open (3) で割り当てられ ... たファイルディスクリプターが不要になった際に、 そのファイルディスクリプターをクローズする。 fstat (2) その共有メモリーオブジェクトについての情報が入った stat 構造体を取得する。 このシステムコールが返す情報には、オブジェクトのサイズ ( st_siz ... ... ーはポリシーモードと 0 個以上のノードから構成され、 設定内容は引数 mode , nodemask , maxnode により指定される。 NUMA (非対称メモリーアクセス) マシンでは、CPU により メモリーコントローラーが異なり、距離も異なっている。 メモリーポリシーは、どのノードからメ ... cy () は、スレッドのデフォルトポリシーを定める。スレッドのポリシーは、 mbind (2) で設定される特定のポリシーにより制御されるメモリー領域以外のスレッドのアドレス空間におけるページの割り当てに適用される。 スレッドのデフォルトポリシーは、 MAP_PRIVATE フラグ ... を指定した mmap (2) を使ってマップされたメモリーマップファイルに対する読み出し専用 (ロードされるだけ) のページの割り当てにも適用される。 また、 MAP_SHARED フラグを指定した ... ... プメモリそれぞれに対して、 使用量と空き容量を表示し、カーネルが用いているバッファも表示する。 共有メモリの欄は無視してほしい。これは ... 古い機能の名残である。 オプション -b を指定するとメモリの量をバイト単位で表示し、 -k ではキロバイト単位で表示 (デフォルト) し、 -m ではメガバイト単位で表示する。 -t を指定すると物 ... 理メモリ、スワップメモリの合計を示す行も表示する。 -o を指定すると「バッファの分を増減した行」を表示しない。 -o オプションを指定しな ... ... * old_address , size_t old_size , size_t new_size , int flags , ... /* void * new_address */); 説明 mremap () は既存のメモリーマッピングの拡張 (または縮小) を行う。 同時に移動されることもある ( flags 引き数と利用可能な仮想アドレス空間によって決まる ... )。 old_address は拡張 (または縮小) しようとする仮想メモリーブロック の元のアドレスである。 old_address はページ境界に合っていなければ ならない点に注意すること。 old_size は元の仮想メ ... モリーブロックの サイズである。 new_size は要求する変更後の仮想メモリーブロックのサイズである。 5 番目の引き数として new_address を指定することができる。下記の MREMAP_FIXED の説明を参照のこと。 ... ... y does not have the value IPC_PRIVATE ), or to create a new set. key の値が IPC_PRIVATE の場合、もしくは key に対応する共有メモリーセグメントが存在せず、 shmflg に IPC_CREAT が指定されていた場合、 新しい共有メモリーセグメントを作成する。 作成される共有メ ... の倍数へと切り上げた (round up) 大きさとなる。 shmflg に IPC_CREAT と IPC_EXCL の両方が指定された場合、 key に対応する共有メモリーセグメントが既に存在すると、 shmget () は失敗し、 errno に EEXIST が設定される (これは open (2) に O_CREAT | O_EXCL を指定 ... ワップ空間を予約した場合は、そのセグメントの変更が必ず成功することが 保証される。スワップ空間の予約を行わなかった場合は、物理メモリーに空きが ないと書き込み時に SIGSEGV を受け取る可能性がある。 proc (5) にある /proc/sys/vm/overcommit_memory ファイルに関す ... ... ています。なぜなら標準エラー出力先が端末である場合、 --verbose を利用すれば進捗インジケーターが自動的に更新されるためです。 メモリ利用 xz が利用するメモリ量は、圧縮の設定により数 100 キロバイトから数ギガバイトまでとさまざまです。ファイル圧縮時に利用される ... 設定は、ファイル伸長時のメモリ利用を決定づけます。通常、伸長処理に要するメモリ容量は、圧縮処理においてファイル生成に必要となるメモリ容量の 5 % から 20 % で ... す。たとえば xz -9 によって圧縮されたファイルを伸長するには、今のところ 65 MiB のメモリを要します。ただし .xz ファイルの伸長に数ギガバイトを利用することも可能です。 特に、古いシステムを利用してきたユーザーは、あ ... ... のすべてのユーザーがこのファイルを読み出すことができる。 /proc/[pid]/map_files/ (kernel 3.3 以降) このサブディレクトリには、 メモリーマップされたファイルに対応するエントリーが置かれる ( mmap (2) 参照)。 エントリーの名前がメモリー領域の (16 進数表現の) 開始 ... 21:31 3252e00000-3252e20000 -> /usr/lib64/ld-2.15.so ... これらのエントリーが存在するのは MAP_FILE フラグでマッピングされたメモリー領域についてであるが、 Linux での無名の共有メモリー ( MAP_ANON | MAP_SHARED で作成された領域) の実装方法では、 このディレク ... トリに無名の共有メモリーに関するエントリーも存在する。 以下は、 マッピング元のファイルが削除された /dev/zero ファイルでの例である。 lrw-------. 1 ... ... のすべてのユーザーがこのファイルを読み出すことができる。 /proc/[pid]/map_files/ (kernel 3.3 以降) このサブディレクトリには、 メモリーマップされたファイルに対応するエントリーが置かれる ( mmap (2) 参照)。 エントリーの名前がメモリー領域の (16 進数表現の) 開始 ... 21:31 3252e00000-3252e20000 -> /usr/lib64/ld-2.15.so ... これらのエントリーが存在するのは MAP_FILE フラグでマッピングされたメモリー領域についてであるが、 Linux での無名の共有メモリー ( MAP_ANON | MAP_SHARED で作成された領域) の実装方法では、 このディレク ... トリに無名の共有メモリーに関するエントリーも存在する。 以下は、 マッピング元のファイルが削除された /dev/zero ファイルでの例である。 lrw-------. 1 ... 日本語の文書やマニュアルを配布している個人/プロジェクトへのリンクです。