分类: LINUX
2008-10-17 14:21:40
进程是多道OS的基础。Linux源代码中也经常称之为任务或者线程。
本章讨论进程的静态属性,内核对进程的切换。最后2节讨论进程的创建和消灭。还涉及第1章提及的多线程应用程序,它基于lightweight processes (LWP)。
进程的含义很广。我们采用OS教材中的定义:进程是程序运行的实例。可以把它看做程序执行时数据结构的集合。
从内核看来,进程是占用系统资源的实体。
进程创建的时候几乎和父进程一样,是父进程地址空间的逻辑拷贝,并执行相同的代码,开始于进程创建系统调用的下一指令。子进程有自己的数据拷贝(stack and heap),内存分配是独立的。
现代Unix系统支持多线程应用,进程结构更加复杂,拥有很多共享大量应用数据结构的相对独立的执行流。一般使用pthread (POSIX thread) libraries书写。
较早版本的linux内核不支持多线程,从内核角度看来,多线程不过是一个正常的进程。多线程实际为在用户模式下使用POSIX-compliant pthread创建和处理。
这样实现多线程不是很完美。Linux使用了轻权进程来实现。这些进程共享一些资源,比如地址空间,打开的文件等。使用轻权进程的POSIX-compliant pthread libraries 有 LinuxThreads, Native POSIX Thread Library (NPTL), and IBM's Next Generation Posix Threading Package (NGPT).
POSIX兼容多线程应用在线程组下工作更好。