PCB

作者: Zhou_qn | 来源:发表于2018-09-26 16:30 被阅读0次
    PCB.PNG

    从结构上,进程可以分为程序段,数据段和进程控制块(PCB),其中PCB是最重要的。

    一.PCB的概念

      进程控制块(Processing Control Block)是操作系统中的一个重要的数据结构,用来管理和控制和进程的信息,它是一个程序在多道程序下能够独立运行的基本单位,成为可以并发执行的进程。或者说,OS是通过进程数据块来实现对并发执的进程管理和控制的。

    二.PCB组成:

      1.程序ID(PID,进程句柄):它是唯一的,一个进程对应一个ID。PID一般是整形数字。
      2.特殊信息:一般分系统进程,用户进程,或者内核进程等。
      3.进程状态:运行、阻塞、就绪,表示进程现在运行状态。
      4.优先级:表示获得CPU控制权级的大小。
      5.通信信息:进程之间的通信关系反应,操作系统会提供通信信道。
      6.现场保护区:保护阻塞的进程用。
      7.资源需求,分配控制信息。
      8.进程实体信息:指明程序路径和名称,进程数据在物理内存还是在交换分区。
      9.其他信息:工作单位,工作区,文件信息等。

    三.PCB包含内容:

    1、进程标识符信息
      每个进程都必须有一个唯一的标识符,可以是字符串,也可以是一个数字。UNIX系统中就是一个整型数。在进程创建时由系统赋予。进程标识符用于唯一的标识一个进程。一个进程通常有以下两种标识符。
      (1)外部标识符:由创建者提供,通常是由字母、数字组成,往往是用户(进程)访问该进程使用。外部标识符便于记忆,如:计算进程、打印进程、发送进程、接收进程等。
      (2)内部标识符:为了方便系统使用而设置的。在所有的OS中,都为每一个进程赋予一个唯一的整数,作为内部标识符。它通常就是一个进程的符号,为了描述进程的家族关系,还应该设置父进程标识符以及子进程标识符。还可以设置用户标识符,来指示该进程由哪个用户拥有。
    2.处理机状态信息
      说明进程当前状态,为了管理的方便,系统设计时会将相同的状态的进程组成一个队列,如就绪进程队列,等待进程则要根据等待的事件组成多个等待队列,如等待打印机队列、等待等。处理机状态信息主要是由处理机各种寄存器中的内容所组成。
      通用寄存器:又称为用户可视寄存器,可被用户程序访问,用于暂存信息。
      指令寄存器:存放要访问的下一个指令的地址。
      程序状态字PSW:其中包含状态信息。(条件码、执行方式、中断屏蔽标志)
      用户栈指针:每个用户进程由一个或多个与之相关的系统栈,用户存放过程和系统调用参数及调用地址。栈指针指向该栈的栈顶。
    3.进程调度信息
    在PCB中还存放了一些与进程调度和进程对换有关的信息。
    (1)进程的状态。指明进程当前的状态,作为进程调度和对换时的依据。
    (2)进程的优先级。用于描述进程使用处理机的优先级别的一个整数,优先级高的进程优先获得处理机。
    (3)进程调度所需要的其他信息。(进程已等待CPU的时间总和、进程已执行的时间总和)
    (4)事件。这是进程由执行状态转变为阻塞状态所等待发生的事件。(阻塞原因)
    进程上下文:
    是进程执行活动全过程的静态描述。包括计算机系统与执行该进程有关的寄存器的值、程序段在经过编译以后形成的机器指令代码集、数据集以及各种栈和PCB结构。可按一定的执行层次组合,如用户上下级,系统上下级。
    进程存放的唯一标志:
    在进程的整个生命周期,系统都是通过PCB对进程控制和管理的,所以,PCB是进程存在的唯一标识。

    四.PCB的组织方式

    1.线性表方式:不论进程的状态如何,将所有的PCB连续地存放在内存的系统区。这种方式适用于系统中进程数目不多的情况。
    2.索引表方式:该方式是线性表方式的改进,系统按照进程的状态分别建立就绪索引表、阻塞索引表等。
    3.链接表方式:系统按照进程的状态将进程的PCB组成队列,从而形成就绪队列、阻塞队列、运行队列等。

    五.进程的状态及其转换

    1.进程的三种状态:
    (1)就绪状态(Ready)
    当进程已经分配到除CPU以外的所有必要的资源后,只要能再获得处理机,就可以立即执行。
    (2)执行状态(Running)(运行状态)
    指进程已获得处理机而执行的状态。
    (3)阻塞状态(Block)(等待状态)
    进程因为发生某个事件而暂停执行时的状态(如:请求I/O、申请缓冲空间等)。有时也称“等待”状态或“睡眠”状态。
    2.进程的状态转换
    (1)就绪-执行:调度
    (2)执行-等待(阻塞):等待某个事件而发生睡眠
    (3)等待(阻塞)-就绪:因等待事件发生而唤醒
    (4)执行-就绪:时间片用完或出现高优先级

    相关文章

      网友评论

          本文标题:PCB

          本文链接:https://www.haomeiwen.com/subject/dijhoftx.html