吴文官 发表于 2003-10-20 09:37:20

如何区别这几个词?process,task,thread

似乎都指进程

_z_ 发表于 2003-10-20 12:40:36

process是UNIX用的
task是INTEL用的
在LINUX下thread与process无本质区别,LINUX以轻进程支持thread

i think

超级用户 发表于 2003-10-20 23:08:27

yes,
In Intel term-system, task == process

In tranditional Linux,a process produced by fork() can share his father like threads.
There are some thread-lib in Linux(both kernel level & usr-space level) such as NPTL.

jjww 发表于 2003-10-21 08:30:52

我觉得楼主最好找本OS的书好好看看,这样理解会全面一些. :lol:
我对进程和线程的理解:
进程是可执行程序运行的实体, 包括程序的image,运行所需的堆栈,各种系统资源,比如:最大文件打开数目等等。
线程不能独立于其所属的进程存在。线程之间的切换花费比进程间的要少。。。。还有很多特性....(我记不得了,不能一一说明)
比如windows,一个普通程序运行,首先会产生一个进程和内核进程对象;然后会产生一个线程和一个内核线程对象。进程主要负责资源管理,而线程才使真正负责执行程序。这和linux是不一样的。

吴文官 发表于 2003-10-21 12:06:03

我觉得楼主最好找本OS的书好好看看,这样理解会全面一些. :lol:
我对进程和线程的理解:
进程是可执行程序运行的实体, 包括程序的image,运行所需的堆栈,各种系统资源,比如:最大文件打开数目等等。
线程不能独立于其所属的进程存在。线程之间的切换花费比进程间的要少。。。。还有很多特性....(我记不得了,不能一一说明)
比如windows,一个普通程序运行,首先会产生一个进程和内核进程对象;然后会产生一个线程和一个内核线程对象。进程主要负责资源管理,而线程才使真正负责执行程序。这和linux是不一样的。
这是OS教材上的说法吧?但在Linux下似乎thread和task并无区别,正如二楼的兄弟所说

hspf 发表于 2003-10-21 13:03:43

TASK == PROCESS,PROCESS 是OS世界的名词,而TASK是CPU工业的名词,其实,在INTEL的名词中,TASK应该包括了THREAD 及 PROCESS.CPU 分不出PROCESS和THREAD的,就CPU而言,他以TSS为划分不同TASK的标准,而LINUX对TSS的使用是带有欺骗性质的。所以,在LINUX 中,PROCESS 及TASK基本可以互换的。

在LINUX中,THREAD 本质说是没有私有用户空间(及 MM-STRUCT指针为空)的进程,因为她主要在内核空间活动,而所有进程的进程页表中,内核空间部分(》3G)部分是一样的,所以为了维持进程切换时的语义完整,THREAD会借用她前一个进程的MM-STRUCT。

gundon 发表于 2003-10-28 17:56:49

???
页: [1]
查看完整版本: 如何区别这几个词?process,task,thread