- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第一章 绪论 UNIX系统的进程系统分析 7.4 进程管理 7.4.1 进程和进程控制块PCB 7.4.2 进程控制 7.4.1 进程和进程控制块PCB 1、UNIX系统中进程的概念 在UNIX系统中,进程具有如下特定的含义和特点: (1)一个进程是对一个程序的执行。 (2)一个进程的存在意味着系统中存在着一个相应的常驻内存的proc结构,其中包含着该进程的控制信息。 (3)对每一个进程,有一个被称为user结构的数据结构,这个结构中存放该进程的私用控制信息。该结构只有该进程运行时,才会调入内存。 (4)一个进程可以创建或撤消其子进程。 (5)进程是系统进行资源分配的基本单位。 7.4.2 进程控制 ● UNIX系统中进程控制子系统主要负责进程同步、进程间通信、存储管理及进程调度。 1.进程控制 ● UNIX系统中,用户可以通过一些系统调用对进程进行控制。对应进程的创建、执行和自我终止,UNIX系统提供了相应的系统调用fork()、exec()和exit(),以便在用户级上实现上述功能。 7.4.2 进程控制 (1)进程的创建 ●在UNIX系统中,除了0#进程是在系统引导时被创建外,其他进程都是由父进程通过调用系统原语fork来创建的。 ●该原语为新建立进程分配一个proc表目并赋予一个唯一的进程标识符pid,此外,内核还将 proc表目初始化。 ●在UNIX中子进程共享父进程的所有打开文件和当前目录,但并不共享父进程的内存。所以初始化的主要工作是复制父进程的proc表目中的某些项目以共享其打开的文件,复制正文段和当前目录表的表目(i节点),为子进程申请内存并把父进程所有可写的数据段部分复制到内存中去。 * 2、进程的结构 UNIX系统中,进程包含三部分内容:进程控制块、程序段以及数据段。下面我们分别对这三部分来进行讨论。 (1)进程控制块PCB 在UNIX系统中,整个系统的活动是以进程为基本单位来组织进行的。为了管理进程的活动,系统为每个进程设立了一个进程控制块(PCB)来记录各个进程的状态以及与进程相关的数据。在UNIX系统中,进程控制块也是进程是否存在的标志。 因为进程控制块中包含的信息量很大,所以占用的空间也很大。为了节省进程控制块所占的内存空间,UNIX系统把每个进程的进程控制块分为两部分: (a)常驻内存部分,称proc结构,该结构中包含着进程调度时必须使用的一些主要信息; (b)非常驻内存部分,称user结构,该结构登记了 进程运行时才要用到的更多的信息,它可以随用户的程序和数据在内存中换进换出。 UNIX系统将所有进程的proc结构组织到一起,形成一个进程表,也称为proc数组,表中的每一个proc结构是该数组的一个元素,成为该进程表的一个表目。进程表中的proc结构数量是有限制的,在UNIX系统中最多允许有50个。 ● UNIX系统的proc结构主要包括以下各项: (a)进程标识符(PID)。它是标识一个进程的标识数; (b)用户标识符(UID)。标识拥有该进程的用户; (c)进程状态。记录该进程的当前状态; (d)事件描述符。记录使进程进入睡眠状态的事件; (e)存储区位置和长度。指出进程在内存或在外存中的位置及大小。这些信息在进程换进换出以及状态转换时用到; (f)软中断信号。记录其他进程发来的软中断信号; (g)计时域。给出进程的执行时间和对资源的利用情况; (h)进程的大小。进程的大小是内核为进程分配存储空间的依据; (i)调度参数,包括优先数等。核心用它们决定进程转换到核心态和用户态的次序以及占有处理机的次序。 ● user结构主要包括以下各项: (a)指向proc结构的指针。标识出对应于该user结构的proc结构; (b)真正用户标识符(real user ID)。它是超级用户分配给用户的标识符,以后每次用户登录进入系统时,均需送入此标识符; (c)有效用户标识符(effective user ID)。一般情况下,它与真正用户标识符相同,但在其它用户允许的情况下,可用系统调用setuid将它改变为其它用户标识符,以获得对该用户的文件进行操作的权力; (d)用户文件描述符表。记录了该进程已打开的所有文件; (e)当前目录和当前根。给出进程的文件系统环境; (f)计时器。记录进程及其子进程在用户态和核心态运行的时间; (g)内部I/O参数。给出要传输的数据量、源数据或目标数据的地址、文件的输入、输出偏移量; (h)限制值。对进程的大小及其能“写”的文件大小的限制; (i)系统调用信息。记录当前系统调用的参数、结果、返回值以及错误码等。 (2)数据段 ●分为三部分:进程数据区(PPDA)、用户的程序和数据区、用户栈区。其
文档评论(0)