作者micklin (mick doohan)
看板CSSE
标题Re: [问题] 执行绪
时间Wed Mar 24 17:17:04 2010
※ 引述《snoopy0907 (超强气)》之铭言:
: 不好意思
: 请问各位前辈们
: 能否能解释一下
: process 和 thread的差别
: 小弟我看书後还是对这两个观念很模糊
: 好像process有时等於thread
: 有时又不一样
: 请前辈们能指点一下吗?
: 谢谢~
thread 是 light weight process
一个process包含很多资讯, 像是程式、资料、堆叠等等.
thread是一群thread共享同样的程式与资料, 但是有自己的暂存器状态与堆叠.
在执行绪之间切换时, 所需要的成本比较小.
不像process的context switch要存的东西比较多, 所以时间也要花比较多.
要比较特性的话, 书上就有了.
观念上无法理解的话, 就先把thread想像成process里面的process好了....
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.160.177.198
1F:推 Arim:最近刚上到OS 也有碰到这问题@@ 03/25 23:38
2F:→ Arim:所以意思是说 一个process 是一个正在跑程式,而thread则是里 03/25 23:39
3F:→ Arim:面正在执行的程式码区块? 03/25 23:39
4F:→ Arim:只是不是很懂 为什麽有些书上说process可以有一个以上thread 03/25 23:40
5F:→ Arim:也就是可以只有一个thread,不知道这样是什麽情形? 03/25 23:40
6F:推 sunneo:差别在於clone context之後,会不会给予不同的pagetable/ 03/26 02:34
7F:→ sunneo:file(包括socket) 03/26 02:35
8F:→ sunneo:如果给了新的pagetable并且protect为read, signal handler 03/26 02:36
9F:→ sunneo:为clone page with new attr,那就达成copy on write 03/26 02:36
10F:→ sunneo: ^ 应该说分享pagetable 03/26 02:37
11F:→ hilorrk:copy on write和thread是不同的概念吧@@? 03/28 00:08
12F:推 sunneo:对啊 只是thread底层是用clone达成 03/30 02:21