10、信号量机制

  • 思维导图
  • 信号量机制的引入
  • 什么是信号量机制
  • 信号量的分类
    • 整形信号量
    • 记录型信号量

思维导图

信号量机制的引入

来看几个问题。
1、在用软件实现进程互斥的时候,双标志先检查算法由于 “上锁”“检查”操作无法一气呵成 而导致多个程序进入临界区的问题

2、无论是硬件还是软件实现进程互斥都无法实现“让权等待”
为了解决上述的问题,Dijkstra提出了卓有成效的方法----------信号量机制

什么是信号量机制

信号量的分类

整形信号量

由于任然无法解决让权等待的问题,所以整型信号量也不是优选方案
为了解决让权等待的问题,又提出了记录型信号量

记录型信号量


看个例子:

场景:两台打印机、四个进程
初始值:S.values = 2,S.L = 0
1、进程A使用打印机,执行P(S)操作:S.values = 1,使用资源
2、进程A执行同时进程B也使用打印机,执行P(S)操作:S.values = 0,使用资源
3、进程AB执行同时进程C也使用打印机,执行P(S)操作:S.values = -1,进程C进入阻塞状态,进入等待队列
4、进程ABC执行同时进程D也使用打印机,执行P(S)操作:S.values = -2,进程D进入阻塞状态,进入等待队列
5、当进程A运行结束后,执行V(S)操作:S.values = -1,释放资源等待队列中的进程C被唤醒,使用资源
6、当进程B运行结束后,执行V(S)操作:S.values = 0,释放资源等待队列中的进程D被唤醒,使用资源
7、当进程C运行结束后,执行V(S)操作:S.values = 1 ,释放资源
8、当进程D运行结束后,执行V(S)操作:S.values = 2 ,释放资源
PS:S.values的值改变是因为执行PV操作的自加或自减,不是直接赋值操作
PS:资源数目为负,即S.values为负的含义是:等待队列中进程的个数;S.values=-1说明等待队列中有一个进程



信号量介绍完了,下一篇:用信号量实现进程互斥、同步

操作系统之进程管理:10、信号量机制(整形、记录型)相关推荐

  1. 信号量机制(记录型)

    信号量机制是一种卓有成效的进程互斥同步工具.这里只介绍记录型信号量机制,它可以有效的解决CPU"忙等"的问题,实现互斥. 记录型信号量机制的数据结构如下(看不懂那些字母是什么其实没 ...

  2. 【操作系统】进程管理(五)—— 信号量机制

    [操作系统]进程管理(五)-- 信号量机制 前言 一.信号量机制 信号量机制--整型信号量 信号量机制--记录型信号量 二.用信号量机制实现进程互斥.同步.前驱关系 信号量机制实现进程互斥 信号量机制 ...

  3. (王道408考研操作系统)第二章进程管理-第三节4:信号量机制(整型、记录型信号量和P、V操作)

    文章目录 一:信号量是什么 二:整型信号量 三:记录型信号量 可以看出,不管是进程互斥的软件实现方法还是硬件实现方法,他们都无法解决"让权等待"这个问题,也即处理会处于会处于忙等状 ...

  4. 操作系统之进程管理:11、用信号量机制实现进程同步、互斥、前驱关系

    11.用信号量机制实现进程同步.互斥.前驱关系 思维导图 用信号量机制实现进程同步 用信号量机制实现进程互斥 用信号量机制实现进程的前驱关系 思维导图 用信号量机制实现进程同步 先来看一下什么是进程同 ...

  5. 操作系统课设之基于信号量机制的并发程序设计

    前言 课程设计开始了,实验很有意思,写博客总结学到的知识 白嫖容易,创作不易,学到东西才是真 本文原创,创作不易,转载请注明!!! 本文链接 个人博客:https://ronglin.fun/arch ...

  6. 【操作系统】进程管理(二)

    [操作系统]进程管理(二) 一.前言 二.进程的基本概念 2.1 程序的顺序执行 2.2 程序的并发执行 2.3 进程的特征 2.4 进程的状态 2.5 进程控制块 三.进程控制 3.1 进程的创建 ...

  7. 操作系统之——进程管理:同步进程和进程互斥

    操作系统进程管理-同步和互斥 在看了操作系统关于进程管理中的同步互斥机制章节之后,甚是困惑,今天通过视频.网上博客资料学习之后,整理一下相关知识点. 进程管理 一.进程互斥 由于进程具有独立性和异步性 ...

  8. 操作系统之进程管理-翟一鸣-专题视频课程

    操作系统之进程管理-192人已学习 课程介绍         主要内容是程序的并发执行及进程的概念,进程的状态及其转换,进程的同步与互斥,进程通信与调度,进程死锁的概念及解决死锁的方法,线程的概念及其 ...

  9. 视频教程-操作系统之进程管理-操作系统

    操作系统之进程管理 1979年出生于甘肃省兰州市,2001年7月本科毕业于西北师范大学计算机科学与技术专业,同年于烟台大学计算机学院任教至今:期间于2006年获得上海交通大学软件工程硕士学位,现为学院 ...

  10. 操作系统笔记——进程管理

    操作系统笔记--进程管理 2. 进程管理 2.1 进程与线程 2.1.1 进程的引入 前趋图 程序的顺序执行 程序的并发执行 2.1.2 进程的定义及描述 进程的定义 进程的特征 进程和程序的关系 进 ...

最新文章

  1. Windows平台的Eclipse-javaEE-mars相关配置
  2. python网络爬虫权威指南 百度云-Python网络爬虫权威指南 PDF 第2版
  3. timestamp with local time zone类型和timestamp with time zone
  4. Leetcode-137. 只出现一次的数字 II (python3实现)
  5. 汇总丨MySQL GTID技术点,看这一篇就够了!
  6. CentOS7安装JDK,全网最快安装教程
  7. 黑苹果 电脑关机是因为发生了问题_【电脑常识】常见的电脑误区,你中了几点?...
  8. bzoj 4026 dC Loves Number Theory(主席树)
  9. Linux C 语言内联汇编
  10. web前端开发技术----登录页面
  11. cjson构建_cJSON结构体构建
  12. 内容创作费时费力?这款AI写作神器超给力!
  13. 计算机网络速成【网络层】
  14. grunt_从Grunt测试Grunt插件
  15. win10去掉快捷方式小箭头_win7系统如何去掉和恢复桌面快捷方式上的小箭头
  16. 深度学习工作站装机指南
  17. 算法随笔 — 树结构基础 — 并查集
  18. fortran 语法学习之二
  19. Tensorflow.js||使用 CNN 识别手写数字
  20. 初步了解Panda3D场景管理

热门文章

  1. 新手怎样学习C语言C++?
  2. 拜托!程序员的工作不能用时间来衡量
  3. 听说你做IT的,帮我做个网站呗!
  4. 你的数据也可以-三篇NAR的数据库
  5. Bash 使用技巧大补贴
  6. 如何关闭mac烦人的更新升级提醒
  7. 依赖倒置原则_设计模式之SOLID原则
  8. php把时间戳转换成多少时间之前函数
  9. 用matlab时提示数据写入文件期间被裁剪_用C语言简单开发学生成绩管理系统
  10. RTX5 | 信号量01 - 信号量的使用