进程互斥有关概念:

两种资源共享方式:

1.互斥共享:一个时间段内只允许一个进程进行访问

2.同时共享:一个时间段内允许多个进程进行“同时”访问

临界资源:一个时间段内只允许一个进程进行访问的资源

访问临界区的原则:空闲让进,忙则等待,有限等待,让权等待.

临界资源逻辑上分为

1.进入区 2.临界区 3.剩余区 4.退出区

进程互斥的软实现方法

1.单标志法

算法思想:两个进程在访问完临界区之后会把使用临界区的权限交给另一个进程,每个进程进入临界区的权限只能由另一个进程赋予

代码:

单标志法的主要问题是违反了空闲让进的原则,当进程0一直不访问临界区,则进程0也无法访问所以违反了空闲让进的原则

2.双标志先检查法

算法思想:设计布尔型的数组,数组中各个元素用来标记进程想进入临界区的意愿。

代码原理如下图:

缺点:违反了忙则等待的原则。原因在于进入区和检查区的操作不是一气呵成的。检查后上锁前可能发生切换。

双标志后检查法:双标志后检查法的改版,先上锁后检查,代码如下图

违背了空闲让进原则可能会导致饥饿。

3.Peterson算法

进程互斥以及进程互斥实现方法(包含代码)相关推荐

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

    文章目录 一. 进程同步 && 进程互斥 四个区域 四个原则 总结: 二. 进程互斥的软件实现方法 1)单标志法 2)双标志先检查法 3)双标志后检查法 4)Peterson 算法 总 ...

  2. 操作系统-进程同步、进程互斥、进程互斥的实现方法

    文章目录 进程同步 进程互斥 进程互斥的软件实现方法 单标志法 双标志先检查 双标志后检查 Peterson算法 进程互斥的硬件实现方法 中断屏蔽方法 TestAndSet(TS指令/TSL指令/Te ...

  3. 用信号量解决进程的同步与互斥

    转自:http://www.cnblogs.com/whatbeg/p/4435286.html 现代操作系统采用多道程序设计机制,多个进程可以并发执行,CPU在进程之间来回切换,共享某些资源,提高了 ...

  4. 进程的同步和互斥反映了_用信号量解决进程的同步与互斥探讨【持续更新】

    现代操作系统采用多道程序设计机制,多个进程可以并发执行,CPU在进程之间来回切换,共享某些资源,提高了资源的利用率,但这也使得处理并发执行的多个进程之间的冲突和相互制约关系成为了一道难题.如果对并发进 ...

  5. 信号量解决进程的同步和互斥

    转自:http://www.cnblogs.com/whatbeg/p/4435286.html 现代操作系统采用多道程序设计机制,多个进程可以并发执行,CPU在进程之间来回切换,共享某些资源,提高了 ...

  6. 用信号量解决进程的同步与互斥探讨【持续更新】

    现代操作系统采用多道程序设计机制,多个进程可以并发执行,CPU在进程之间来回切换,共享某些资源,提高了资源的利用率,但这也使得处理并发执行的多个进程之间的冲突和相互制约关系成为了一道难题.如果对并发进 ...

  7. 用信号量解决进程的同步与互斥探讨

    <p>本篇也是一篇老文,发布于2015年5月,文章比较长,算老博客看的比较多的了,贴到这儿与大家分享,以求多多交流探讨.</p> 前言 现代操作系统采用多道程序设计机制,多个进 ...

  8. 进程的同步、互斥以及PV原语

    在处理进程间的同步与互斥问题时,我们离不开信号量和PV原语,使用这两个工具的目的在于打造一段不可分割不可中断的程序.应当注意的是,信号量和PV原语是解决进程间同步与互斥问题的一种机制,但并不是唯一的机 ...

  9. 卡住无法查看到所有进程_进程同步 进程互斥 软件和硬件实现方式 信号量机制 信号量机制实现进程同步,进程互斥,前驱关系...

    参考:https://www.bilibili.com/video/av31584226/?p=9 进程具有异步性的特征,异步性是指,各并发执行的进程以各自独立的,不可预知的速度向前推进. 回忆我们之 ...

最新文章

  1. 数独简化版 (set去重)
  2. 关于线程池你不得不知道的一些设置
  3. Docker网络模型(八)
  4. Flink 分别读取kafka和mysql作为source
  5. python中反斜杠b_Python bytes 反斜杠转义问题解决方法
  6. 六个角度深层区分ERP和MES的不同!
  7. 使用maven启动web项目报错
  8. 爬取线上小程序源码看这一篇就够了!
  9. SSM+基于ssm的汽车租赁平台的设计与实现 毕业设计-附源码211708
  10. 比管理时间重要 1000 倍的,是管理精力
  11. python对气象工作有没有用_Python语言在气象资料下载中的应用
  12. [转] 彼得林奇:最珍贵的成长股投资精髓
  13. Java开发翻译系统
  14. Kali Linux 触摸板支持单击
  15. 【可达性分析中的增量更新和原始快照】
  16. 计算机排第三!新增的工学硕士博士学位
  17. oracle 删除数据
  18. 两条边延长角会有什么变化_用图中这种测量工具可以量出图中零件上ab cd这两条轮廓线的延长线所成的角你能说出其中的道理吗...
  19. 我们怎样处理垃圾网站举报?
  20. vue移动端高德地图的使用及实现最简单的地图功能

热门文章

  1. Ten Places to Go for SharePoint Development Information
  2. keytool 错误: java.lang.Exception: 密钥库文件存在, 但为空: E:\xxx\xxx\.jks
  3. codeforces第一次GYM经历
  4. c语言H文件意思,C语言中 *.c和*.h文件的区别!
  5. C语言学习之路——程序设计概述
  6. 牛多年研发电源问题汇总
  7. a king读后感 love of the_一千零一夜英语读后感
  8. 原来raw转换成jpg格式很简单,只要掌握这个技巧
  9. 3D Touch的基本使用
  10. SQL2000重新装,有文件挂起