JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
プログラミングインタフェースガイド     Oracle Solaris 10 1/13 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

1.  メモリーと CPU の管理

2.  リモート共有メモリー API (Solaris クラスタ用)

3.  セッション記述プロトコル API

4.  プロセススケジューラ

5.  近傍性グループ API

近傍性グループの概要

インタフェースバージョンの確認

近傍性グループインタフェースの初期化

lgrp_init() の使用法

lgrp_fini() の使用法

近傍性グループ階層

lgrp_cookie_stale() の使用法

lgrp_view() の使用法

lgrp_nlgrps() の使用法

lgrp_root() の使用法

lgrp_parents() の使用法

lgrp_children() の使用法

近傍性グループの内容

lgrp_resources() の使用法

lgrp_cpus() の使用法

lgrp_mem_size() の使用法

近傍性グループの特性

lgrp_latency_cookie() の使用法

近傍性グループ、スレッド、およびメモリー配置

lgrp_home() の使用法

madvise() の使用法

madv.so.1 の使用法

madv.so.1 の使用例

meminfo() の使用法

近傍性グループのアフィニティー

lgrp_affinity_get() の使用法

lgrp_affinity_set() の使用法

API の使用例

6.  入出力インタフェース

7.  プロセス間通信

8.  ソケットインタフェース

9.  XTI と TLI を使用したプログラミング

10.  パケットフィルタリングフック

11.  トランスポート選択と名前からアドレスへのマッピング

12.  リアルタイムプログラミングと管理

13.  Solaris ABI と ABI ツール

A.  UNIX ドメインソケット

索引

近傍性グループ階層

このセクションで説明する API を使用することにより、呼び出しスレッドから lgroup 階層を参照できます。lgroup 階層は、Directed Acyclic Graph (DAG) です。ツリー構造と似ていますが、ノードは複数の親を持つことができます。ルート lgroup はマシン全体を表し、ルート lgroup にはそのマシンのすべてのリソースが含まれます。ルート lgroup はシステム全体でもっとも高い応答時間値を持っています。それぞれの子 lgroup はルート lgroup にあるハードウェアのサブセットで構成されています。それぞれの子 lgroup の応答時間値はより低く制限されています。ルートに近い近傍性グループほど、多くのリソースと高い応答時間が与えられています。葉に近い近傍性グループは、リソースも少なく、応答時間も低くなります。lgroup には、その応答時間の範囲内で直下にリソースが含まれる場合があります。また、lgroup に葉 lgroup が含まれ、その葉 lgroup に自身のリソースセットが含まれる場合もあります。葉 lgroup のリソースは、その葉 lgroup をカプセル化する lgroup から利用可能です。

lgrp_cookie_stale() の使用法

lgrp_cookie_stale(3LGRP) 関数は、指定の cookie で表された lgroup 階層のスナップショットが最新のものであるかどうかを判定します。

#include <sys/lgrp_user.h>
int lgrp_cookie_stale(lgrp_cookie_t cookie);

lgrp_init() 関数が返す cookie は、そのスナップショットを取得した view 引数の種類によって、さまざまな理由により無効になる場合があります。view 引数に LGRP_VIEW_OS を指定して呼び出した lgrp_init() 関数が返す cookie では、動的再構成や CPU のオンラインステータスの変化などが原因で lgroup 階層に変更があったときに、無効になる場合があります。view 引数に LGRP_VIEW_CALLER を指定した lgrp_init() 関数が返す cookie では、呼び出しスレッドのプロセッサセットの変更または lgroup 階層の変化が原因で、無効になる場合があります。無効になった cookie は、その cookie で lgrp_fini() 関数を呼び出し、次に新規 cookie を生成する lgrp_init() 関数を呼び出すことによってリフレッシュされます。

無効な cookie を指定した場合、lgrp_cookie_stale() 関数は EINVAL を返します。

lgrp_view() の使用法

lgrp_view(3LGRP) 関数は、指定した lgroup 階層のスナップショットがどのビューで取得されたかを判別します。

#include <sys/lgrp_user.h>
lgrp_view_t lgrp_view(lgrp_cookie_t cookie);

lgrp_view() 関数は、lgroup 階層のスナップショットを表す cookie を引数に使用し、そのスナップショットの view を返します。LGRP_VIEW_CALLER を view に指定して取得したスナップショットには、呼び出しスレッドで使用可能なリソースのみが含まれます。LGRP_VIEW_OS で取得したスナップショットには、オペレーティングシステムで使用可能なすべてのリソースが含まれます。

無効な cookie を指定した場合、lgrp_view() 関数は EINVAL を返します。

lgrp_nlgrps() の使用法

lgrp_nlgrps(3LGRP) 関数は、システムに存在する近傍性グループの数を返します。近傍性グループが 1 つしかないシステムでは、メモリー配置の最適化による効果はありません。

#include <sys/lgrp_user.h>
int lgrp_nlgrps(lgrp_cookie_t cookie);

lgrp_nlgrps() 関数は、lgroup 階層のスナップショットを表す cookie を引数に使用し、階層で使用可能な lgroup の数を返します。

無効な cookie を指定した場合、lgrp_nlgrps() 関数は EINVAL を返します。

lgrp_root() の使用法

lgrp_root(3LGRP) 関数は、ルート lgroup ID を返します。

#include <sys/lgrp_user.h>
lgrp_id_t lgrp_root(lgrp_cookie_t cookie);

lgrp_root() 関数は、lgroup 階層のスナップショットを表す cookie を引数に使用し、ルート lgroup ID を返します。

lgrp_parents() の使用法

lgrp_parents(3LGRP) 関数は、lgroup 階層のスナップショットを表す cookie を引数に使用し、指定した lgroup の親 lgroups の数を返します。

#include <sys/lgrp_user.h>
int lgrp_parents(lgrp_cookie_t cookie, lgrp_id_t child,
                 lgrp_id_t *lgrp_array, uint_t lgrp_array_size);

lgrp_arrayNULL ではなく、lgrp_array_size の値がゼロでないとき、lgrp_parents() 関数は、配列の要素数の上限まで、またはすべての親 lgroup ID を配列に入れて返します。ルート lgroup には親はありません。ルート lgroup に対して lgrp_parents() 関数が呼び出された場合は、lgrp_array には何も返されません。

無効な cookie を指定した場合、lgrp_parents() 関数は EINVAL を返します。指定した lgroup ID が存在しない場合は、lgrp_parents() 関数は ESRCH を返します。

lgrp_children() の使用法

lgrp_children(3LGRP) 関数は、呼び出しスレッドの lgroup 階層のスナップショットを表す cookie を引数に使用し、指定した lgroup の子 lgroup の数を返します。

#include <sys/lgrp_user.h>
int lgrp_children(lgrp_cookie_t cookie, lgrp_id_t parent,
                  lgrp_id_t *lgrp_array, uint_t lgrp_array_size);

lgrp_arrayNULL ではなく、lgrp_array_size の値がゼロでないとき、lgrp_children() 関数は、要素数の上限まで子 lgroup ID を配列に入れるか、またはすべての子 lgroup ID を配列に入れて返します。

無効な cookie を指定した場合、lgrp_children() 関数は EINVAL を返します。指定した lgroup ID が存在しない場合は、lgrp_children() 関数は ESRCH を返します。