软考知识点---04处理机管理---02处理机管理(PV操作)

一、处理机管理

  • 处理机管理也称为进程管理核心是如何合理地分配处理时间,提高系统地效率

(一)基本概念

1、执行时的特征

  • 顺序性:程序的各程序段严格按照规定的顺序执行

  • 封闭性:程序运行时系统内的资源只受该程序控制而改变,执行结果不受外界因素的影响

  • 可再现性:只要程序执行环境和初始条件相同,多次执行的结果一致

2、进程的组成

  • 进程(Process)是程序的一次执行,是进行资源分配和调度的基本单位

  • 组成
    • 程序(不可修改)

    • 数据(可修改)

    • 进程控制块(PCB)组(进程存在唯一标志)

  • 进程的主要内容

 3、进程的状态及其状态间的转换

  • 进程一般有三种基本状态:运行、就绪和阻塞
  • 三态模型
  • 运行:对于单机处理系统,处于运行状态的进程只有一个
  • 就绪:一个进程获得了除处理机外的一切所需资源,一旦得到处理机即可运行

  • 阻塞:等待或睡眠状态,一个进程正在等待某一事件发生(例如请求I/O而等待I/O完成等)而暂停运行,这时即使把处理机分配给此进程,它也无法运行

  • 事实上,对于一个实际的系统,进程的状态及其转换将更复杂,三态模型不能够满足我们的需求,所以产生了五态模型

(二)进程控制

  • 进程控制:对系统中所有进程从创建到消亡的全过程实施有效的控制

  • 主要功能:创建一个新进程,撤销一个已经运行完成的进程,改变进程的状态,实现进程间的通信

(三)进程通信

  • 在多道程序环境的系统中,存在多个可并发执行的进程,进程间必然存在资源共享和相互合作的问题

  • 进程间通信是指各个进程交换信息的过程

1、同步与互斥

  • 同步:合作进程间的相互依赖和相互制约的问题,与异步互为反义词

  • 互斥:申请临界资源进程间的间接制约问题,与共享互为反义词

  • 进程间的同步
  • 多个并发执行的进程都以各自独立的、不可预知的速度向前推进,但是有时需要在某些确定点上协调相互合作进程间的工作

  • 示例:大人给小孩喂饭,需要大人和小孩相互协调合作才能完成,由于两者之间存在速度差异,大人的速度比较快,要等小孩吃完一口饭后才能喂下一口,从而达到同步的效果

  • 进程间的互斥
  • 在多道程序系统环境中,各进程可以共享各类资源,但有些资源同一时刻只能供一个进程使用,称为临界资源(Critical Resource,CR),如打印机、共享变量等
  • 进程间的互斥:指系统中各进程互斥使用临界资源
  • 示例:打印机同一时刻只能完成一个任务,所以它是一种互斥资源,两个人不能同时使用打印机

  • 临界区(Critical Section,CS)是进程中对临界资源实施操作的那段程序或代码

  • 对互斥临界区管理的4条原则

  • 有空即进:临界区处于空挡,允许新进程进入临界区,但只能在临界区运行有限的时间

  • 无空则等:当有进程在临界区时,其他需要进入临界区的进程必须等待

  • 有限等待:对要求访问临界资源的进程,应保证其等待有限时间后进入临界区,避免进入“饥饿”状态

  • 让权等待当进程不能进入自己的临界区时(需要更多的资源才能运行),应立即释放处理机,避免进入“忙等”状态

2、信号量机制

  • 定义:一种有效地进程同步与互斥工具主要有整型信号量、记录型信号量和信号量集机制

  • 整型信号量

  • 信号量是一个整型变量,根据控制对象的不同被赋予不同的值。信号量分为以下两类:

    • 公用信号量:实现进程间的互斥,初值为1或资源的数目

    • 私用信号量:实现进程间的同步,初值为0或某个正整数

  • 信号量S的物理意义

    • 若S≧0,表示某资源的可用数

    • 若S<0,则其绝对值表示阻塞队列中等待此资源的进程数

3、PV操作 

  • PV操作是实现进程同步互斥的常用方法
  • P操作和V操作是低级通信原语,在执行期间不可分割

    • P操作表示申请一个资源

    • V操作表示释放一个资源

  • P操作的定义

    • S=S-1

    • 若S≧0,则执行P操作的进程继续执行

    • 若S<0,则置此进程为阻塞状态(因为无可用资源),并将其插入阻塞队列

  • V操作的定义

    • ​​​​​​​S=S+1

    • S>0,则执行V操作的进程继续执行

    • S≦0,则从阻塞状态唤醒一个进程,并将其插入就绪队列,然后执行V操作的进程继续​​​​​​​​​​​​​​

PV操作示意图

​​​​​​​📑案例1:利用PV操作实现进程的互斥

  • 令信号量mutex的初值为1,进入临界区时执行P操作,退出临界区时执行V操作。这样,进入临界区的代码段为:P(mutex);临界区;V(mutex)

  • 例:两个并发执行的程序段完成交通流量的统计,其中”观察者”P1识别通过的车辆,报告者”P2定时将观察者的计数值清“0”

  • PV操作实现的交通流量统计程序如下

📑案例2:利用PV操作实现进程的同步 

  • 例:生产者进程P1不断地生产产品送入缓冲区,缓冲区可以存放一件产品。消费者进程P2不断地从缓存区中取出产品消费,利用PV操作实现进程P1P2之间地同步问题,需要设置几个信号量,信号量地初值为多少?

  • 解:本题需要设置两个信号量,一个信号量S1,表示缓冲区是否有空闲,初值为1,表示缓冲区空可以将产品送入缓冲区;另一个信号量S2,表示缓冲区有无产品,初值为0P1P2的同步过程如图所示

p阻塞进程,v唤醒进程

(四)进程管理与前趋图

  • 前趋图是用于描述程序执行顺序的一个有向无循环图,由结点和有向边组成,结点代表程序段的操作,而结点间的有向边表示两个程序段操作之间存在的前趋关系(→)

  • 例如,下图为三个程序段,其中输入是计算的前驱,计算是输入的后继

1、前趋图示例

2、PV操作前趋图

3、案例1

二、高级通信 

(一)进程通信的方式

  • ​​​​​​​根据进程间通信交换信息量的多少和效率的高低,进程通信的方式为低级方式和高级方式

1、PV操作属于低级通信方式

  • 若用PV操作实现进程间通信,则存在如下问题

  • 编程难度大,通信对用户不透明,即需要用户利用低级通信工具实现进程间的同步与互斥,而且PV操作使用不当还容易引起死锁

  • 效率低,生产者每次只能向缓冲区放一个消息,消费者只能从缓冲区取一个消息

  • 为了提高通信效率,能传递大量数据,减轻程序的复杂度,系统引入了高级通信方式

2、高级通信方式主要分为共享存储模式、消息传递模式和管道通信

(二)直接和间接通信

1、直接通信

  • 直接通信是将消息直接发送给指定进程,因此,SendReceive原语中应指出进程名字​​​​​​​

  • 其调用格式如下

  • Send(WhoMessage  发送消息给指定进程或一组进程

  • Receive(Who,Message  从约定进程接收消息

2、间接通信

  • 间接通信是以信箱为媒体来实现通信的,接收信件的进程只需设立一个信箱,若干个进程都可以向同一个进程发送信件。因此,SendReceive原语中应给出信箱名​​​​​​​

  • 其调用格式如下

  • SendNM  将信件M发送到信箱N

  • ReceiveNX  从信箱N中取一封信存入X

三、进程调度

  • 进程调度方式是指当有更高优先级的进程到来时如何分配CPU

  • 调度方式分为可剥夺和不可剥夺两种

    • 可剥夺式是指当有更高优先级的进程到来时,强行将正在运行的进程的CPU分配给高优先级的进程

    • 不可剥夺式是指当有更高优先级的进程到来时,必须等待正在运行进程自动释放占用的CPU,然后将CPU分配给高优先级的进程

(一)三级调度

  • 在某些操作系统中,一个作业从提交到完成需要经历高、中、低三级调度

(二)进程调度算法

  • 常用的进程调度算法有先来先服务、时间片轮转、优先级调度和多级反馈调度算法

1、先来先服务(First Come First ServedFCFS

  • 排队,先来的先服务

  • FCFS调度法比较有利于长作业和CPU繁忙作业;而不利于I/O繁忙作业

  • FCFS算法主要用于宏观调度

2、时间片轮转

  • 每个进程都有自己的时间

  • 时间片轮转算法主要用于微观调度

  • 设计目标是通过时间片轮转,提高进程并发性和响应时间特性,从而提高资源利用率

  • 时间片的长度可从几个ms到几百ms,选择的方法一般有以下两种

    • ​​​​​​​固定时间片:分配给每个进程相等的时间片,使所有进程都公平执行,是一种实现简单有效的方法

    • 可变时间片:根据进程不同的要求对时间片的大小实时修改,可以更好地提高效率

3、优先级调度

  • 优先级调度算法是让每一个进程都拥有一个优先数通常数值大的表示优先级高,系统在调度时总选择优先级高地占用CPU

  • 优先级调度分为静态优先级和动态优先级

    • 静态优先级:进程的优先级在创建时确定,直到进程终止都不会改变。确定优先级的因素有进程类型(系统进程优先级较高)、对资源的需求(如对CPU和内存需求较少的进程优先级较高)和用户要求(如紧迫程度)

    • ​​​​​​​动态优先级:在创建进程时赋予一个优先级,在进程运行过程中还可以改变,以便获得更好的调度性能​​​​​​​​​​​​​​​​​​​​​。例如:在就绪队列中,随着等待时间增长,优先级将提高。这样,对于一个优先级较低的进程在等待足够的时间后,其优先级提高到可被调度执行。进程每执行一个时间片,就降低其优先级,从而当一个进程持续执行时,其优先级会降低到让出CPU

4、多级反馈调度

  • 多级反馈队列算法是时间片轮转算法优先级算法的综合与发展

  • 优点

    • 照顾短进程以提高系统吞吐量、缩短了平均周转时间

    • 照顾I/O型进程以获得较好的I/O设备利用率和缩短响应时间

    • 不必估计进程的执行时间,动态调节优先级​​​​​​​

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盾山狂热粉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值