操作系统笔记 CH6 Process Synchronization

race condition: 多个进程并发访问和操作同一数据,结果与访问顺序有关

critical section

critical section: 进程可能改变共同变量,更新表,写文件的代码段

entry section: 实现请求进入其临界区的代码段

临界区问题三要求:

  • mutual exclusion 同一时间临界区存在一个进程
  • progress 如果一个进程想进入临界区,它终将成功
  • bounded waiting 从一个进程做出进入临界区的请求,到该请求被允许,其他进程允许进入临界区的次数有限

kernel code可能会出现race condition

两种方法: 1.preemptive kernel 2.non-preemptive kernel 抢占内核更适合real-time programming,且更responsive

Peterson’s solution

software-based solution to the critical section problem 基于软件

synchronization hardware

基于硬件

特殊硬件指令 原子地(不可中断)检查、修改、交换字内容

disable interrupt, a lock

TestAndSet()

返回的是原来的值,进入过testandset,之后就变成true

实现有限等待互斥:


最后修改于 2020-02-28