【OS笔记 7】进程控制块PCB详解

一、PCB是什么

PCB是用以记录与进程相关信息的主存区,是进程存在的唯一标志

在这里插入图片描述



二、PCB中的信息

1. 进程标识符

作用: 用于唯一地标识一个进程

• 进程本身:外标识、内部标识
• 家族信息:父进程、子进程信息

2. 处理机状态

处理机状态信息也称为处理机的上下文(Context),主要是由处理机的各种寄存器中的内容组成的。
也就是中断现场的保留区,当进程被切换时,处理机状态信息必须都保存在相应的PCB中,以便该进程在重新执行时能再从断点继续执行。

3. 进程调度信息

在OS进行调度时,必须了解进程的状态以及有关进程调度的信息。这些信息包括:

① 进程状态
就绪、执行、阻塞等,是进程调度和对换的依据

② 进程优先级
是分配CPU的重要依据

③ 其它信息
比如进程已等待CPU的时间总和、已执行的时间总和等

④ 事件
指的是阻塞原因(即程序由执行状态变为阻塞状态的原因)

4. 进程控制信息

① 程序和数据的首地址
调度到该进程的时候,可以找到其程序和数据

② 进程同步和通信机制
如消息队列指针、信号量等,以后的进程同步中会学到

③ 资源清单
列出了该进程在运行期间所需的全部资源(CPU除外),另外还有一张该进程已分配的资源清单

④ 链接指针
给出了该进程(PCB)所在队列中下一个进程的PCB首地址,跟链表一样


三、PCB的三种组织方式

1. 线性方式

系统中所有PCB都组织在一张线性表中,表的首地址存放在内存专用区

优点: 实现简单、开销小

缺点: 每次查找时都要扫描一整张表,因此适合进程数目不多的系统

在这里插入图片描述

2. 链接方式

具有相同状态进程的PCB分别通过PCB中的链接字链接成一个队列

在这里插入图片描述

3. 索引方式

系统根据所有进程状态的不同,建立几张索引表,并把索引表的首地址记录在内存的专用单元中。在每个索引表的表目中,记录具有相应状态的PCB在PCB表中的首地址

(其实就是改进版的线性方式,分类之后,变成了很多子表,不需要把整个PCB表都扫描一遍,只需要先根据进程状态找到对应的子表,然后再扫描子表就行了)

在这里插入图片描述

  • 4
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值