软件设计师学习笔记9-进程调度

目录

[1. PV操作](#1. PV操作)

1.1进程的同步与互斥

1.1.1互斥

1.1.2同步

[1.2 PV操作](#1.2 PV操作)

1.2.1信号量

[1.2.2 PV操作的概念](#1.2.2 PV操作的概念)

2.信号量与PV操作

[2.1 PV操作与互斥模型](#2.1 PV操作与互斥模型)

[2.2 PV操作与同步模型](#2.2 PV操作与同步模型)

[2.3 互斥与同步模型结合](#2.3 互斥与同步模型结合)

3.前趋图与PV操作


1. PV操作

1.1进程的同步与互斥

1.1.1互斥

互斥:如千军万马过独木桥,属于间接制约关系

如下图(该图片来自希赛软考):

其中的独木桥被称为临界资源

临界资源:诸进程间需要互斥方式对其进行共享的资源(进程中访问临界资源的那段++代码++ 称为++临界区++)

1.1.2同步

同步:速度有差异,在一定情况停下等待,属于直接制约关系

举个例子,在A,张三和李四约好一起到B玩,但是因为两人速度不同,先到的要等后到的

如下图(该图片来自希赛软考):

注意:(1)同步和互斥这两种方式可以同时存在(2)进程之间并发过程中,由PV操作实现互斥与同步

1.2 PV操作

1.2.1信号量

信号量:是一种++特殊的变量++(且为全局变量)

信号量可以表示++资源数量++(比如打印机数量)

信号量为负数时还可以表示++排队进程数++

1.2.2 PV操作的概念

(1)P是荷兰语的Passeren,V是荷兰语的Verhoog

P操作即P(S),是++加锁++ 的过程;V操作即V(S),是++解锁++的过程。这两个是原语,即原子性语言

注:(1)S指的是信号量(2)原子性:一个原子事务要么完整执行,要么干脆不执行(3)++加锁会降低资源的利用率,且有锁就有可能产生死锁++ (4)PV操作是++对于临界资源++来控制访问的,而不是共享资源

(2)PV操作的示意图如下:

2.信号量与PV操作

2.1 PV操作与互斥模型

多个进程共享一个打印机的问题(互斥模型),如下图:

互斥信号量S的初值为1

2.2 PV操作与同步模型

单缓存区生产者、消费者问题(同步模型),如下图:

注:(1)单缓冲区或多缓冲区指的是缓冲区的空间资源,类似于停车场有100个停车位,那么就有100个空间可以让汽车使用,这就相当于空间为100的缓存区,单缓冲区即只有1个车位,所以单缓冲区下S1的值为1

2.3 互斥与同步模型结合

单缓存区生产者、消费者问题,只不过市场(临界资源)不允许双方同时访问,如下图:

3.前趋图与PV操作

对于前趋图而言,无论从哪个进程开始,结果都是一样的,因为被箭头指向的进程(后趋活动)要等箭头开始处的进程(前趋活动)都执行完成才能执行,信号量S与趋线(即箭头)有关

以包饺子为例,如下图·:

此处我们不难发现,PV操作与箭头的关系,有箭头开始的必然有V操作,有被箭头指向的必然有相对应的P操作

声明:笔记内容来源于希赛软考

上一篇:软件设计师学习笔记8-操作系统+进程

相关推荐
星幻元宇VR1 天前
公共安全实训展厅设备【人防知识学习系统】
科技·学习·安全
心中有国也有家1 天前
AtomGit Flutter 鸿蒙客户端:情绪日记的时间线实现
学习·flutter·华为·harmonyos
百里香酚兰1 天前
【python学习笔记】pyttsx3库疑似只播报一次语音
笔记·python·学习
恣逍信点1 天前
《凌微经》助读:本体论根基——“无之自悖”与“形性一体”
人工智能·科技·学习·程序人生·生活·交友·哲学
chh5631 天前
C++--string
java·开发语言·网络·c++·学习
chnyi6_ya1 天前
论文阅读笔记:VideoWeaver — 面向智能体长视频生成的技能评估与进化
论文阅读·笔记·音视频
J_yyy1 天前
基于Reactor的文件管理服务开发笔记
c++·笔记·reactor·多线程编程·muduo
浩瀚地学1 天前
【Java基础复习】IO流(四)
java·开发语言·经验分享·笔记·学习
疯狂打码的少年1 天前
【操作系统】板块总结 + 下期预告(软件工程)
笔记·软件工程
心中有国也有家1 天前
AtomGit Flutter 鸿蒙客户端:一键记录情绪的极致体验
学习·flutter·华为·harmonyos