进程控制块是什么意思?
操作系统内的每个进程表示,釆用进程控制块(Process Control Block,PCB),也称为任务控制块。
每个进程控制块包含许多与当前进程相关的信息:
进程状态:状态可以包括新的、就绪、运行、等待、停止等。
程序计数器:计数器表示进程将要执行的下个指令的地址。
CPU 寄存器:根据计算机体系结构的不同,寄存器的类型和数量也会不同。它们包括累加器、索引寄存器、堆栈指针、通用寄存器和其他条件码信息寄存器。在发生中断时,这些状态信息与程序计数器一起需要保存,以便进程以后能正确地继续执行。
CPU 调度信息:这类信息包括进程优先级、调度队列的指针和其他调度参数。
内存管理信息:根据操作系统使用的内存系统,这类信息可以包括基地址和界限寄存器的值、页表或段表。
记账信息:这类信息包括 CPU 时间、实际使用时间、时间期限、记账数据、作业或进程数量等。
I/O 状态信息:这类信息包括分配给进程的 I/O 设备列表、打开文件列表等。
进程控制块PCB的作用:
为了便于系统描述和管理进程的运行,在OS的核心为每个进程专门定义了一个数据结构——进程控制块PCB(ProcessControlBlock)。PCB作为进程实体的一部分,记录了操作系统所需的,用于描述进程的当前情况以及管理进程运行的全部信息,是操作系统中最重要的记录型数据结构。PCB的作用是使一个在多道程序环境下不能独立运行的程序(含数据)成为一个能独立运行的基本单位,一个能与其他进程并发执行的进程。
(1)PCB作为独立运行基本单位的标志。当一个程序(含数据)配置了PCB后,就表示它已经是一个能在多道程序环境下独立运行的、合法的基本单位,也就具有取得OS服务的权力,如打开文件系统中的文件,请求获得系统中的I/O设备,以及与其它相关进程的进行通信等。因此,当系统创建一个新进程时,就为它建立了一个PCB。进程结束时又回收其PCB,进程于是也随之消亡。系统是通过PCB感知进程的存在的。事实上,PCB已成为进程存在于系统中的唯一标志。
(2)PCB能实现间断性运行方式。在多道程序环境下,程序是采用停停走走间断性的运行方式运行的。当进程因阻塞而暂停运行时,它必须保留自己运行时的CPU现场信息。在有了PCB后,系统就可以将CPU现场信息保存在被中断进程的PCB中,供该进程再次被调度执行时恢复CPU现场时使用。由此,可再次明确,在多道程序环境下,作为传统意义上的静态程序,因其并不具有保护或保存自己运行现场的手段,无法保证其运行结果的可再现性,从而失去运行的意义。
(3)PCB提供进程管理所需要的信息。当调度程序调度到某进程运行时,只能根据该进程PCB中记录的程序和数据在内存或外存中的始址指针,找到相应的程序和数据;在进程运行过程中,当需要访问文件系统中的文件或I/O设备时,也都需要借助于PCB中的信息。另外,还可根据PCB中的资源清单了解到该进程所需的全部资源等。可见,在进程的整个生命周期中,操作系统总是根据PCB实施对进程的控制和管理。
(4)PCB提供进程调度所需要的信息。只有处于就绪状态的进程才能被调度执行,而在PCB中就提供了进程出于何种状态的信息。如果进程处于就绪状态,系统便将它插入到进程就绪队列中,等待着调度程序的调度;另外在进行调度时往往还需要了解进程的其他信息,如在优先级调度算法中,就需要知道进程的优先级。在有些较为公平的调度算法中,还需要知道进程的等待时间和已执行过的事件等。
(5)PCB实现与其他进程的同步与通信。进程同步机制是用于实现诸进程的协调运行的,在采用信号量机制时,它要求在每个进程中都设置有相应的用于同步的信号量。在PCB中还具有用于实现进程通信的区域或通信队列指针等。
标签: 进程控制块 进程控制块PCB的作用 操