Chinaunix首页 | 论坛 | 博客
  • 博客访问: 19733669
  • 博文数量: 679
  • 博客积分: 10495
  • 博客等级: 上将
  • 技术积分: 9308
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-18 10:51
文章分类

全部博文(679)

文章存档

2012年(5)

2011年(38)

2010年(86)

2009年(145)

2008年(170)

2007年(165)

2006年(89)

分类: LINUX

2008-10-17 14:21:40

§3     进程

       进程是多道OS的基础。Linux源代码中也经常称之为任务或者线程。

       本章讨论进程的静态属性,内核对进程的切换。最后2节讨论进程的创建和消灭。还涉及第1章提及的多线程应用程序,它基于lightweight processes (LWP)

 

§3.1  进程,轻量级进程,线程

       进程的含义很广。我们采用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兼容多线程应用在线程组下工作更好。

阅读(6034) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~