免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1304 | 回复: 4
打印 上一主题 下一主题

关于solaris的进程模型 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-03-12 11:15 |只看该作者 |倒序浏览
大家帮忙指点一下关于进程线程模型的资料,不是很容易google到!

论坛徽章:
1
IT运维版块每日发帖之星
日期:2016-05-28 06:20:00
2 [报告]
发表于 2007-03-12 11:25 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
3 [报告]
发表于 2007-03-12 11:41 |只看该作者
刚找到oldunix 为什么那样回复的原因 不过大牛门有通过数据结构表示的具体点介绍的资料吗


LWP其实是内核线程,它们使用内核资源,是Solaris中真正的可调度实体。内核只关心LWP,对用户线程一无所知。用户线程由线程库管理,线程库支持用户线程及LWP之间的一到一、多到多、多到一映射。用户线程与LWP池之间的映射关系及用户线程的调度由线程库来管理。虽然两层线程模型为应用程序编码添加了额外的负担,但是这种模型使得用户线程能在使用较少系统资源的情况下执行。

Solaris有两种用户线程: 绑定的和未绑定的。一个绑定的线程是用户线程与LWP之间的一一映射,而一个未绑定的线程则没有一个对应的LWP。在一个进程中,线程库在LWP池上对用户线程进行调度。应用程序中,如果要求某用户线程能与系统中的其他LWP一起调度,则应该使用绑定的线程。

内核根据LWP的调度类型和优先级对它们进行调度。在Solaris的实现中,进程建立时,已有一个初始LWP建立起来,并且继承父进程的调度类型和优先级。一般来说,绑定的用户线程继承底层的LWP调度类型和优先级,而未绑定的则继承父进程的调度类型和优先级。

Solaris内核使用一种抢先的基于优先级的调度机制,高优先级的LWP比低优先级的LWP先执行。Solaris线程库使用优先级对用户线程在LWP池上进行调度,每次选择一个LWP执行已经就绪的用户线程。如果某LWP因无限等待而阻塞,线程库则将其对应的用户线程的上下文保存起来,并分派另一个用户线程到该LWP上执行。线程库通常建立足够多的LWP,以保证进程不陷入无限等待。

论坛徽章:
1
IT运维版块每日发帖之星
日期:2016-05-28 06:20:00
4 [报告]
发表于 2007-03-12 12:01 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
1
IT运维版块每日发帖之星
日期:2016-05-28 06:20:00
5 [报告]
发表于 2007-03-12 12:03 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP