2、进程的描述

    进程是一个动态的概念,描述程序的一次运行活动。进程存在于系统的内存中,是操作系统可感知,可控制的动态实体,是系统分配各种资源,进行调度的基本单位。那么,从处理机的角度来看,如何描述进程?进程的活动就是通过在cpu上执行一系列程序和对相应数据进行操作来体现的,因此程序和它的操作数据是进程存在的实体,但是这两者仅是静态的文本,没有反映出其动态性,为此,还需要一个数据结构来描述进程当前的状态,本身的特性等,这种数据结构成为进程控制块。

    进程的程序部分描述进程所要完成的功能,而数据结构集时执行时必不可少的工作区和操作对象,这两部分是进程完成所需功能的物质基础,由于进程的这两部分内容与控制进程的执行及完成进程功能直接相关,因而,在大部分多道操作系统中,这昂部分内容放在外存中,直到该进程执行时再调入内存。所以进程实体通常是由程序,数据集合,PCB着三个部分组成的,也成为“进程影像”。下面介绍进程的pcb结构,程序于数据结构集。

    1、进程控制模块:PCB

    PCB包含一个进程的描述信息,控制信息和资源信息,有些系统中还有进程调度等待所使用的现场保护区。PCB集中反映一个进程的动态特征。进程并发执行时,由于资源共享,使得个进程之间相互制约,显然,为了反映这些制约关系和资源共享关系,在创建一个进程时,因首先创建其PCB,然后根据PCB中的信息对进城实施有效的管理和控制。当一个进程完成其功能后,系统释放PCB,进程也就随之消亡。

    一般来说,PCB记录了进程的全部控制信息,根据操作系统的要求不同,进程的PCB所包含的内容也多少有所不同,可以按照功能大概分成4各组成部分,进程标识符,处理机状态,进程调度信息,进程控制信息。

(1)进程标识符

用于唯一的标识一个进程。一个进程通常由两种标识符。(1)内部标识符:在所有的的操作系统中,为每一个进程赋予了一个唯一的数据标识符,它通常是一个进程的序号。设置内部标识符主要是为了方便系统使用。(2)外部标识符:由创建者提供,通常是有字母,数字组成,往往由用户(进程)在访问该进程时使用。为了描述进程的家族关系,还应该设置父进程标识及子进程标识。此外,还可设置用户标识,用以表示拥有该进程的用户。

(2)处理机状态:

    处理机状态信息主要由处理机的各种寄存器中的内容组成。处理机在运行时,许多信息都放在寄存器中,当处理机被中断时,这些信息都必须保存在PCB中,以便在该进程重新执行时能从断电继续执行。处理剂的寄存器包括通用寄存器,指令计数器,程序状态字PSW,用户战指针。

    PCB中没有专门的CPU现场保护结构,以存储退出执行时的进程现场数据。

3、进程调度信息。

PCB中还存放一些于进程对换有关的信息。

(1)进程状态:

(2)进程优先级:

(3)进程调度所需要的其他信息。他们与所采用的进程调度算法有关,如进程以等待CPU时间,进程已运行的时间等。

(4)时间或阻塞原因:

4、进程控制信息 : 

(1)程序和数据的地址,之进程的程序和数据所在的内存或外存地址,以便在调度到该进程执行时,能从PCB中找到其数据和程序。

(2)进程同步和通信机制,指实现进程同步和进程通信时必须的机制,如消息队列指针,信号量等,他们可能全部或部分地方在PCB中。

(3)资源清单 : 是一张列出了除了CPU之外,进程所需的全部资源以及分配到该进程的资源清单。

(4)连接指针: 给出了本进程PCB所在队列的下一个进程PCB的首地址。

4、linux 进程的    PCB:

    LINUX中的进程称为任务。linux系统的进程控制模块PCB用一个成为task-structure的结构体来描述。具体的定义看linux源文件定义。

(1)进程描述信息:

    通过进程描述信息linux系统可以唯一的确定某一个进程的基本情况,可以了解该进程所属的用户及用户组等信息,同时还能确定这个进程与所有其他进程之间的关系。这些描述信息包括进程号,用户和组表示,以及描述进程家族关系的连接信息。

  1 进程标识号(pid)。进程一旦创建,就有系统给定一个进程序号,就叫做进程标识号。这是一个不小于0的整数,他与系统中的进程号是一一对应的。以后系统对该进程的操作,都是通过这个进程标识号来实现的。

 2用户和组标识。linux系统中有不同的用户和组标识,主要用来控制进程对系统文件的访问权限,这些访问权限被分配给文件的所有者,同组用户和系统中 的其他用户三类用户。

 3连接信息:

用来记录进程的家族关系,如父进程标识号等。

 (2)进程控制信息:

 进程当前状态

调度信息

记时信息

调度信息。记录进程的优先数等

通信信息

(3)进程资源信息:

进程资源信息记录了与该进程有关的存储器的各种地址和资料,文件系统以及打开文件的信息等。

(4)CPU现场信息

task-struct 是linux系统的进程控制块(PCB),通过对pcb的操作,系统为进程分配资源并进行调度,最终完成进程的创建和撤销。

原文地址:https://www.cnblogs.com/yjds/p/8597452.html