概述
在大多情况下,我们常说的进程,事实上值得是“进程实体”。那何为进程实体呢?进程实体是由程序段、相关的数据段和PCB三部分构成的。在早期的UNIX版本中,把这三部分总称为“进程映像”。而我们所谓创建进程,实质上是创建进程实体中的PCB。
今天我们主要介绍的是进程实体中的主角——PCB,程序段和相关的数据段是进程中的代码段及其相应的配置信息,在操作系统的调度中涉及的较少,而PCB却是密切相关的。下面我们来看下什么是PCB。
进程控制块PCB(Process Control Block)
PCB是系统为每个进程定义的数据结构,记录了操作系统所需的、用于描述进程的当前情况以及控制进程运行的
全部信息。进程控制块的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单
位,一个能与其它进程并发执行的进程或者说,OS是根据PCB来对并发执行的进程进行控制和管理的。其内部包括以
下四个方面
进程标识符
进程标识符用于惟一地标识一个进程。一个进程通常有两种标识符:(1)内部标识符
在所有的操作系统中,都为每一个进程赋予了一个惟一的数字标识符,它通常是一个进程的序号。设置内部标识符主要是为了方便系统使用。
(2)外部标识符
它由创建者提供,通常是由字母、数字组成,往往是由用户(进程)在访问该进程时使用。为了描述进程的家族关系,还应设置父进程标识及子进程标识。此外,还可设置用户标识,以指示拥有该进程的用户。
处理机状态
处理机状态信息主要是由处理机的各种寄存器中的内容组成的。处理机在运行时,许多信息都放在寄存器中。当处理机被中断时,所有这些信息都必须保存在PCB中,以便在该进程重新执行时,能从断点继续执行。这些寄存器包括:① 通用寄存器,又称为用户可视寄存器,它们是用户程序可以访问的,用于暂存信息,在大多数处理机中,有 8~32个通用寄存器,在RISC结构的计算机中可超过100个;② 指令计数器,其中存放了要访问的下一条指令的地址;③ 程序状态字PSW,其中含有状态信息,如条件码、执行方式、中断屏蔽标志等;④ 用户栈指针,指每个用户进程都有一个或若干个与之相关的系统栈,用于存放过程和系统调用参数及调用地址,栈指针指向该栈的栈顶。
进程调度信息
在PCB中还存放一些与进程调度和进程对换有关的信息,包括:① 进程状态,指明进程的当前状态,作为进程调度和对换时的依据;② 进程优先级,用于描述进程使用处理机的优先级别的一个整数,优先级高的进程应优先获得处理机;③ 进程调度所需的其它信息,它们与所采用的进程调度算法有关,比如,进程已等待CPU的时间总和、进程已执行的时间总和等;④ 事件,指进程由执行状态转变为阻塞状态所等待发生的事件,即阻塞原因。
进程控制信息
进程控制信息包括:① 程序和数据的地址,指进程的程序和数据所在的内存或外存地(首)址,以便再调度到该进程执行时,能从PCB中找到其程序和数据;② 进程同步和通信机制,指实现进程同步和进程通信时必需的机制,如消息队列指针、信号量等,它们可能全部或部分地放在PCB中;③ 资源清单,即一张列出了除CPU以外的、进程所需的全部资源及已经分配到该进程的资源的清单;④ 链接指针,它给出了本进程(PCB)所在队列中的下一个进程的PCB的首地址。
ps:在操作系统中,具有统一状态的PCB一般以链接方式或者引索方式存在。
最后
以上就是舒适微笑为你收集整理的操作系统之进程的构成进程控制块PCB(Process Control Block)的全部内容,希望文章能够帮你解决操作系统之进程的构成进程控制块PCB(Process Control Block)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复