进程同步与进程互斥-第二十四天

目录

前言

什么是进程同步

什么是进程互斥

四大区

遵循原则

本节思维导图


前言

        进程具有异步性,异步性是指,各并发执行的进程以各自独立的、不可预知的速度向前推进,因此为了让进程以我们想要的顺序执行,操作系统引入了“进程同步机制”

什么是进程同步

        在管道通信(进程通信)中读进程和写进程并发地运行,由于并发必然导致异步性,即“写数据”和“读数据”两个进程地先后顺序是不确定地。而实际应用中,又必须按照“写数据->读数据”的顺序来执行,如何解决这种异步问题,就是“进程同步”所讨论的内容

        同步亦称直接制约关系,它是指为完成某种任务而建立的两个或多个进程,这些进程因为需要在某些位置上协调它们的工作次序而产生的制约关系,进程间的直接制约关系就是源于它们之间的相互合作

什么是进程互斥

        进程的“并发”需要“共享”的支持。各个并发执行的进程不可避免地需要共享一些系统资源(比如内存,打印机、摄像头这样地I/O设备)

        我们把一个时间段内只允许一个进程使用地资源称为临界资源。物理设备(比如摄像头、打印机)变量、数据、内存缓冲区等都属于临界资源,并且对临界资源的访问,必须互斥地进行。

        互斥亦称间接制约关系。进程互斥指当一个进程访问某临界资源时,另一个想要访问该临界资源必须等待当前访问临界资源的进程访问结束,释放该资源后,另一个进程才能访问临界资源

四大区

对临界资源的互斥访问,可以在逻辑上分为如下四个部分:

do
{entry section;     //进入区critical section;  //临界区exit section;      //退出区remainder section; //剩余区
}while(true)

进入区:负责检查是否可以进入临界区,若可进入,则应设置正在访问临界资源的表示(可以理解为“上锁”),以阻止其它进程同时进入临界区

临界区:访问临界资源的那段代码

退出区:负责解除正在访问临界资源的标志(可以理解为“解锁”)

剩余区:做其它处理

注意事项:临界区是进程中访问临界资源的代码段,进入区和退出区是负责实现互斥的代码段,临界区也可称为“临界段” 

遵循原则

为了实现对临界资源的互斥访问,同时保证系统整体性能,需要遵顼以下原则:

1、空闲让进,临界区空闲时,可以允许一个请求进入临界区的进程直接进入临界区:

2、忙则等待,当已有进程进入临界区时,其它试图进入临界区的进程必须等待

3、有限等待,对请求访问的进程,应保证能在有限时间内进入临界区(保证不会饥饿)

4、让权等待,当进程不能进入临界区时,应立即释放处理机,防止进程忙等待

本节思维导图

~over~

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

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

相关文章

概率中的50个具有挑战性的问题[03/50]:轻率的陪审员

一、说明 我最近对与概率有关的问题产生了兴趣。我偶然读到了弗雷德里克莫斯特勒(Frederick Mosteller)的《概率论中的五十个具有挑战性的问题与解决方案》(Fifty Challenge Problems in Probability with Solutions)一书。我认为…

如何修复concrt140.dll丢失问题,分享4种有效的方法

在计算机使用的过程中,我们经常会遇到一些错误提示或者系统崩溃的情况。其中之一就是“concrt140.dll丢失”。这个错误通常会导致某些应用程序无法正常运行。为了解决这个问题,我们需要采取一些措施来修复丢失的concrt140.dll文件。本文将介绍五个解决co…

C++ 强制类型转换static_cast<typeName>

C允许通过强制类型转换机制显式地进行类型转换。强制类型转换的格式有两种。 如: 为将存储在变量nData中的int值转换为long类型,可以使用下面的表达式中的一种: (long)nData …

对数函数求导

方法 一般形 复合型 复杂复合型

【编译原理--复习】

知识点整理 第一章 同时伴有表格管理、出错处理 1、词法分析 任务:对构成源程序的字符串进行扫描和分解,识别出单词(如标识符等)符号 输入:源程序 输出:单词符号序列 2、语法分析 任务:根据语言的语法规则对单词符号…

数据分析基础之《numpy(5)—合并与分割》

了解即可,用panads 一、作用 实现数据的切分和合并,将数据进行切分合并处理 二、合并 1、numpy.hstack 水平拼接 # hstack 水平拼接 a np.array((1,2,3)) b np.array((2,3,4)) np.hstack((a, b))a np.array([[1], [2], [3]]) b np.array([[2], […

drools入门案例

1 业务场景说明 业务场景:消费者在图书商城购买图书,下单后需要在支付页面显示订单优惠后的价格。具体优惠规则如下: 规则编号 规则名称 描述 1 规则一 所购图书总价在100元以下的没有优惠 2 规则二 所购图书总价在100到200元的优惠2…

tampermonkey:Tampermonkey受欢迎的用户脚本管理器油猴

Tampermonkey for Mac是一款用户脚本管理器,主要用于在网页上运行自定义的JavaScript代码,以增强网站的功能和外观。它支持在各种浏览器中使用,包括Chrome、Firefox和Safari等主要浏览器。 以下是Tampermonkey for Mac软件的主要特点&#x…

RocketMQ 入门:MQ 基础概念、集群搭建与高可用配置,消息示例详解

RocketMQ 入门 视频地址: 千锋教育RocketMQ全套视频教程,快速掌握MQ消息中间件 什么是 MQ ? Message Queue(消息 队列),从字面上理解:首先它是一个队列。FIFO 先进先出的数据结构 —— 队列…

postgresql|数据库|LVM快照热备冷恢复数据库的思考

一, LVM快照备份的意义 数据库备份一直是数据库运维工作中的重点,一个完备的备份不仅仅是仅有后悔药的功能,还可能有迁移数据库的作用。 那么,数据库备份系统我们需要的,也就是看重的是四个点,甚至更多的…

【LeetCode刷题笔记】前缀树

208. 实现 Trie (前缀树) 解题思路: 1. 前缀树 Map实现 ,使用一个 Map<Character, Trie> 来存储 每个字符 对应的 若干子节点 ,在构造函数中初始化 根节点 root 为 当前对象实例 , 在 插入

java的XWPFDocument3.17版本学习

maven依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.17</version> </dependency> 测试类&#xff1a; import org.apache.poi.openxml4j.exceptions.InvalidFormatExcep…

Python+Playwright自动化测试--playwright处理浏览器多窗口切换

1.简介 浏览器多窗口的切换问题相比大家不会陌生吧&#xff0c;之前小编在javaselenium系列文章中就有介绍过。大致步骤就是&#xff1a;使用selenium进行浏览器的多个窗口切换测试&#xff0c;如果我们打开了多个网页&#xff0c;进行网页切换时&#xff0c;我们需要先获取各…

R软件包ConsensusCluster进行共识聚类(Consensus Clustering)

从下面论文看到这个方法&#xff1a; Wang, Xin, et al. "Deep learning using bulk RNA-seq data expands cell landscape identification in tumor microenvironment." Oncoimmunology 11.1 (2022): 2043662. 这篇论文基于 AI 方法对 bulk RNA-seq 数据识别肿瘤微环…

10、基于LunarLander登陆器的Dueling DDQN强化学习(含PYTHON工程)

10、基于LunarLander登陆器的Dueling DDQN强化学习&#xff08;含PYTHON工程&#xff09; LunarLander复现&#xff1a; 07、基于LunarLander登陆器的DQN强化学习案例&#xff08;含PYTHON工程&#xff09; 08、基于LunarLander登陆器的DDQN强化学习&#xff08;含PYTHON工程…

【动态规划算法(dp算法)】之背包问题

文章目录 背包问题动规五部曲一、0-1背包问题 &#xff1a;限制物品不可重复 (要么不选 要么选一个)二、完全背包问题&#xff1a;不限制重复&#xff08;要么不选 要么可以多选&#xff09;&#xff08;完全背包可以转化为0-1背包问题&#xff09; 动态规划&#xff1a;01背包…

使用OpenCV4实现工业缺陷检测的六种方法

目录 1 机器视觉2 缺陷检测3 工业上常见缺陷检测方法 1 机器视觉 机器视觉是使用各种工业相机&#xff0c;结合传感器跟电气信号实现替代传统人工&#xff0c;完成对象识别、计数、测量、缺陷检测、引导定位与抓取等任务。其中工业品的缺陷检测极大的依赖人工完成&#xff0c;…

企业数据治理:(1)概述

目录 确定数据治理的规范与标准 设立与数据治理规范和标准相匹配的组织架构 明确数据治理的范围 制定切实可行的治理目标与实施计划 数据治理是企业IT系统建设当中的重要组成部分&#xff0c;是一种综合性的方法和实践&#xff0c;目的在确保数据的完整性、准确性和一致性。…

部署tomcat单机多实例,keepalived+mysql的互为主从高可用,mysql+keepalived高可用

部署tomcat单机多实例 在Tomcat中部署单机多实例是一种常见的做法&#xff0c;它允许您在同一台服务器上运行多个独立的Tomcat实例&#xff0c;每个实例都有自己的配置、日志和应用程序。 安装jdk环境 首先配置java环境 [roottomcat ~]# tar xf jdk-8u211-linux-x64.tar.gz…

nodejs+vue+ElementUi会员制停车场车位系统

总之&#xff0c;智能停车系统使停车场管理工作规范化&#xff0c;系统化&#xff0c;程序化&#xff0c;避免停车场管理的随意性&#xff0c;提高信息处理的速度和准确性&#xff0c;能够及时、准确、有效的查询和修改停车场情况。 三、任务&#xff1a;小组任务和个人任务 智…