计算机操做系统(十二):进程同步和互斥

计算机操做系统(十二):进程同步和互斥

来源王道考研视频:
https://www.bilibili.com/video/BV1YE411D7nH=18

基本概念

异步性:各并发执行的进程以各自独立的、不可预知的速度向前推进。

同步亦称直接制约关系,它是指为完成某种任务而建立的两个或者多个进程,这些进程因为需要在某些位置上协调他们的工作次序而产生制约关系,进程间的直接制约关系就是源于他们之间的相互合作。

两种资源共享的方式:

  1. 互斥共享:系统中的某些资源,虽然可以提供给多个进程使用,但是一个时间段内只允许一个进程访问该资源。
  2. 同时共享:允许一个时间段内由多个进程同时对它们进行访问。

为了实现对临界区资源的互斥访问,同时保证系统的整体性能,需要遵循以下原则:

  1. 空闲让进
  2. 忙则等待
  3. 有限等待
  4. 让权等待

总结

image-20220119180339859

双标志先检查

  • 算法思想:设置一个布尔型的数组flag[],数组中的各个元素用来标记各进程想要进入临界区的意愿。比如:“flag[0]=ture”意味着0号进程P0现在想要进入临界区。每个进程在进入临界区之前先检查当前有没有别的进程想进入临界区,如果没有,则把自身对应的flag[i]设为true,之后开始访问临界区。

image-20220119181612038

Peterson算法

  • 双方都想进入临界区,那么可以让进程尝试孔融让梨,主动让对方使用临界区。

image-20220119182257391

进程互斥的硬件实现方法

中断屏蔽

  • 利用开/关中断指令实现

image-20220119192150253

若刚开始lock是false, 则TSL返回的old值为false, while循环条件不满足,直接跳过循环,进入临界区。若刚开始lock是true, 则执行TLS后old返回的值为true, while循环条件满足,会一 直循环,直到当前访问临界区的进程在退出区进行“解锁”。

相比软件实现方法,TSL指令把“上锁”和“检查”操作用硬件的方式变成了一气呵成的原子操作。
优点:实现简单,无需像软件实现方法那样严格检查是否会有逻辑漏洞;适用于多处理机环境

缺点:不满足让权等待的原则。

Swap指令(XCHFG指令)

  • 用硬件实现,不允许中断

C语言逻辑:

image-20220119193203955

来源:BKSW.

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年1月16日
下一篇 2022年1月16日

相关推荐