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

news2024/11/18 23:26:33

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/398162.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaEE简单示例——Spring框架的简单介绍

简单介绍&#xff1a; 在我们之前创建的Java项目中&#xff0c;会发现我们的各种类&#xff0c;接口文件和配置文件都放在了一起&#xff0c;虽然我们也做了一些包管理去管理我们的这些文件&#xff0c;但是对于我们来说&#xff0c;这些操作还是太繁琐了&#xff0c;尤其是当…

Spark-RDD创建、并行分区

集合&#xff08;内存&#xff09;中创建 RDD 外部存储&#xff08;文件&#xff09;创建 RDD 并行与分区 分区的设定 集合&#xff08;内存&#xff09;中创建 RDD 从集合中创建 RDD&#xff0c;Spark 主要提供了两个方法&#xff1a;parallelize 和 makeRDD&#xff0c;从…

【源码解析】SpringBoot缓存之@Cacheable的快速入门和源码解析

快速入门 启动类上添加注解EnableCaching在方法上添加注解Cacheable。 OverrideCacheable(cacheNames "value", key "#code_#dictKey")public String getValue(String code, Integer dictKey) {return baseMapper.getValue(code, dictKey);}OverrideCac…

数据结构和算法学习记录——线性表之单链表(上)-初始单链表及其头插函数(顺序表缺陷、单链表优点、链表打印)

单链表的概念单链表是一种链式存取的数据结构&#xff0c;链表中的数据是以结点来表示的。每个结点的构成&#xff1a;元素(数据元素的映象) 指针(指示后继元素存储位置)。元素就是存储数据的存储单元&#xff0c;指针就是连接每个结点的地址数据。以“结点的序列”表示的线性…

Kubernetes Service简介

Service 之前我们了解了Pod的基本用法&#xff0c;我们也了解到Pod的生命是有限的&#xff0c;死亡过后不会复活了。我们后面学习到的RC和Deployment可以用来动态的创建和销毁Pod。尽管每个Pod都有自己的IP地址&#xff0c;但是如果Pod重新启动了的话那么他的IP很有可能也就变…

cocos2dx+lua学习笔记:事件派发器CCEventDispatcher

前言 本篇在讲什么 cocos2dx内关于事件监听和派发的调度器EventDispatcher相关内容 本篇适合什么 适合初学Cocos2dx的小白 适合想要学习EventDispatcher的新手 本篇需要什么 对Lua语法有简单认知 对C语法有简单认知 对Cocos2dx有简单认知 Cocos2dx-Lua的开发环境 依…

【Spring事物三千问】DataSource的设计和常用实现——Hikari、Druid

javax.sql.DataSource javax.sql.DataSource 是 jdk 提供的接口&#xff0c;各个连接池厂商 和 Spring 都对 DataSource 进行了设计和实现。 javax.sql.DataSource 是连接到物理数据源的工厂接口。它是 java.sql.DriverManager 功能的替代者&#xff0c;是获取数据库连接的首选…

H5视频付费点播打赏影视系统程序全开源运营版,含完整的前后台+数据库

源码介绍&#xff1a; 这是一个非常棒的精品代码&#xff0c;之前官方网站售价可是超过2w的。我拿过来了简单测试了一下&#xff0c;完美。好久没有遇到这么好的代码了&#xff0c;特此整理了一份完整的搭建教程并分享一下。 thinkphp开发&#xff0c;前后端分离设计&#xf…

Vue3做出B站【bilibili】 Vue3+TypeScript+ant-design-vue【快速入门一篇文章精通系列(一)前端项目案例】

本项目分为二部分 1、后台管理系统&#xff08;用户管理&#xff0c;角色管理&#xff0c;视频管理等&#xff09; 2、客户端&#xff08;登录注册、发布视频&#xff09; Vue3做出B站【bilibili】 Vue3TypeScriptant-design-vue【快速入门一篇文章精通系列&#xff08;一&…

ASEMI高压MOS管20N60参数,20N60尺寸,20N60体积

编辑-Z ASEMI高压MOS管20N60参数&#xff1a; 型号&#xff1a;20N60 漏极-源极电压&#xff08;VDS&#xff09;&#xff1a;600V 栅源电压&#xff08;VGS&#xff09;&#xff1a;30V 漏极电流&#xff08;ID&#xff09;&#xff1a;20A 功耗&#xff08;PD&#xff…

项目最后一刻发生范围变更该怎么处理?

不管是项目需求发生了变化&#xff0c;还是第一轮可交付成果没有完全达到预期&#xff0c;在项目范围定义的初始阶段之后可能发生变化的原因有很多。当这种情况发生时&#xff0c;你需要准备好一个计划来处理最后一刻的范围变更和调整。 什么是范围变更&#xff1f; 范围变更是…

浪潮 KaiwuDB x 山东重工 | 打造离散制造业 IIoT 标杆解决方案

近日&#xff0c;浪潮 KaiwuDB 携手山东重工集团有限公司&#xff08;以下简称&#xff1a;山东重工&#xff09;重磅发布“离散制造业 IIoT 解决方案”。该 IIoT 方案以 KaiwuDB 就地运算专利技术为底座&#xff0c;搭建了”多快优智”的“13N”方案体系&#xff0c;目前已率先…

南京、西安集成电路企业和高校分布一览(附产业链主要厂商及高校名录)

前言 3月2日&#xff0c;国务院副总理刘鹤在北京调研集成电路企业发展&#xff0c;并主持召开座谈会。刘鹤指出&#xff0c;集成电路是现代化产业体系的核心枢纽&#xff0c;关系国家安全和中国式现代化进程。他表示&#xff0c;我国已形成较完整的集成电路产业链&#xff0c;也…

视频理解论文串讲——学习笔记

文章目录DeepVideoTwo-StreamBeyond-short-SmippetsConvolutional FusionTSNC3DI3DNon-localR&#xff08;21&#xff09;DSlowFastTimesformer本文是对视频理解领域论文串讲的笔记记录。 一篇相关综述&#xff1a;Yi Zhu, Xinyu Li, Chunhui Liu, Mohammadreza Zolfaghari, Yu…

【YOLO】YOLOv8训练自定义数据集

1. 运行环境 windows11 和 Ubuntu20.04&#xff08;建议使用 Linux 系统&#xff09; 首先切换到自己建立的虚拟环境安装 pytorch torch 1.12.0cu116&#xff08;根据自身设备而定&#xff09; torchvision 0.13.0cu116&#xff08;根据自身设备而定&…

详解JAVA枚举类

目录 1.概述 2.常用API 2.1.清单 2.2.代码示例 2.2.1.ordinal 2.2.2.compareTo 2.2.3.toString 2.2.4.valueOf 2.2.5.values 3.成员变量和带参构造 1.概述 枚举变量指的是变量的取值只在一个有限的集合内&#xff0c;如性别、星期几、颜色等。从JDK5开始&#xff0…

超详细CentOS7 NAT模式(有图形化界面)网络配置

在此附上CentOS7&#xff08;有可视化界面版&#xff09;安装教程 超详细VMware CentOS7&#xff08;有可视化界面版&#xff09;安装教程 打开VMware—>点击编辑---->选择虚拟网络编辑器 打开虚拟网络编辑器后如下图所示&#xff1a; 从下图中我们看到最下面子网IP为…

软测入门(九)unit test

unit test 核心概念 TestCase:测试用例&#xff1a;用类的方式 组织对一个功能的多项测试Fixture : 夹具&#xff0c;用来固定测试环境TestSuite:测试套件:组织多个TestCaseTestRunner:测试执行:用来执行TestSuit&#xff0c;可以导出测试结果 入门 类需要继承unittest.Tes…

ENVI IDL学习笔记之基本操作

前言ENVI IDL&#xff08;交互式数据语言&#xff09;是一个通用的科学计算包&#xff0c;它提供了一套数学函数、数据分析工具&#xff0c;以及一些科学可视化和动画工具。IDL 是 ENVI 图像处理和分析软件的基础&#xff0c;可用于编写脚本并自动执行许多使用 ENVI 图形用户界…

【鲁棒优化】基于联合聚类和定价的鲁棒功率控制方法(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…