操作系统学习笔记(day4)进程管理中的数据结构

知识点

  • 引言
  • 操作系统中用于管理控制的数据结构
  • 进程控制块PCB的作用
  • 进程控制块中的信息
  • 进程控制块的组织方式

引言

从对系统各类资源的角度:
原因1:为了便于对计算机中的各类资源(包括硬件资源和软件资源)的使用和管理
结果1:OS将它们抽象为相应的数据结构,以及提供一组对资源进行操作的命令,用户可以利用这些数据结构及操作命令来执行相关的操作,而无需关心其实现的具体细节。

从对协调多用户对共享资源使用的角度:
原因2:操作系统作为计算机的管理者,尤其是为了协调多用户对系统中共享资源的使用
结果2:它还必须记录和查询各种资源的使用及各类进程运行情况的信息。OS对于这些信息的组织和维护也是通过建立和维护各种数据结构的方式来实现的。

操作系统中用于管理控制的数据结构

进程信息表(资源信息表)的概念: 包含了资源或进程的标识、描述、状态等信息以及一批指针的数据结构, 用于表征计算机系统中的每个资源和每个进程实体。
进程信息表(资源信息表)的一般结构如图所示:
操作系统学习笔记(day4)进程管理中的数据结构_第1张图片

从图中可以看出,操作系统的数据结构分为4类:内存表、设备表、文件表和用于进程管理的进程表,通常进程表又称为进程控制块PCB。
通过观察进程控制块,可以发现各进程中的指针又指向了该进程拥有的资源列表,指针便于操作系统进行查找。

进程控制块PCB的作用

上述用于管理的数据结构是描述对资源和进程的管理。为了便于便于系统描述和管理进程的运行,在OS的核心为每个进程专门定义了一个数据结构——进程控制块PCB(Process Control Block)。
PCB的概念: 作为进程实体的一部分,记录了操作系统所需的,用于描述进程的当前情况以及管理进程运行的全部信息,是操作系统重要的记录型数据结构。
PCB的作用: 使一个在多道程序环境下不能独立运行的程序(含数据)成为一个能独立运行的基本单位,一个能与其他进程并发执行的进程。
(回顾:程序并发的特点.)
PCB的具体作用

1. 作为独立运行基本单位的标志,也是进程存在于系统的唯一标志。当一个程序(含数据)配置了PCB后,就表示它已经是一个能在多道程序环境下独立运行的,合法的基本单位,也就是具有取得OS服务的权利。
2. 能实现间断性运行方式。系统就可将CPU现场信息保存在被中断进程的PCB中,供该进程再次被调度执行时恢复CPU现场时使用。
3. 提供进程管理所需要的信息。在进程的整个生命期中,操作系统总是根据PCB实施对进程的控制和管理。
4. 提供进程调度所需要的信息。PCB中就提供了进程处于何种状态的信息。根据调度算法的不同,PCB会提供该调度算法需要的信息。
5. 实现与其他进程的同步于通信。进程同步进制是用于实现诸进程的协调运行的。在PCB中还具有实现进程通信的区域或通信队列指针等。

进程控制块中的信息

主要包括四个方面的信息:

  1. 进程标识符(唯一地标识一个进程)
    (1)外部标识符。它是由创建者提供的。通常由字母,数字组成的。为了描述进程的家族关系,还应设置父进程标识及子进程标识。此外,还可以设置用户标识,以指示拥有该进程的用户。
    (2)内部标识符。OS赋予每一个进程一个唯一的数字标识符,通常是一个进程的序号。
  2. 处理机状态(处理机的上下文,主要是由处理机的各种寄存器中的内容组成的。)
    (1)通用寄存器,又称为用户可视寄存器,它们是用户程序可以访问的,用于暂存信息,在大多数处理机中,有8到32个通用寄存器;
    (2)指令计数器,其中存放了要访问的下一条指令的地址;
    (3)程序状态字PSW,其中含有状态信息,如条件码,执行方式,中断屏蔽标志等;
    (4)用户栈指针,是指每个用户进程都有一个或若干个与之相关的系统栈,用于存放过程和系统调用参数及调用地址。
  3. 进程调度
    (1)进程状态,指明进程当前状态,作为进程调度和对换的依据;
    (2)进程优先级,用于描述进程使用处理机的优先级别的一个整数,优先级别高的进程优先获得处理机;
    (3)进程调度所需要的其它信息,它们与采用的进程调度算法有关,比如,进程已等待CPU的时间总和、进程已执行的时间总和等。
    (4)事件,是指进程由执行状态转变为阻塞状态所等待发生的事件,即阻塞原因。
  4. 进程控制信息
    (1)程序和数据的地址,进程实体中的程序和数据的内存或外存(首)地址,以便再调度到该进程执行时,能从PCB中找到其程序和数据。
    (2)进程同步和通信机制,实现进程同步和进程通信时必需的机制,如消息队列指针、信号量等,它们可能全部或部分放在PCB中;
    (3)资源清单,在该清单中列出进程在运行期间所需的全部资源(除CPU以外),另外还有一张已分配到该进程资源的清单。
    (4)链接指针 给出本进程(PCB)所在队列中的下一个进程的PCB首地址。
    操作系统学习笔记(day4)进程管理中的数据结构_第2张图片

进程控制块的组织方式

对系统中的进程加以有效的管理,应该用适当的方式将这些PCB组织起来。

  1. 线性方式。即将系统中所有PCB都组织在一张线性表中,将该表的首地址放在内存的一个专用区域中。方式实现简单,开销小,但每次查找时都需要扫描整张表。因此适合进程数目不多的系统。

  2. 链接方式,即把具有相同状态进程的PCB分别通过PCB的链接字链接成一个队列。

  3. 索引方式,即系统根据所有进程状态的不同,建立几张索引表,并把各索引表再内存的首地址记录在内u才能的一些专用单元。在每个索引表的表目中,记录具有相应状态的某个PCB在PCB表中的地址。

你可能感兴趣的:(操作系统学习笔记)