博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OS 关于信号量处理中的忙等待问题
阅读量:3948 次
发布时间:2019-05-24

本文共 486 字,大约阅读时间需要 1 分钟。

直接看图:

下面这张图堪称神奇:

问题描述–>套娃行为

在这里插入图片描述
信号量为了时临界区问题不发生忙等待,使用临界区mutex进行处理。临界区mutux的value需要被P1和P2的wait()指令进行操作,然而能否保证对mutex.value进行互斥的操作是一个问题。wait()操作理论上是需要原子的(atomically),实际上是有一些代码构成,实现起来并不能保证互斥。这就产生了mutex.value访问控制的问题。也就产生了CS1’和CS2‘。
保证互斥的算法有以下:
1、硬件指令 TestAndSet Swap 会发生忙等待
2、开关中断忙等待切只适用于单处理系统
3、paterson算法 面包店bakery算法等 也有忙等待
由此可见 ,信号量解决进程互斥的时候忙等待不可避免。

使用信号量的目的一个时因为方便简单,另一个就是能够解决忙等待问题

那么为什么使用信号量,是因为图中对用户进程P1和P2的共享数据S进行忙等待处理的效率比较低,而操作系统的临界区的忙等待的时间比较短,效率高。而且适当的忙等待并非无益(多处理机下,和进程的context上下文切换有关)。

转载地址:http://smgwi.baihongyu.com/

你可能感兴趣的文章
字符串列表的C语言实现:c_strlist
查看>>
客户沟通的方式:礼貌待客沟通方式,技巧推广沟通方式,个性服务沟通方式
查看>>
用弹性工作制留住员工
查看>>
知识=经验×反思2
查看>>
领导者如何发现关键问题
查看>>
学习无为领导力
查看>>
卓越领导看过程
查看>>
领导力与各种循环挑战
查看>>
达成谈判协议 - 避免操之过急
查看>>
销售人说话“十大忌”
查看>>
营销中的“战略非对称”
查看>>
android 如何开关Mediatek开发的Feature
查看>>
Android电话功能各部分深入探讨
查看>>
Android应用技巧总结
查看>>
Android创建sdcard详细图解
查看>>
Android开发:如何实现TCP和UDP传输
查看>>
Android电源管理相关应用技巧分享
查看>>
Android录音失真具体解决方案
查看>>
Android根文件系统相关应用介绍
查看>>
Android文件系统深入剖析
查看>>