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 域套接字

索引

初始化地址组接口

应用程序必须调用 lgrp_init(3LGRP),才能使用 API 遍历 lgroup 分层结构并搜索 lgroup 分层结构的内容。调用 lgrp_init() 可为应用程序提供 lgroup 分层结构的一致快照。应用程序开发者可以指定快照仅包含专供调用线程使用的资源,还是包含一般情况下操作系统均可使用的资源。lgrp_init() 函数将返回一个 cookie,用于执行以下任务:

使用 lgrp_init()

lgrp_init() 函数可初始化 lgroup 接口,并获取 lgroup 分层结构的快照。

#include <sys/lgrp_user.h>
lgrp_cookie_t lgrp_init(lgrp_view_t view);

如果在调用 lgrp_init() 函数时使用 LGRP_VIEW_CALLER 作为视图,则该函数返回的快照将仅包含可供调用线程使用的资源。如果在调用 lgrp_init() 函数时使用 LGRP_VIEW_OS 作为视图,则该函数返回的快照将仅包含可供操作系统使用的资源。在线程成功调用 lgrp_init() 函数后,该函数将返回一个 cookie,与 lgroup 分层结构进行交互的任何函数均使用此 cookie。当线程不再需要此 cookie 时,将使用此 cookie 作为参数来调用 lgrp_fini() 函数。

lgroup 分层结构包括一个根 lgroup,其中包含计算机的所有 CPU 和内存资源。根 lgroup 可以包含其他由更小延迟限定的地址组。

lgrp_init() 函数可能会返回两个错误。如果视图无效,则该函数返回 EINVAL。如果没有足够内存用于分配 lgroup 分层结构的快照,则该函数返回 ENOMEM

使用 lgrp_fini()

lgrp_fini(3LGRP) 函数可终止使用给定的 cookie,并释放相应的 lgroup 分层结构快照。

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

lgrp_fini() 函数使用表示由先前的 lgrp_init() 调用创建的 lgroup 分层结构快照的 cookie。lgrp_fini() 函数可释放分配给该快照的内存。调用 lgrp_fini() 后,此 cookie 将失效。请不要再使用此 cookie。

如果传递给 lgrp_fini() 函数的 cookie 无效,则 lgrp_fini() 将返回 EINVAL