进程管理中的数据结构
一、引言
1.1. OS作为资源管理者
OS作为计算机硬件、软件资源的管理者,需要对资源进行各种操作。
- 首先需要对资源进行抽象,用计算机能看懂的方式来描述,形成一定的数据结构。
- 其次,OS需要对各类资源进行一系列的操作,所以还需根据数据结构,定义一系列操作命令。
1.2. OS对共享资源的管理
在多用户、引入进程的OS中:OS对共享资源的管理,需要记录、查询各资源的使用、各类进程运行情况的信息。
- 多用户之间存在资源共享
- 由于进程并发执行,并发执行的进程之间也涉及资源的共享
OS对这些信息的组织和维护,也通过建立和维护各种数据结构的方式实现。
二、操作系统中用于管理控制的数据结构
OS对每个资源、进程都设置了数据结构,表征其实体,称资源信息表或进进程信息表,包含标识、描述、状态等信息,以及一批指针。
指针作用:将同类资源或进程的信息表,或同一进程所占用的资源信息表分类链接成不同的队列,
便于OS查找.
OS管理的数据结构一般分为四类
- 内存表
- 设备表
- 文件表
- 进程表【PCB】
三、PCB的作用
PCB作为进程实体的一部分,记录了OS所需的,用于描述进程的当前情况以及管理进程运行的全部信息,是OS中最重要的记录型数据结构。
- 作为独立运行基本单位的标志
当程序(含数据)配置PCB后,说明其是一个能在多道程序环境下独立运行的、合法的基本 单位,具有取得OS服务器的权利
- 能实现间断性运行方式
进程因阻塞暂停运行,需要PCB存储进程的CPU现场,以便再重新调用时,进程能继续从 断点处继续执行
- 提供进程管理所需的信息
1. OS可通过PCB中记录的程序和数据在内存或外存中的首址,找到相应程序和数据 2. OS可根据PCB中的资源清单了解该进程所需的全部资源 说明:OS总是根据PCB实施对进程的控制和管理
- 提供进程调度所需的信息
PCB包含进程状态信息、优先级信息、调度算法所需的信息(等待时间、已执行时间等)
- 实现与其他进程的同步与通信
PCB包含通信机制所需的信息、实现进程通信的区域或通信队列指针等 e.g. 信号量机制→PCB中包含用于同步的信号量信息
四、PCB中的信息
4.1. 进程标识符
用于唯一标识一个进程
外部标识符 | 内部标识符 | |
---|---|---|
创建 | 进程创建者 | OS |
组成 | 字母、数字 | 数字(进程序号) |
用处 | 方便用户(进程)对进程的访问 | 方便OS对进程的使用 |
外部标识符
1. 为描述进程的家族管理→父进程标识、子进程标识
2. 可设置用户标识,以提示拥有该进程的用户
4.2. 处理机状态
又称上下文,由处理机各种寄存器中的内容组成
寄存器:
寄存器 | 作用 |
---|---|
通用寄存器 | 用户程序可访问,用来暂存信息 |
指令计数器 | 要访问的下一条指令地址 |
程序状态字PSW | 状态信息 |
用户栈指针 | 用于存放过程和系统调用的参数及调用地址的系统栈的指针 |
4.3. 进程调度信息
- 进程状态
- 进程优先级
- 进程调度所需的其他信息:与采用的进程调度算法有关
- 事件:阻塞原因
4.4. 进程控制信息
- 程序和数据地址
- 进程同步和通信机制
- 资源清单
- 链接指针
五、PCB的组织方式
-
线性:实现简单、开销小
-
链接方式:按阻塞原因分不同队列
-
索引方式:按进程状态分队列
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_45011621/article/details/121644250