2.1操作系统-进程管理:进程的同步与互斥、信号量与PV操作、PV操作与互斥模型、PV操作与同步模型
创始人
2024-05-30 19:12:40
0

2.1操作系统-进程管理:进程的同步与互斥、信号量与PV操作、PV操作与互斥模型、PV操作与同步模型

  • 进程的同步与互斥
  • PV操作
  • PV操作与互斥模型
  • PV操作与同步模型

进程的同步与互斥

进程是动态的,有一些动态变迁的过程,进程在计算机中是可以同时存在多个的,而单核CPU同个时刻只能处理一个进程,而现在的CPU是多核的,可以同时处理多个进程,在多个进程的处理过程当中,进程与进程会存在不同的关系,可以分为两个模型,如下:

互斥:互斥模型,进程与进程之间相互抵制,相互排斥。类似于如千军万马过独木桥,很多个进程都想要使用独木桥,但是独木桥一个时间只能让一个进程通过,全局上来看,所有进程都用到了这个独木桥,但是某一个时刻、某一个片段进程只能有一个通过,独木桥在这里就是临界资源,看起来是共享的,但是用起来是相互排斥的,只能让一个人先用,由于临界资源的限制,资源上限值的这些进程,他们之间的关系称为间接制约关系,我们称这些进程之间相互存在互斥关系。

同步:同步模型,进程与进程相互存在一些依赖关系。进程与进程可能不是同时开始的,也可能同时开始,但是速度有差异,在一定情况停下等待,在最终完成任务的时候,必须两个进程都完成,才可以继续走下去。这种由于进程与进程之间速度上的差异,我么称为直接制约关系。

  • 临界资源:各进程之间需要互斥方式对其进行共享的资源,如打印机、磁带机、缓冲区(缓冲区在使用过程中,一般同一时刻,只会让一个进程使用,如果多个进程使用可能会产生一些数据上的冲突)等
  • 临界区:每个进程中访问临界资源的那段代码称为临界区
  • 信号量:是一种特殊的变量,是与P操作和V操作结合起来用的,是一种全局变量,不同进程当中,可以控制同一个信号量;信号量是可以拿来记录相应的资源数量的

PV操作

PV是操作系统的原语,所谓的原语就是具有原子性,P操作和V操作每个里面都包含多个小步骤,原子性就是这些步骤要么都做,要么都不做。无论是P操作和V操作都会结合信号量来操作。

注意:P是荷兰语的Passeren,V是荷兰语的Verhoog;S<0的时候,还可以表示盘对的进程数。
请添加图片描述
如上图:
P操作会包含两个操作

  1. S=S-1,针对-1的过程,首先会对信号量-1。-1是怎么理解?信号量是可以拿来记录相应的资源数量的,针对一个资源数量如果有一个仓库,资源的数量是一个固定的取值,那么初始情况的数量就叫做初始值,也叫做是信号量的初值来源,对这个信号量的数量-1,可以理解为在仓库记账本上对资源进行-1记录,这个动作其实就是一个占据资源、锁定资源的一个过程。可以对第一个动作理解为折申请并占据资源,这个申请并占据的过程可以理解为锁定并加锁的过程。P(S)表示P操作的初始值。
  2. 判断S<0,只判断小于,没有等于。<0判断的其实就是判断资源是否够用,检查资源是否充足,当信号量S<0的时候,说明申请的资源并没有实际占用到,因为已经是负数了,我们就认为是资源不足,因此需要排队等着领资源,所以会进入阻塞队列排队等待,直到领取到资源,然后通知后续的进程执行下一步操作的过程。

V操作会包含两个操作

  1. S=S+1,会对信号量先执行+1的操作,+1是怎么理解?资源+1,说明资源用完释放掉了,表示用完资源释放的过程。
  2. S<=0,这个判断是当性能好靓<0的时候,即资源不足需要继续排队,S同时可以表示等待的个数,如S=-1,表示当前有一个进程正在排队,直到领取到资源,然后通知后续的进程执行下一步操作的过程。

请添加图片描述

从阻塞队列唤醒一个线程,它不会直接进入运行态,而是进入就绪状态,所以一定会执行完当前进程再去执行阻塞被唤醒的进程。

PV是成对出现的,只加锁不解锁,会形成死锁,只解锁,不加锁,也没有实际的意义。

PV操作与互斥模型

互斥信号量S的初始值为1

  1. P(s)=P(1)
  2. S=S=1=0
  3. 0<0?,满足可以继续执行V操作
  4. 这个时候第二个进程也来执行P操作,则
  5. P(s)=P(0)
  6. S=S=1=-1
  7. -1<0?,不能继续执行了,进程2会阻塞,需要等待资源释放,-1表示当前有一个进程在等待资源
  8. 当第一个执行V(S)操作
  9. V(S)=-1
  10. S=S+1=0
  11. S<=0,满足,可以唤醒阻塞队列中的一个进程,使其进入就绪状态,等待当前进程执行完成后被调用

信号量的初值=资源数量
信号量最小值(也就是排队的进程数量)=信号量的初值-进程数=资源数量-进程数

如5个资源,8个进程访问
则信号量初始值P(S)=5,最小值=5-8=-3,则信号量取值范围【-3,5】。

PV操作与同步模型

与互斥模型相比,同步模型要复杂很多,会涉及到多个不同进程之间的协作关系,比较典型的有生产者消费者问题。
请添加图片描述

相关内容

热门资讯

【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AsusVivobook无法开... 首先,我们可以尝试重置BIOS(Basic Input/Output System)来解决这个问题。...
ASM贪吃蛇游戏-解决错误的问... 要解决ASM贪吃蛇游戏中的错误问题,你可以按照以下步骤进行:首先,确定错误的具体表现和问题所在。在贪...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...