Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1299749
  • 博文数量: 554
  • 博客积分: 10425
  • 博客等级: 上将
  • 技术积分: 7555
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-09 09:49
文章分类

全部博文(554)

文章存档

2012年(1)

2011年(1)

2009年(8)

2008年(544)

分类:

2008-04-11 16:11:44


第30 章• pid 提供器403
404
plockstat 提供器
plockstat 提供器提供了可用于观察用户级同步元语(包括锁定争用次数和暂挂次数)行为
的探测器。plockstat (1M) 命令是使用plockstat 提供器收集用户级锁定事件数据的DTrace
使用者。
概述
plockstat 提供器提供了用于以下类型事件的探测器:
争用事件这些探测器对应于用户级同步元语的争用,并在强制线程等待资源可用时触
发。为了避免出现争用情况,通常会对Solaris 进行优化,以便不发生延迟的
争用;应使用这些探测器来了解出现争用位置的情况。由于设计的争用相对
较少,因此启用争用事件探测器通常不会产生严重的探测影响;启用这些探
测器时可以不必关注实际的性能影响。
暂挂事件这些探测器对应于获取、释放或处理用户级同步元语。同样,这些探测器可
用于回答有关处理用户级同步元语的方法的任意问题。由于应用程序获取和
释放同步元语通常很频繁,因此启用暂挂事件探测器将比启用争用事件探测
器产生更大的探测影响。虽然启用暂挂事件探测器产生的探测影响可能会很
大,但并非不可接受;仍然可以在生产环境应用程序中放心地启用这些探测
器。
错误事件这些探测器对应于在获取或释放用户级同步元语时遇到的任何类型的异常行
为。当线程在用户级同步元语上阻塞时,可以使用这些事件检测遇到的错
误。错误事件会非常少见,因此启用这些探测器不会产生严重的探测影响。
31 第3 1 章
405
互斥探测器
互斥强制临界段相互排斥。当线程尝试使用mutex_lock(3C) 或pthread_mutex_lock(3C) 获
取另一个线程暂挂的互斥时,它将确定拥有线程是否正在其他CPU 中运行。如果是这样,
获取线程将旋转一段时间,以等待互斥可用。如果属主未在另一个CPU 上运行,获取线程
将阻塞。
表31–1 中列出了与互斥有关的四个plockstat 探测器。对于每一个探测器,arg0 包含指向
代表互斥的mutex_t 或pthread_mutex_t 结构(这些结构的类型相同)的指针。
表31–1互斥探测器
mutex-acquire 获取互斥之后将立即触发的暂挂事件探测器。arg1 包含布尔值,用于指示
获取操作对于递归互斥是否是递归的。arg2 表示获取线程在此互斥上旋转
的重复次数。如果在获取此互斥时触发mutex-spin 探测器,arg2 将为非
零值。
mutex-block 线程在暂挂互斥上阻塞之前将触发的争用事件探测器。单次锁定获取可能
会同时触发mutex-block 和mutex-spin。
mutex-spin 线程开始在暂挂互斥上旋转之前将触发的争用事件探测器。单次锁定获取
可能会同时触发mutex-block 和mutex-spin。
mutex-release 释放互斥之后将立即触发的暂挂事件探测器。arg1 包含布尔值,用于指示
事件是否对应于递归互斥上的递归释放。
mutex-error 互斥操作中遇到错误时将触发的错误事件探测器。arg1 是遇到的错误的
errno 值。
读取器/写入器锁定探测器
读取器/写入器锁定允许临界段中一次有多个读取器或一个写入器,但不允许二者同时存
在。这些锁定通常用于搜索操作比修改操作更频繁或线程在临界段中花费大量时间的结
构。用户使用Solaris rwlock(3C) 或POSIX pthread_rwlock_init(3C) 接口与读取器/写入器
锁定交互。
表31–2 中说明了与读取器/写入器锁定有关的探测器。对于每一个探测器,arg0 包含指向代
表自适应锁定的rwlock_t 或pthread_rwlock_t 结构(这些结构的类型相同)的指针。arg1
包含布尔值,用于指示操作是否作为写入器。
表31–2读取器/写入器锁定探测器
rw-acquire 获取读取器/写入器锁定之后将立即触发的暂挂事件探测器。
rw-block 尝试获取锁定时,在线程阻塞之前将触发的争用事件探测器。如果启用该探
测器,rw-acquire 探测器或rw-error 探测器将在rw-block 之后触发。
互斥探测器
406 Solaris 动态跟踪指南• 2006 年7 月
表31–2 读取器/写入器锁定探测器(续)
rw-release 释放读取器/写入器锁定之后将立即触发的暂挂事件探测器。
rw-error 读取器/写入器锁定操作期间遇到错误时将触发的错误事件探测器。arg1 是遇
到的错误的errno 值。
稳定性
plockstat 提供器使用DTrace 的稳定性机制来说明其稳定性,如下表所示。有关稳定性机
制的更多信息,请参见第39 章。
元素名称稳定性数据稳定性相关性类
提供器发展中发展中ISA
模块专用专用未知
函数专用专用未知
名称发展中发展中ISA
参数发展中发展中ISA
稳定性

 

 

以上文章转自于 : http://developers.sun.com.cn/

 

 

以上文章转自于 : http://developers.sun.com.cn/

阅读(452) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~