主题 : linux线程实现机制疑惑。 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 29030
精华: 0
发帖: 2
金钱: 10 两
威望: 2 点
贡献值: 0 点
综合积分: 4 分
注册时间: 2010-09-21
最后登录: 2012-09-06
楼主  发表于: 2012-09-05 16:22

 linux线程实现机制疑惑。

一:linux 2.6.13 内核

[root@ /]# ps
PID Uid VmSize Stat Command
1 root 292 S init
2 root SWN [ksoftirqd/0]
3 root SW< [events/0]
4 root SW< [khelper]
5 root SW< [kthread]
23 root SW< [kblockd/0]
25 root SW< [khubd]
65 root SW [pdflush]
66 root SW [pdflush]
68 root SW< [aio/0]
67 root SW [kswapd0]
142 root SW< [kseriod]
202 root SW [mtdblockd]
226 root SW< [kmmcd]
250 root 700 S /usr/sbin/inetd
252 root 304 S syslogd
286 root 788 S ./hellp
294 root 788 S ./hellp
295 root 788 S ./hellp
296 root 788 S ./hellp
297 root 788 S ./hellp
298 root 788 S ./hellp
299 root 788 S ./hellp
300 root 788 S ./hellp
301 root 788 S ./hellp
302 root 788 S ./hellp
309 root 868 S -sh
2472 root 664 R ps

hellp是在 2.6.13内核下编译的一个应用程序。在执行 ./hellp & 后,用PS 查看,发现有10个hellp,
他们的 PID 不一样。
在hellp里我调用了pthread_create()创建了多个线程。都是默认属性。

二: linux 2.6.32 内核

当程序不做修改我在 2。6.32 下编译,执行 ./hellp & 后,用PS 查看,发现只有一个hellp,但VSZ占用率达到 111%。

三:问题,

1:不同的内核版本出现 10个hellp 和一个hellp,是怎么回事?如何能控制他是出现10个还是合成一个?
2:VSZ占有率 会不会影响应用程序的运行?是否会因为 程序里有 Malloc()函数没有及时free()而造成 应用程序hellp 死掉的情况?


谢谢大家 帮忙分析一下啊、、