【学习笔记】第二章——进程同步、进程互斥、进程互斥的硬件/软件实现方法

文章目录

  • 一. 进程同步 && 进程互斥
      • 四个区域
      • 四个原则
      • 总结:
  • 二. 进程互斥的软件实现方法
      • 1)单标志法
      • 2)双标志先检查法
      • 3)双标志后检查法
      • 4)Peterson 算法
      • 总结
  • 三. 进程互斥的硬件实现方法
      • 1)中断屏蔽方法
      • 2)TestAndSet 指令
      • 3)Swap 指令
      • 总结

一. 进程同步 && 进程互斥

  • 由于进程有异步性,因此需要有同步存在。
    同步也叫直接制约关系,指为完成某任务而建的两或多个进程,需要在某些位置协调各自的工作次序而产生的制约关系。进程间的直接制约关系就是源于他们之间的相互合作。

  • 各个并发进程总要共享一些系统资源(内存、打印机等)

  • 两种资源共享方式互斥 && 同时

  • 互斥共享方式:同一时间段,只允许一个进程访问

  • 同时共享方式:同一时间段,可允许多个进程访问

  • 临界资源:同一时间段,只允许一个进程使用的资源(摄像头、内存缓冲区等)

  • 对临界资源的访问,必须互斥地进行
    在这里插入图片描述

四个区域

  • 进入区:负责检查是否可以进入临界区;可进则设置正在访问临界资源的标志(上锁),以阻止其他进程同时进入临界区。
  • 临界区:访问临界资源的代码段
  • 退出区:负责解除正在访问临界资源的标志(解锁)
  • 剩余区:做其他处理
    在这里插入图片描述

四个原则

  • 四个原则:空闲让进、忙则等待、有限等待、让权等待
    在这里插入图片描述

总结:

在这里插入图片描述

二. 进程互斥的软件实现方法

1)单标志法

  • 每个进程进入临界区的权限,只能被另一个进程赋予
  • 可以实现:同一时刻最多允许一个进程访问临界区
  • 问题:违背空闲让进原则
    在这里插入图片描述
    在这里插入图片描述

2)双标志先检查法

  • 思想:用布尔型数组,标记各进程想进入临界区的意愿
  • 各进程进入临界区前,先检查当前有没有别的进程想进入临界区,无则设flag[i],然后访问
  • 问题:违反忙则等待原则
  • 原因:进入区的检查 && 上锁无原子性
    在这里插入图片描述

3)双标志后检查法

  • 结合前两个算法而成
  • 解决了忙则等待的问题,但是违反了空闲让进有限等待。会产生饥饿
    在这里插入图片描述

4)Peterson 算法

  • 让让让!解决了之前的问题
  • trun:优先让该进程进入临界区
  • 问题:未遵循让权等待原则
    在这里插入图片描述
    在这里插入图片描述

总结

在这里插入图片描述

三. 进程互斥的硬件实现方法

1)中断屏蔽方法

  • 利用开/关中断指令实现
  • 简单高效,但不适用于多处理机不适用于用户进程
    在这里插入图片描述

2)TestAndSet 指令

这里没怎么看,日后发现重要的话再复习吧 T T

在这里插入图片描述

3)Swap 指令

  • 原子性
    在这里插入图片描述

总结

在这里插入图片描述

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

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

相关文章

python的数据结构包括那些_python算法与数据结构-什么是数据结构

一、什么是数据结构 数据结构,直白地理解,就是研究数据的存储方式。 我们知道,数据存储只有一个目的,即为了方便后期对数据的再利用,就如同我们使用数组存储 {1,2,3,4,5} 是为了后期取得它们的值,因此&…

seo自动发外链_一套节约成本全网营销方案-小小课堂SEO培训教程

很多公司都是由一些小型工作室或个人工作室慢慢发展而来的,在这过程中,人员、资金链、资源、项目等因素一旦出现问题,可能会导致项目失败,那么在互联网上投入的资金如果过多,可能都是白白打了水漂。今天,小…

python 支付宝个人账单_金融支付财务融合业务-实践分享1:订单、账单、交易流水、账套知识解构、原理解析...

本文作者从实际工作实践出发,结合案例等分享了电商金融支付财务融合中的基本概念和相关原理解析,包括:订单、账单、交易流水和账知识解构,供大家一同参考和学习。从事电商、进销存、金融、支付、财务的产品同学,是否对…

【学习笔记】第二章——信号量机制 用信号量实现互斥、同步

文章目录一. 信号量机制整型信号量记录型信号量例子:总结二. 用信号量实现互斥、同步互斥同步前驱总结一. 信号量机制 信号量:一个用于表示系统中某种资源的数量的变量(整数 or 记录型变量)一对原语:wait(S) 和 signa…

opengl 安装_一步步学OpenGL(34) -《GLFX,一个OpenGL效果库》

教程 34GLFX,一个OpenGL效果库原文: http://ogldev.atspace.co.uk/www/tutorial34/tutorial34.htmlCSDN完整版专栏: https://blog.csdn.net/cordova/article/category/9266966理论介绍这篇教程暂时先不继续探索OpenGL的特性和3D技术了,来介绍…

【LeetCode笔记】剑指 Offer 60. n个骰子的点数(Java、动态规划)

文章目录题目描述代码 & 思路1. 二维数组(方便理解)2. 一维数组(节约空间)二刷鸽了好久的打题博客~要继续补起来了! 今天不打题,明天变垃圾 QAQ 题目描述 一眼就想先暴力枚举、或者递归呀&…

java 根据圆心计算圆弧上点的经纬度_【控制测量学】-高斯投影正算公式以及java代码

正算公式(将经纬度转化为坐标):java代码(附有源代码和修改后的代码):源代码:/** * 由经纬度反算成高斯投影坐标 * * param longitude * param latitude * return */ public static double[] GaussToBLToGauss( double longitude, double latitude) { …

【LeetCode笔记】剑指 Offer 59 - II. 队列的最大值(Java、辅助队列)

文章目录题目描述思路 && 代码二刷题目描述 恢复打题的第二天打卡~ 可以说是这道最小栈的兄弟题目了,很相似总体思路还是一样,靠空间换时间~也就是借助辅助队列 思路 && 代码 这篇题解的动图做得很好&#xff…

redis setnx原子性_不支持原子性的 Redis 事务也叫事务吗?

文章收录在 GitHub JavaKeeper ,N线互联网开发必备技能兵器谱 假设现在有这样一个业务,用户获取的某些数据来自第三方接口信息,为避免频繁请求第三方接口,我们往往会加一层缓存,缓存肯定要有时效性,假设我们…

【LeetCode笔记】剑指 Offer 67. 把字符串转换成整数 (Java、字符串)

文章目录题目描述思路 && 代码二刷题目描述 老阅读题了,感觉这道题有点类似写业务接口。 思路 && 代码 首先,把情况划分一下: 非正常值,直接给 0(这个实际上可以划分到2的代码中)可取…

详细描述三个适于瀑布模型的项目_信息系统项目管理师-第二三章:信息系统项目管理基础与立项管理2...

三、信息系统项目的生命周期1、项目生命周期的定义—项目从启动、组织与准备、执行到结束所经历的一系列阶段2、★项目生命周期的特征①成本与人力投入在开始时较低,在工作执行期间达到最高,并在项目快要结束时迅速回落②风险与不确定性在项目开始时最大,并在项目的整个生命周期…

【LeetCode笔记】剑指 Offer 64. 求1 + 2 + ... + n (Java、限制语法、二刷)

文章目录题目描述思路 && 代码注释版代码(方便理解):无注释版代码(方便背诵 )二刷题目描述 鬼鬼,又到了我最喜欢的戴着脚镣跳舞环节。 讲道理,我觉得这类题应该整个归纳啥的。。&#x…

虚拟dom_从0到1实现一个虚拟DOM

来源 | https://segmentfault.com/a/1190000021331850要构建自己的虚拟 DOM,需要知道两件事。你甚至不需要深入 React 的源代码或者深入任何其他虚拟 DOM 实现的源代码,因为它们是如此庞大和复杂——但实际上,虚拟 DOM 的主要部分只需不到 50…

【LeetCode笔记】剑指 Offer 31. 栈的压入、弹出序列 (Java、栈)

文章目录题目描述代码 && 思路二刷题目描述 打卡第三天!加油加油~ 数据结构笔试题貌似也会考 ,不过考法不一样,有点规律。总的来说还是挺有意思的,我们直接来看代码吧~ 代码 && 思路 O(…

【LeetCode笔记】剑指 Offer 20. 表示数值的字符串(Java、字符串)

文章目录题目描述思路 && 代码题目描述 呃…比较恶心的一道题,需要读好题,分完情况再下手有看到dalao用有限状态机来做,不过这边还是直接用了我自己的做法 思路 && 代码 ps:这里没有参考题解的写法&#xff…

【LeetCode笔记】剑指 Offer 16. 数值的整数次方(Java、分治)

文章目录题目描述思路 && 代码二刷题目描述 很棒的题目!便于分治思想的理解! 思路 && 代码 分情况是大头~递归结束的情况: x0x^0x0 1x1x^1x1 xx−1^-1−1 1 / x 偶数情况:直接二分递归奇数情况…

网站域名解析端口_环境测试必备,无需注册域名,免费动态IP解析一键解析本地网站...

localtunnel是基于Nodejs 开发的一个工具,开发者同时提供了Go语言版本。这个工具可以提供给你一个随机生成的二级域名,动态域名解析到你执行这个命令的服务器上,可以将域名解析到指定端口上。而且只需要一行代码。localtunnel安装在安装这个工…

【LeetCode笔记】剑指 Offer 33. 二叉树的后序遍历序列(Java、递归、栈)

文章目录题目描述思路 && 代码1. 递归做法2. 辅助栈做法二刷打卡第四天~昨天没来得及写博客 题目描述 无须多言,直接冲思路吧! 思路 && 代码 1. 递归做法 缺点:最差情况下,可能会退化成链表&…

LeetCode笔记】剑指 Offer 35. 复杂链表的复制(Java、哈希表、原地算法)

文章目录题目描述思路 && 代码1. 哈希表法2. 原地算法二刷题目描述 主要有两个考虑点: 不能改变原链表新链表赋予 next、random 时,复制结点不一定存在 思路 && 代码 1. 哈希表法 O(n)、O(n)参考了dalao的写法,这里哈希表…

adam算法效果差原因_干货|快来get中央空调冬天制热效果差的十大原因!

作为调节室内温度的重要电器,中央空调在人们的生活中扮演着至关重要的角色。目前,市场上许多中央空调都是冷暖两用型,每到冬季,绝大部分家用中央空调都被纷纷派上用场;然而,有些用户在使用空调制热时&#…