【学习笔记】第二章——进程同步、进程互斥、进程互斥的硬件/软件实现方法

一. 进程同步 && 进程互斥

  • 由于进程有异步性,因此需要有同步存在。
    同步也叫直接制约关系,指为完成某任务而建的两或多个进程,需要在某些位置协调各自的工作次序而产生的制约关系。进程间的直接制约关系就是源于他们之间的相互合作。

  • 各个并发进程总要共享一些系统资源(内存、打印机等)

  • 两种资源共享方式互斥 && 同时

  • 互斥共享方式:同一时间段,只允许一个进程访问

  • 同时共享方式:同一时间段,可允许多个进程访问

  • 临界资源:同一时间段,只允许一个进程使用的资源(摄像头、内存缓冲区等)

  • 对临界资源的访问,必须互斥地进行
    在这里插入图片描述

四个区域

  • 进入区:负责检查是否可以进入临界区;可进则设置正在访问临界资源的标志(上锁),以阻止其他进程同时进入临界区。
  • 临界区:访问临界资源的代码段
  • 退出区:负责解除正在访问临界资源的标志(解锁)
  • 剩余区:做其他处理
    在这里插入图片描述

四个原则

  • 四个原则:空闲让进、忙则等待、有限等待、让权等待
    在这里插入图片描述

总结:

在这里插入图片描述

二. 进程互斥的软件实现方法

1)单标志法

  • 每个进程进入临界区的权限,只能被另一个进程赋予
  • 可以实现:同一时刻最多允许一个进程访问临界区
  • 问题:违背空闲让进原则
    在这里插入图片描述
    在这里插入图片描述

2)双标志先检查法

  • 思想:用布尔型数组,标记各进程想进入临界区的意愿
  • 各进程进入临界区前,先检查当前有没有别的进程想进入临界区,无则设flag[i],然后访问
  • 问题:违反忙则等待原则
  • 原因:进入区的检查 && 上锁无原子性
    在这里插入图片描述

3)双标志后检查法

  • 结合前两个算法而成
  • 解决了忙则等待的问题,但是违反了空闲让进有限等待。会产生饥饿
    在这里插入图片描述

4)Peterson 算法

  • 让让让!解决了之前的问题
  • trun:优先让该进程进入临界区
  • 问题:未遵循让权等待原则
    在这里插入图片描述
    在这里插入图片描述

总结

在这里插入图片描述

三. 进程互斥的硬件实现方法

1)中断屏蔽方法

  • 利用开/关中断指令实现
  • 简单高效,但不适用于多处理机不适用于用户进程
    在这里插入图片描述

2)TestAndSet 指令

这里没怎么看,日后发现重要的话再复习吧 T T

在这里插入图片描述

3)Swap 指令

  • 原子性
    在这里插入图片描述

总结

在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值