操作系统_信号量集机制
目录
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:写者进程结束,释放互斥信号量资源;
操作系统_信号量集机制相关推荐
- 操作系统【信号量集机制、“读者-写者”问题】
0.信号量机制应用引导篇.flv 1.信号量集机制解决读写问题深入分析.flv 03:00 2."读者-写者"问题之"顺序执行".flv 07:32 3 ...
- 【操作系统⑧】——信号量与PV操作(下)【哲学家进餐问题 AND型信号量 信号量集机制】
- 操作系统之-----信号量机制
信号量机制是一种卓越成效的进程同步工具,信号量机制已经被广泛的使用于单处理机,和多处理系统的计算机网络中. 信号量S是一个整数,S大于等于零代表可供并发进程使用的资源实体数,当S小于零时则表示正在等待 ...
- 操作系统基础-信号量机制的理解
文章目录 初步了解信号量 临界资源 临界区 进程互斥 进程同步 初步了解信号量 信号量机制的提出,是为了解决进程间关系通信的问题,因为进程间不可能用嘴来说"我在使用这个资源啊,你先等我用完再 ...
- 北理工操作系统实验合集 | API解读与例子
文章目录 传送门 实验报告与源码下载 前言 进程控制API Linux getpid/getppid fork/vfork exit/_exit exec函数族 wait/waitpid pause/ ...
- 从零入门 FreeRTOS操作系统之信号量
从零入门 FreeRTOS操作系统之信号量 1 信号量的基本概念 信号量 (Semaphore) 是一种实现任务间通信的机制,可以实现任务之间同步或临界资源的互斥访问,常用于协助一组相互竞争的任务来访 ...
- 信号量集(主要是AND信号量)
信号量集 当利用信号量机制解决了单个资源的互斥访问后,我们讨论如何控制同时需要多个资源的互斥访问.信号量集是指同时需要多个资源时的信号量操作. (1)AND型信号量集 AND型信号量集是指同时需 ...
- 软硬整合商业思维与架构设计_答问集
欢迎访问 ==>高老师的博客网页 高焕堂:MISOO(大数据.大思考)联盟.台北中心和东京(日本)分社.总教练 EE ...
- 作业调度算法--高响应比优先 操作系统_处理器管理_编程题
操作系统_处理器管理_编程题 作业调度算法–高响应比优先 输入N个作业,输入每个的作业名字,到达的时间,服务的时间,根据高响应比优先算法,计算出每个作业的完成的时间,周转的时间,带权周转的时间(其中保 ...
最新文章
- 浏览器的加载与页面性能优化
- caffe之mac下环境搭建
- 每日英语:Would We Be Healthier With A Vegan Diet?
- 如何找到调用当前方法的方法?
- TCP/IP / 状态转换图
- 这是一名既能打比赛,又会发论文JD AI实验室的算法工程师,CSDN博客专家
- Selenium | 网上教程
- Dorado 7.1.20 发布,Ajax的Web开发平台
- C#元组类型System.ValueTuple
- C语言变量unsafe,Java中Unsafe使用详解
- MySQL数据库入门:建库、建表、插入数据
- 新浪微博android apk,新浪微博app(新浪微博手机版) V9.4.2安卓版
- Skype国际版下载地址(非Tom版)
- idea导出war包并部署在tomact
- matlab 水文频率曲线,水文频率曲线matlab
- 多人远程同时使用谷歌浏览器
- 戏剧之家杂志戏剧之家杂志社戏剧之家编辑部2022年第18期目录
- python程序-小说下载
- linux 系统迁移 固态硬盘,系统迁移
- box2d的部分心得
热门文章
- 视频综合平台架构分析
- AccessibilityService-微信自动抢红包
- arm服务器芯片主板,Broadcom的Arm服务器芯片获重生:Cavium发布双插槽ThunderX2
- domain adaptation 小综述
- MySQL日记——索引优化
- 计算机性能和显卡的提升,电脑如何提高显卡性能?电脑提高显卡性能的图文教程...
- static_cast 和 reinterpret_cast区别
- HttpClient发送Https请求报 : unable to find valid certification path to requested target
- VMware12设置桥接网络
- 别自学了!雪峰教你玩模块,RF射频知识轻松掌握