博客学习日记-2014/11/22

来源:互联网 发布:事情进度跟踪软件 编辑:程序博客网 时间:2024/05/21 02:22

Linux中的task, process, thread


process类似于windows中的进程,但是Linux中没有线程的概念,也就是说进程同样可以用作类似于windows中的线程。而task有个task_struct结构用来管理进程或者线程。

在许多经典的操作系统教科书中,总是把进程定义为程序的执行实例,它并不执行什么,只是维护应用程序所需的各种资源。而线程则是真正的执行实体,为了让进程完成一定的工作,进程必须至少包含一个线程。

进程所维护的是程序所包含的资源(静态资源),如:地址空间,打开的文件句柄集,文件系统状态,信号处理handler等。
线程所维护的是运行相关的资源(动态资源),如:运行栈,调度相关的控制信息,待处理的信号集等。

linux内核并没有线程的概念。每一个执行实体都是一个task_struct结构,通常称之为进程。linux进程是一个执行单元,维护着执行相关的动态资源,同时,它又引用着程序所需的静态资源。

参阅:http://www.cnblogs.com/li-hao/archive/2011/09/24/2189530.html
  http://bbs.chinaunix.net/thread-1938416-1-1.html
0 0