首页 > 编程知识 正文

互斥锁的关键字,锁闭量测量方法

时间:2023-05-03 07:08:19 阅读:150245 作者:1135

不确定性:如果某个操作不是原子的,则在执行过程中,进程调度会根据上下文切换到另一个进程,从而可能会产生意外的结果。 此外,由于进程调度可能发生在其操作的任意时刻,因此,具有不确定性死锁3360的多个进程彼此等待(或彼此等待释放自己所需的资源),从而导致饥饿的:进程在CPU调度极限区域:进程中,需要操作读和写等共享资源的码区域极限区域的特征3360排他性: 一次最多只能有一个进程位于临界区域(同一时刻只允许一个) (前进原则:(1 (如果一个进程试图进入临界区, 一定要在有限时间内等待关键部分实现(3360方法1: )禁用关键部分)在进入关键部分之前中断。 在执行关键部分的代码后恢复缺点) :1 )禁用中断不仅禁用上下文切换时钟中断,而且禁用各种外围设备的中断,因此关键单元2 .单CCD 其他CPU调度其他进程进入临界区域的方法2:锁定:通过组合几个原子指令(如test_and_set:用一个机器指令完成多项工作,不中断)来实现(whhat )消耗持续支持的CPU资源。 (通过在被阻止时进入休眠并加入队列,可以减少CPU资源的浪费。 )适用于多处理器和多处理器的缺点: [第三点死锁可以通过颠倒优先级解决] (https://img-blog.csdn img.cn/2021052723836398.png? x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text _ a hr0 CHM6ly9ibg9nlmnzzg4u bmv0L2 PP dgk [信号量实现] https://img-blog.csdn img.cn/2021052811213734.png? x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text _ a hr0 CHM6ly9ibg9nlmnzzg4u bmv0L2 PP dgk up: sem; sem=0(如果待机队列必须为空)从待机队列中唤醒休眠过程并执行down功能: )。 排他信号量mutex2)条件同步:信号量的初始值被设置为0 (表示可用空闲资源的数目); 信号量为0时,信号量的绝对值通过设定表示当前等待的进程数的*信号量的初始值1,可以将多个进程放入临界区域*互斥量mutex:信号量取0或1,0表示临界区域解锁,1表示互斥* 实现生产者和消费者问题:通过3个信号量mutex(1),empty(n ) (n ) [在此插入图像说明] [ 3359 img-blog.csdn img.cn/20210528210126.pnty ] x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text _ a hr0 CHM6ly9ibg9nlmnzzg4u bmv0L2 PP dgk

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。