操作系统笔记 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