JavaScript is required to for searching.
跳过导航链接
退出打印视图
编程接口指南     Oracle Solaris 10 1/13 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

1.  内存和 CPU 管理

2.  用于 Solaris Cluster 的远程共享内存 API

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 分层结构对域资源进行了组织,以便简化查找最近资源的过程。叶 lgroup 使用具有最小延迟的资源进行定义。给定叶 lgroup 的每个上一级祖先 lgroup 均包含距离其子 lgroup 下一个最近的资源。根 lgroup 包含域中的所有资源。

给定 lgroup 的资源直接包含在此 lgroup 内,或者间接包含在此给定 lgroup 封装的叶 lgroup 内。叶 lgroup 直接包含各自的资源,而不封装其他任何 lgroup。

使用 lgrp_resources()

lgrp_resources() 函数返回指定 lgroup 中包含的资源数。

#include <sys/lgrp_user.h>
int lgrp_resources(lgrp_cookie_t cookie, lgrp_id_t lgrp, lgrp_id_t *lgrpids,
                   uint_t count, lgrp_rsrc_t type);

lgrp_resources() 函数使用表示 lgroup 分层结构快照的 cookie。此 cookie 是从 lgrp_init() 函数中获取的。lgrp_resources() 函数返回 ID 由 lgrp 参数值指定的 lgroup 中的资源数。lgrp_resources () 函数表示直接包含 CPU 或内存资源的 lgroup 集合中的资源。lgrp_rsrc_t 参数可以具有以下两个值:

LGRP_RSRC_CPU

lgrp_resources() 函数返回 CPU 资源数。

LGRP_RSRC_MEM

lgrp_resources() 函数返回内存资源数。

如果在 lgrpids[] 参数中传递的值不为空,并且 count 参数不为零,则 lgrp_resources() 函数将在 lgrpids[] 数组中存储 lgroup ID。此数组中存储的 lgroup ID 数最多不能超过 count 参数的值。

如果指定的 cookie、lgroup ID 或类型无效,则 lgrp_resources() 函数将返回 EINVAL。如果 lgrp_resources() 函数找不到指定的 lgroup ID,则该函数将返回 ESRCH

使用 lgrp_cpus()

lgrp_cpus(3LGRP) 函数使用表示 lgroup 分层结构快照的 cookie,并返回给定 lgroup 中的 CPU 数。

#include <sys/lgrp_user.h>
int lgrp_cpus(lgrp_cookie_t cookie, lgrp_id_t lgrp, processorid_t *cpuids,
              uint_t count, int content);

如果 cpuid[] 参数不为 NULL,并且 CPU 计数不为零,则 lgrp_cpus() 函数将使用 CPU ID 填充数组,直到填满数组或者所有 CPU ID 均在数组中为止。

content 参数可以具有以下两个值:

LGRP_CONTENT_ALL

lgrp_cpus() 函数返回此 lgroup 及其后代中的 CPU 的 ID。

LGRP_CONTENT_DIRECT

lgrp_cpus() 函数只返回此 lgroup 中的 CPU 的 ID。

如果 cookie、lgroup ID 或其中一个标志无效,则 lgrp_cpus() 函数将返回 EINVAL。如果找不到指定的 lgroup ID,则 lgrp_cpus() 函数将返回 ESRCH

使用 lgrp_mem_size()

lgrp_mem_size(3LGRP) 函数使用表示 lgroup 分层结构快照的 cookie,并返回给定 lgroup 中已安装内存或可用内存的大小。lgrp_mem_size() 函数报告内存大小(字节)。

#include <sys/lgrp_user.h>
lgrp_mem_size_t lgrp_mem_size(lgrp_cookie_t cookie, lgrp_id_t lgrp,
                              int type, int content)

type 参数可以具有以下两个值:

LGRP_MEM_SZ_FREE

lgrp_mem_size() 函数返回可用内存量(字节)。

LGRP_MEM_SZ_INSTALLED

lgrp_mem_size() 函数返回已安装内存量(字节)。

content 参数可以具有以下两个值:

LGRP_CONTENT_ALL

lgrp_mem_size() 函数返回此 lgroup 及其后代中的内存量。

LGRP_CONTENT_DIRECT

lgrp_mem_size() 函数只返回此 lgroup 中的内存量。

如果 cookie、lgroup ID 或其中一个标志无效,则 lgrp_mem_size() 函数将返回 EINVAL。如果找不到指定的 lgroup ID,则 lgrp_mem_size() 函数将返回 ESRCH