操作系统——多进程

进程同步与互斥

有时并发的几个进程为了完成某个任务,需要按一定顺序先后进行操作,这种顺序就是直接制约关系,又叫进程同步。在同步操作时,多个进程需要访问同一个资源,这个资源叫临界资源。一个进程访问临界区时,其他进程都无法访问,这叫间接制约关系,也叫互斥。
互斥访问临界资源代码的组成部分:

  • 进入区:负责检查能否进入临界区,如果可以,就设置正在的访问的标志,可以理解为加锁。
    临界区:访问临界资源并操作数据的代码段。
  • 退出区:解除正在访问临界区的标志,可以理解为解锁。
    剩余区:其他操作。

互斥访问的原则:

  • 空闲让进:临界区没有进程时,可以允许请求访问临界区的进程访问。
  • 忙则等待:如果有线程在访问临界区,其他线程必须等待。
    有限等待:进程等待的时间必须是有限的。
  • 让权等待:如果进程无法访问临界区,那么就得释放处理机。
    互斥访问算法:
  • 单标志法:设计一个“标志”,是布尔型变量,如果想访问临界区就设为true。在进入区只检查标志,不进行上锁。违反了忙则让进原则。
  • 双标志先检查:标志是一个布尔型变量的数组,如果线程1想访问临界区,就把下标为1的元素设为true,先检查标志再加锁。如违反忙则等待原则
  • 双标志后检查:先加锁后检查。违反空闲让进、有限等待。
  • Pterson算法:在双标志后检查加法中遇到都想进入线程。违反让权等待原则。
  • <
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值