频 道 直 达 - 新闻 - 培训 - 软件 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 读书 - 博客 - BBS
51CTO.COM_中国最大的网络技术网站
找资料:

1.4.1 新的线程模型

作者: Jim Mauro; Richard McDougall 出处:机械工业出版社华章公司  2007-09-21 17:13    砖    好    评论   进入论坛
阅读提示:《Solaris 内核结构》(第2版)第一部分为Solaris内部结构介绍,本文是新的线程模型讲解。

1.4.1 新的线程模型

Solaris2.2到Solaris 8实现了两层线程模型中,用户线程被复合到潜在地更小的LWP池内。最初的设计意图是在进程内支持成百上千的线程,而不需要进入内核进行多个线程管理任务,例如创建和销毁线程。这个模型很好地使用了很多年,但是并非没有遇到考验。复合用户线程到可用的LWP需要在线程库级维护可运行的线程队列和用户线程调度程序——与内核调度程序分开并且不同。在内核可以调度用户线程到一个处理器上运行之前,需要将它绑定到LWP。维护一个库级的线程调度程序是极其复杂的。另外,在两层的模型中维护正确的、异步的信号行为相当具有挑战性,因为当系统试图向用户线程传递信号的时候,接收发出信号的用户线程可能不在LWP上。最后,并发管理和调度延迟的问题可能导致多线程应用的性能降低。调度延迟是等待线程库调度程序链接用户线程到可用的LWP造成的。并发问题与维护足够数量的LWP有关,因此进程没有可运行的用户线程等待执行资源(LWP)。

从Solaris 8开始,新的线程模型被引入:单层模型。即,在用户线程被创建的时候,LWP和内核线程也被创建并被链接到用户线程;用户线程从来不会没有LWP/kthread。这对应于在两层模型中被称为的绑定线程。线程编程界面为创建绑定线程提供一个标记;这个标记自从线程编程界面被引入Solaris就已经存在了。新的单层模型可以被认为是所有的线程从始至终都被绑定。新的线程模型通过分发替代的线程库被引入Solaris 8。 缺省地,多线程的应用连接到/usr/lib/libthread.so,即Solaris 8提供的原有的两层模型。替代的libthread.so共享对象库被放在了/usr/lib/lwp目录中。新的库与现存的所有多线程应用程序二进制兼容。使用新的线程库不必重新编译:只需简单设置运行时连接程序的路径环境变量指向/usr/lib/lwp。在Solaris 9和Solaris 10 中,单层线程库是缺省的线程库,所以获得单层模型行为不需要设置运行时连接程序的路径变量。

新的线程模型与原来的模型相比,具有几个好处:

改进的性能、可扩展性和可靠性。库源代码的大小和复杂性随着单层模型的发展被充分地减小。库级的调度程序需要的内部库锁被废除。
可靠的信号行为。用户线程和LWP之间的信号屏蔽同步问题不复存在;异步的信号传递是可靠和一致的。
改进的自适应互斥信号锁实现。互斥信号(mutex)锁是用于多线程程序保护数据被多线程同时访问的同步原语。自适应互斥信号提供优化,因此希望获得被占用的锁的线程将动态决定自旋等待锁,或者睡眠并依靠唤醒机制在锁被释放的时候再试一次。使用新模型,自适应互斥信号已经被优化。
同步对象的用户级睡眠队列。同步对象,例如互斥信号锁,可以被程序员定义为进程内的锁。这意味着锁只会被进程内的线程,而不会被其他的进程的线程共享。对这些进程内的锁,管理锁的获得和释放的代码路径已经被优化,以维护用户级睡眠队列的锁的线程。为线程获得和释放进程内的锁,需要更少的调用进入内核。

这些特性,及线程库的其他优点,将在第二部分详细地讨论。

【责任编辑:雪花 TEL:(010)68476606】

回书目   上一节   下一节
专题
Solaris基础知识入门
Linux/Solaris服务器的安全配置
Solaris 10 配置管理
Ajax+JSP网站开发从入门到精通
ASP.NET Ajax网站开发从入门到精通
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 最 大 的 网 络 技 术 网 站 ·
技 术 成 就 梦 想
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
浏览器的战国时代
浏览器的战国时代
ARP攻击防范与解决方案
ARP攻击防范与解决方案
NAC安全访问控制
NAC安全访问控制
· NAC安全访问控制
· 网络布线测试仪器
· Windows Server 2008专..
· Windows远程桌面应用
· 网络故障排除宝典
· 运营商封堵ADSL共享 中..
· 解析35岁技术人的价值..
· 世纪枭雄比尔盖茨的王..
· 主流品牌防火墙配置
· ASP.NET开发教程
· 超级计算机TOP500专题
· Vista SP1对决XP SP3
· SQL Server 2008/2005..
· 程序员如何成长?
· C#技术开发指南
· 虚拟化技术还有点“虚”
ARP攻击防范与解决方案
ARP攻击防范与解决方案
SQL Server 2008/2005全解
SQL Server 2008/2005全解
SOA 面向服务架构
SOA 面向服务架构
· SOA 面向服务架构
· SQL Server 2008/2005..
· Apache技术专题
· 三层交换技术专题
· SQL Server入门到精通
· Windows远程桌面应用
· C#技术开发指南
· Apache技术专题
· Windows集群服务应用
· C#技术开发指南
· 国际文档格式标准开战
· 路由器设置与口令恢复
· Linux 集群技术专题
· PHP开发应用手册
· SOA 面向服务架构
· 企业数据恢复指南
ARP攻击防范与解决方案
ARP攻击防范与解决方案
SQL Server 2008/2005全解
SQL Server 2008/2005全解
SQL Server入门到精通
SQL Server入门到精通
· SQL Server入门到精通
· SQL Server 2008/2005..
· SOA 面向服务架构
· Apache技术专题
· C#技术开发指南
· 三层交换技术专题
· Apache技术专题
· C#技术开发指南
· Windows远程桌面应用
· 企业数据恢复指南
· Windows集群服务应用
· 路由器设置与口令恢复
· Linux 集群技术专题
· SOA 面向服务架构
· 了解统一威胁管理(UTM)..
· 反垃圾邮件技术应用