2.11进程同步和互斥及其实现方法

一,什么是进程同步:

并发性带来了异步性,有时需要进程同步来解决这种异步问题,

进程同步:指的是进程需要有先后顺地完成工作推进,当进程之间需要相互配合完成工作时

 

二,什么是进程互斥:

1,临界资源:我们把一个时间段只允许一个进程使用的资源叫临界资源。许多的物理设备(摄像头,打印机)属于临界资源,此外许多的变量,数据,内存缓冲区都属于临界资源

2,进程互斥:对临界资源的访问,需要互斥的进行,同一段时间内只允许一个进程访问该资源

3,实现互斥代码的四个部分:

1)进入区:检查是否可以进入临界区,如果可以进入,就对其上锁,不让别的进程进入

2)临界区:访问和使用临界资源

3)退出区:负责解开临界资源的锁

4)剩余区:其余代码部分

4,进程互斥需要遵循的原则:

1)空闲让进:临界区空闲时,应该运行一个进程访问

2)忙则等待:临界资源正在被访问时,其它试图访问临界资源的进程需要等待

3)有限等待:要在有限时间内进入临界区,保证不会饥饿

4)让权等待:进不了临界区的进程,需要释放处理机,防止忙等

 

三,进程互斥的软件实现方法:

1,单标志法

1)在进入区只检查,不上锁

2)在退出区把临界资源的使用权交给另一个进程

3)主要问题:不遵循空闲让进原则

 

 

2,双标志先检查

1)在进入区先检查后上锁,退出区解锁

2)主要问题:不遵循忙则等待原则

 

 

3,双标志后检查

1)在进入区先

上锁后检查,退出区解锁

2)主要问题:不遵循空闲让进,有限等待原则,可能导致饥饿

 

 

4,Peterson算法

1)在进入区主动争取——》主动谦让——》检查对方是否想进,己方是否谦让

2)主要问题:不遵循让则等待原则,会发送忙等

 

 

 

四,进程互斥的硬件实现方法:

1,中断屏蔽方法

实现:利用开/关中断指令实现,与源语的实现思想相同,即某个进程开始访问临界区到结束为止都不允许被中断,也就不能发送进程切换,因此也就不可能发生两个同时访问临界区的情况

优点:简单,高效

缺点:不适于多处理机,只适用于操作系统内核进程,不适用于用户进程(因为开/关中断指令只能运行在内核态,这组指令如果让用户随意使用很危险)

2,TestAndSet指令:

 

 

3,swap指令:

 

 

 

 

 

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值