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操作与同步模型

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

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...