进程控制结构

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

进程控制结构

操作系统管理和控制一个进程需要什么信息呢?操作系统必须建立一个表格描述该进程的存在及状态。这个表格被称为进程控制块。它描述了进程标识空间、状态、控制等信息。

1.进程映像

首先论述除了操作系统管理的进程标识空间、状态、控制等信息外,进程还包含些什么内容。一个进程至少执行一个或一系列可执行程序,这些程序往往以文件形式存放于外存中,程序文件中还包含局部变量、全局变量数据以及常数定义。因此,一个进程将包含足够的存储空间来存放进程的程序和数据以便执行。为了执行程序,操作系统还必须为进程分配一个栈区,用来保存过程调用时的现场。如果进程要执行多个程序文件中的程序,操作系统则提供相应的系统调用来支持新程序及数据对老程序数据在座空间的覆盖。

同一个程序可以由多个进程分别执行,当然,不同的进程虽然执行的是相同的程序,但是处理不同的数据,这个程序称为共享程序。编制共享的技术是研制软件(包括操作系统)的重要技术。可共享的程序必须是纯代码(Pure Code),或者称为可再入(Re-entry)的代码。所谓纯代码是指在其执行过程中不改变自身的代码,通常它只能由指令和常数组成。任何一个程序逻辑上都可以将其分为两部分:执行过程中不改变自身的不变部分和可变的工作区、变量部分。程序内的指令、常量本身不会因程序的执行发生不同的变化。显然,纯代码中若仅包含指令和常量,则不会因为被多个进程以交替方式执行而发生执行错误。

为了使程序能成为纯代码,有效的方法是高潮将其中的可变部分从程序体内移出作为进程相关的环境信息。类似于C语言的存储分配方法,程序内的变量被定义在“运行栈”上存储。由于“运行栈”作为各进程自身内部的环境信息,每个进程均单独有一个“运行栈”,因此不会发生执行时的中间结果相互覆盖。

由操作系统管理控制进程用的标识和特性信息集合称为进程控制块。(Process Control Block),程序、数据,栈的集合称为进程映像(Process Image)。

没有进程映像,进程就不知道运行什么程序。进程映像的定位取决于存储管理机制,在以前的实存系统中,进程运行时进程映像都存在于主存中,现在操作系统几乎都采用了页式虚存管理机制,操作系统为进程独立的虚空间,在进程创建时会分配并初始化进程的虚空间,进程执行新的程序时也会用新的进程映像初始化进程虚空间。

初始化进程虚空间是指建立外在中的可执行程序文件与虚空间程序区的映射关系,并依照外在挂靠程序文件中局部变量,全局变量数据说明分配虚空间的并对其初始化,不要分配好栈区。对数据区的栈区还需要在外在分配相应的页交换空间,以便将数据和栈页交换出内在时保存页面内容。操作系统为了定位这些虚空间区域,为了管理这些虚空间区域内外存的交换,设计了页表数据结构,该数据结构说明了进程虚空间的占用情况。页面在外在中的位置、内在中有无副本、内外存的一致性状态等。

2.进程控制块

操作系统管理着大量的进程,进程管理信息可以被认为存放于进程控制块中。各操作系统的实现方式不同,信息的组织方法也不一样。下面先介绍操作系统管理进程用到的数据。

进程控制块包含有下述三大类信息。

1)进程标识信息

在进程控制块中存放的标识信息主要有本进程的产生者标识(父进程标识)、进程所属的用户标识。

2)处理机状态信息

这指进程的运行现场信息,主要包括:

(1)用户可用的寄存器或通用寄存器。这是指用户程序可以使用的数据或地址寄存器,一般有几十个,甚至上百个。

(2)控制和状态寄存器有许多用于控制处理机执行的寄存器,如包含下一执行指令地址的程序计数器(PC)、条件码寄存器,(条件码是指当前逻辑或数学去处后导致进位或符号变化、溢出、全0或相等情况发生。条件码寄存器指那些反映这种变化的寄存器。)有中断开放否、程序执行模式等状态信息寄存器,通常称为处理机状态字或程序状态字(PS)。

(3)栈指针。栈中保存了过程调用、系统调用、中断时的现场信息。处理机有专门的栈指针寄存器,或约定某通用寄存器作为栈指针寄存器。

3)进程控制信息

(1)调度和状态信息。

相关文档
最新文档