免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: albcamus
打印 上一主题 下一主题

Linux上posix线程库实现原理讨论 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2005-03-08 16:02 |只看该作者

Linux上posix线程库实现原理讨论

1:1的这种形式是不是为了以空间换时间?如果N:M的话就需要有一个调度的算法,会降低效率?

论坛徽章:
0
12 [报告]
发表于 2005-03-09 10:16 |只看该作者

Linux上posix线程库实现原理讨论

问楼主一个使用上的问题:
就是设置新的线程栈的地址和大小后,系统不提高保护了(不提高保护了具体是什么意思?),要程序自己保护它的溢出啊什么的,该怎么弄呢?给个思路或给点资料吧,谢谢了

论坛徽章:
0
13 [报告]
发表于 2005-03-09 11:01 |只看该作者

Linux上posix线程库实现原理讨论

原帖由 "zxw01" 发表:
问楼主一个使用上的问题:
就是设置新的线程栈的地址和大小后,系统不提高保护了(不提高保护了具体是什么意思?),要程序自己保护它的溢出啊什么的,该怎么弄呢?给个思路或给点资料吧,谢谢了
不好意思,我一直都是设为NULL让实现自己默认的,没用过这些特性。

论坛徽章:
0
14 [报告]
发表于 2005-03-09 11:36 |只看该作者

Linux上posix线程库实现原理讨论

关于M:N的问题
有一篇论文专门讲的,问题的根源在于MEMORY MANAGEMENT部分是在N之间共享的,是CRITICAL SECTION,影响性能(基于SINGEL CPU,或者SHAREDMEMORY MODEL的SMP系统).
对于其他比如CROSS BAR 或者MESH系统来说,M:N性能要好的多.

论坛徽章:
0
15 [报告]
发表于 2005-03-09 12:49 |只看该作者

Linux上posix线程库实现原理讨论

柳兄正好请教个问题,线程的stack是在HEAP区 吗?

论坛徽章:
0
16 [报告]
发表于 2005-03-09 14:45 |只看该作者

Linux上posix线程库实现原理讨论

user thread的stackS(除了MAIN THREAD外,都在HEAP里面,这里的THREAD LIB在HEAP可以理解成是UNI-PROCESS自己的HEAP空间上开辟的BUFFER).
LIGHT weight process(LWP) THREAD就是CLONE的结果,STACKS就是PROCESS的STACK.
KERNEL THREAD的STACKS基本上都是在HEAP里面分配的.这里THREADS的调度和资源管理宝库HEAP的管理交给OS KERNEL完成.
THREAD的实现没有什么标准,各家做法区别很大,但是在API层上是一致的.但是对于具体软件系统的设计上来说,还是要仔细区分的.特别是对于性能要求很严格的东西.

论坛徽章:
0
17 [报告]
发表于 2005-03-09 15:29 |只看该作者

Linux上posix线程库实现原理讨论

>;>;user thread的stackS(除了MAIN THREAD外,都在HEAP里面,
谢谢。不过我想问一下这是POSIX标准规定的吗?我最近看的文档好象跟这个说法矛盾。

论坛徽章:
0
18 [报告]
发表于 2005-03-09 17:06 |只看该作者

Linux上posix线程库实现原理讨论

呵呵,是从进程栈那往heap方向生长的

论坛徽章:
0
19 [报告]
发表于 2005-03-09 17:10 |只看该作者

Linux上posix线程库实现原理讨论

再问一个问题,系统对于栈的保护是什么意思?比如由于什么原因栈空间不够了,这个时候系统做些什么动作呢?难道是仅仅发个栈溢出信号然后让程序死掉?

论坛徽章:
0
20 [报告]
发表于 2005-03-09 23:04 |只看该作者

Linux上posix线程库实现原理讨论

STACK和HEAP向两个相反方向扩展,当STACK超过他的SIZE限制,或者STACK到达HEAP的边界时候,MEMORY不够,程序退出.
但是有控制系统的专用OS可以在STACK到达HEAP边的时候,不溢出,而是重新构造STACK一次(尽可能的),---我本人不了解,我同事的观点.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP