操作系统算法:如何利用信号量实现优先级(从读者写者问题引发的联想)
来源:互联网 发布:win10删除windows.old 编辑:程序博客网 时间:2024/05/17 05:12
先搞清楚什么是优先级高,我认为应该满足下面两个方面:
1、当低优先级进程获得临界资源时,高优先级进程能够抢得临界资源的访问权
2、当优先级高的进程获得临界资源的访问权时,低优先级必须等待期运行完毕才有机会获得临界资源的访问权
假设两者的临界资源是Z,a,b进程。
为了实现第一个,则定义一个互斥变量,来保证a进程每个时候在z上的只有一个,这样一来,当其释放后阻塞在Z上的进程只有b了,则满足了(1)
为了满足第二个,则定义一个整形型变量,来统计每个时候运行的b进程的数目,只有当数目为0时才申请和释放临界资源,变相的使a不能在b运行时获得临界资源访问权
然后分析所要优先的进程是否能够同时运行(即:同一时间能够运行几个,一个或多个)
1、同一时间能够运行多个(类似于读者优先 )则只要按照上面的来就行了
2、同一时间只能运行一个进程(),那么就不可能在现有的条件下满足2,策略:再定义一个互斥信号量,来封装Z,进而实现以上两点
代码参考:读者写者问题
- 操作系统算法:如何利用信号量实现优先级(从读者写者问题引发的联想)
- 有名信号量实现读者-写者问题(读者优先)
- “读者-写者问题”的写者优先算法实现
- 读者写者问题--使用信号量的读者优先与写者优先程序分析
- 读者写者问题--使用信号量的读者优先与写者优先程序分析
- 优先读者的读者/写者问题的算法设计
- 用信号量解决读者写者问题
- 使用信号量解决读者写者问题--读者优先
- 操作系统中读者-写者问题的一点疑问
- 有名信号量实现读者-写着问题(写者优先)
- 操作系统—读者写者问题
- 优先读者/写者问题—操作系统
- 操作系统之读者与写者问题
- 操作系统 读者写者问题(含有swing)
- 如何用ReentrantReadWriteLock实现读者写者问题,且写者优先级更高
- 有名信号量实现读者-写着问题(公平读写)
- 很有借鉴意义!读者写者问题--使用信号量的读者优先与写者优先程序分析
- 使用信号量解决读者写者问题--写者优先
- SVN命令 二
- Android系统分区理解及分区目录细解
- Android中ListView使用- 网络图片的异步加载
- 2.11 更换SIM卡触发防盗系统(广播接收者触发)
- SVN命令 一
- 操作系统算法:如何利用信号量实现优先级(从读者写者问题引发的联想)
- Linux rpm
- SVN高级
- 树控件与Tab控件的联合响应
- 在Oracle怎样查询表中的top10条记录呢
- JSP使用JavaBean
- Leetcode:Wildcard Matching
- Introduction to Transistors
- java中的负数表示