目录

1,AND型信号量集机制

基本思想

实现

与记录型信号量对比

应用实例

1,生产者消费者问题

2,哲学家进餐问题

2,一般信号量集机制

基本思想

实现

应用实例

1,读者写者问题


1,AND型信号量集机制

基本思想

  • 将进程在整个运行过程中需要的所有资源,一次性全部地分配给进程,待进程使用完后再一起释放;(类似于数据库中的事务)
  • 对若干个临界资源的分配,采取原子操作方式要么全部分配到进程,要么一个也不分配;
  • 为此,在wait操作中,增加了一个“AND”条件,故称为AND同步;

实现

与记录型信号量对比

  • 将所有的临界资源都当作函数参数,不需要考虑顺序。函数体中选取相应的参数进行调用;
  • 要么不使用临界资源,要么一次请求所有需要的资源;
  • 绑定的内容多,效率比较低;

应用实例

1,生产者消费者问题

记录型信号量标准程序(需要注意顺序)

详细介绍参考@&再见萤火虫&【操作系统_生产者消费者问题】

AND型信号量标准程序

2,哲学家进餐问题

记录型信号量标准程序之一(注意一个哲学家拿筷子的顺序,要与其他哲学家拿筷子的顺序不同)

详细介绍参考@&再见萤火虫&【操作系统_哲学家进餐问题】

AND型信号量标准程序

2,一般信号量集机制

基本思想

在AND型信号量基础上,一次可申请多个单位资源。

实现

应用实例

1,读者写者问题

记录型信号量标准程序(需要区分是否为第一位读者)

详细介绍参考@&再见萤火虫&【操作系统_读者写者问题】

一般信号量标准程序

读者:

Swait

  • L,1,1:L记录读者进程数目,阈值为1,每个读者进程消耗一个资源(L-1);
  • mutex,1,0: 互斥信号量阈值为1,每个读者进程消耗0个资源;(由于AND型信号量保证了所有需要资源获取的原子性,因而不需要加读锁Rmutex来保证临界资源readcount的访问;    可以用读者进程数目L来表示是否有读者进程正在访问,从而保证读者和写者进程的互斥,因而不需要加写锁Wmutex;   因而读者进程可以不需要消耗mutex资源 )

Ssignal

  • L,1:L读者进程释放,数目加一;

写者:

Swait:

  • mutex,1,1:消耗互斥资源mutex(主要用于写者进程之间的互斥),每次消耗1;
  • L,RN,0:读者进程数目L,当L==RN时(没有读者进程),才允许写者进程运行,每次消耗0个;

Ssignal:

  • mutex,1:写者进程结束,释放互斥信号量资源;

操作系统_信号量集机制相关推荐

  1. 操作系统【信号量集机制、“读者-写者”问题】

    0.信号量机制应用引导篇.flv 1.信号量集机制解决读写问题深入分析.flv   03:00 2."读者-写者"问题之"顺序执行".flv   07:32 3 ...

  2. 【操作系统⑧】——信号量与PV操作(下)【哲学家进餐问题 AND型信号量 信号量集机制】

  3. 操作系统之-----信号量机制

    信号量机制是一种卓越成效的进程同步工具,信号量机制已经被广泛的使用于单处理机,和多处理系统的计算机网络中. 信号量S是一个整数,S大于等于零代表可供并发进程使用的资源实体数,当S小于零时则表示正在等待 ...

  4. 操作系统基础-信号量机制的理解

    文章目录 初步了解信号量 临界资源 临界区 进程互斥 进程同步 初步了解信号量 信号量机制的提出,是为了解决进程间关系通信的问题,因为进程间不可能用嘴来说"我在使用这个资源啊,你先等我用完再 ...

  5. 北理工操作系统实验合集 | API解读与例子

    文章目录 传送门 实验报告与源码下载 前言 进程控制API Linux getpid/getppid fork/vfork exit/_exit exec函数族 wait/waitpid pause/ ...

  6. 从零入门 FreeRTOS操作系统之信号量

    从零入门 FreeRTOS操作系统之信号量 1 信号量的基本概念 信号量 (Semaphore) 是一种实现任务间通信的机制,可以实现任务之间同步或临界资源的互斥访问,常用于协助一组相互竞争的任务来访 ...

  7. 信号量集(主要是AND信号量)

     信号量集 当利用信号量机制解决了单个资源的互斥访问后,我们讨论如何控制同时需要多个资源的互斥访问.信号量集是指同时需要多个资源时的信号量操作. (1)AND型信号量集 AND型信号量集是指同时需 ...

  8. 软硬整合商业思维与架构设计_答问集

    欢迎访问 ==>高老师的博客网页 高焕堂:MISOO(大数据.大思考)联盟.台北中心和东京(日本)分社.总教练 EE                                       ...

  9. 作业调度算法--高响应比优先 操作系统_处理器管理_编程题

    操作系统_处理器管理_编程题 作业调度算法–高响应比优先 输入N个作业,输入每个的作业名字,到达的时间,服务的时间,根据高响应比优先算法,计算出每个作业的完成的时间,周转的时间,带权周转的时间(其中保 ...

最新文章

  1. 浏览器的加载与页面性能优化
  2. caffe之mac下环境搭建
  3. 每日英语:Would We Be Healthier With A Vegan Diet?
  4. 如何找到调用当前方法的方法?
  5. TCP/IP / 状态转换图
  6. 这是一名既能打比赛,又会发论文JD AI实验室的算法工程师,CSDN博客专家
  7. Selenium | 网上教程
  8. Dorado 7.1.20 发布,Ajax的Web开发平台
  9. C#元组类型System.ValueTuple
  10. C语言变量unsafe,Java中Unsafe使用详解
  11. MySQL数据库入门:建库、建表、插入数据
  12. 新浪微博android apk,新浪微博app(新浪微博手机版) V9.4.2安卓版
  13. Skype国际版下载地址(非Tom版)
  14. idea导出war包并部署在tomact
  15. matlab 水文频率曲线,水文频率曲线matlab
  16. 多人远程同时使用谷歌浏览器
  17. 戏剧之家杂志戏剧之家杂志社戏剧之家编辑部2022年第18期目录
  18. python程序-小说下载
  19. linux 系统迁移 固态硬盘,系统迁移
  20. box2d的部分心得

热门文章

  1. 视频综合平台架构分析
  2. AccessibilityService-微信自动抢红包
  3. arm服务器芯片主板,Broadcom的Arm服务器芯片获重生:Cavium发布双插槽ThunderX2
  4. domain adaptation 小综述
  5. MySQL日记——索引优化
  6. 计算机性能和显卡的提升,电脑如何提高显卡性能?电脑提高显卡性能的图文教程...
  7. static_cast 和 reinterpret_cast区别
  8. HttpClient发送Https请求报 : unable to find valid certification path to requested target
  9. VMware12设置桥接网络
  10. 别自学了!雪峰教你玩模块,RF射频知识轻松掌握