自学自用 = B站(操作系统_清华大学(向勇、陈渝)) 未完待续。。 (6)

进程控制块(PCB) = Process Control Block,用来描述进程的数据结构,保存与该进程有关的各种状态信息以及运行变化的过程,是进程存在的唯一标识。

进程控制块的功能

使用PCB可以:

创建进程

终止进程

组织管理进程

进程控制块内容

(一)进程标识信息:如本进程的标识、父进程标识、用户标识

(二)处理器状态信息:使用寄存器保存进程的运行现场信息

用户可见寄存器:用户程序可以使用的数据,地址等寄存器

控制和状态寄存器:如程序寄存器(PC),程序状态字(PSW)

栈指针:过程调用、系统调用、中断处理和返回时需要用到它

(三)进程控制信息:状态的控制

调度和状态信息:操作系统调度进程并占用处理机使用,描述进程的执行现状

进程间通讯信息:通信相关的标识、信号、信件

存储管理信息:包含指向本进程映像存储空间的数据结构

进程所用信息:进程打开使用的资源,如文件等

数据结构连接信息:进程可以连接到一个进程队列或其他进程的PCB中,描述进程之间的关系,如父进程、子进程

PCB的组织方式

链表:同一状态的进程其PCB组成一条链表(运行表、就绪表、阻塞表)

索引表:同上,数据结构使用数组

5.2 进程状态(动) 5.2.1 进程的生命周期管理 graph LR New(创建状态) -->|进入就绪队列| Ready[就绪状态] Ready -->|被调度| Running[运行状态] Running -->|时间片结束| Ready Running -->|等待事件| JudgeBlocked{是否阻塞} JudgeBlocked -->|是| Blocked[等待状态] Blocked -->|事件发生| JudgeWakeup{是否唤醒} JudgeWakeup -->|是| Ready Running -->|终止| Done(结束状态)

创建状态:一个进程刚被创建但并未就绪。(PCB初始化)
就绪状态:操作系统选择就绪进程,获得除CPU以外的所有资源。(PCB初始化完成)
运行状态:获得CPU并运行。
等待状态(阻塞状态):等待某一事件而暂停运行。
结束状态:一个进程正在从系统中消失。(PCB删除)

创建事件:系统初始化;用户创建新进程;运行中进程执行系统调用。
阻塞事件:等待系统调用;等待异步调用;数据未就位。(进程只能自己阻塞自己)
唤醒事件:系统调用完成;异步调用完成;数据就位。(只能别的进程唤醒自己)
结束事件:自愿的;异常的警告;致命的错误;别其他进程杀死。

5.2.2 进程挂起

为了充分且合理的利用系统资源将进程挂起,并将挂起的进程映像从内存放到外存上。

分为阻塞挂起和就绪挂起:

graph LR Blocked[等待状态] -->|就绪进程要求更多资源时| BlockedSuspend[等待挂起状态] Ready[就绪状态] -->|被高优先级进程阻塞| ReadySuspend[就绪挂起状态] Running[运行状态] -->|分时系统中被高优先级进程阻塞| ReadySuspend BlockedSuspend -->|事件发生| ReadySuspend BlockedSuspend -.有足够资源时.-> Blocked ReadySuspend -.没有高优先级进程阻塞.-> Ready 5.2.3 PCB实现进程管理

image

5.3 线程(Thread)

轻量版的进程,也可以并发执行,并且共享相同的地址空间,以此实现通信和交互。

5.3.1 什么是线程

线程是进程中的一条执行流程。
抽象一下,进程只管理资源和线程,线程是进程的执行流程,负责应用的执行逻辑。

5.3.2 线程的优缺点 线程的优点

线程让进程的数据与业务分离

一个进程可以同时存在多个线程

线程也可以并发执行

各线程可以共享地址空间和资源

线程的缺点

一个线程的崩溃会导致所属进程的崩溃。

5.3.3 进程和线程的比较 进程 线程
资源分配单位   CPU调度单位  
独享完整的资源平台   只独享寄存器和运行栈  
具有状态和转换   具有状态和转换  
并发执行时间和空间开销多   开销少  
5.3.4 线程的实现

用户线程:在用户空间实现;(用户级线程库来管理)

内核线程:在内核空间实现;(OS内核感知和管理)

轻量级进程:在内核空间实现;

六、CPU调度算法

从就绪队列中选择一个进程/线程,在之后可以获得CPU资源。

6.1 调度条件

进程的状态从运行切换到等待

一个进程被终止了

6.2 调度原则 基本概念

CPU使用率:CPU处于忙状态所占时间的百分比

吞吐量:在单位时间内完成的进程数量

周转时间:一个进程从初始化到结束所需时间(包括等待时间)

等待时间:进程在就绪队列中的总时间(就绪到运行状态所需时间)

响应时间:进程从提交到第一次响应所花费的时间

“更快”的服务

更快 = 高带宽(吞吐量) + 低延迟(响应时间)

目标

减少等待时间

减少响应时间

减少平均响应时间的波动,越平稳越好

增加吞吐量

6.3 调度算法

先来先服务算法(FCFS)()()

短进程优先(SPN)()()

短作业优先(SJF)(Shortest Job First)(同SPN)

短剩余时间优先(SRT)(Shortest Remaining Time)(同SPN)

最高响应比优先(HRRN)()()

时间片轮循(Round Robin)()()

多级反馈队列(Multilevel Feedback Queues)()()

公平共享调度(Fair Share Scheduling)()()

6.3.1 先来先服务(FCFS)

FCFS = First Come First Served

6.3.2 短进程优先(SPN)

SPN = Shortest Process Next

6.3.3 最高响应比优先(HRRN)

HRRN = Highest Response Ratio Next

6.3.4 时间片轮循(Round Robin) 6.3.5 多级反馈队列(Multilevel Feedback Queues) 6.3.6 公平共享调度(Fair Share Scheduling)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zywswg.html