6.1 背景
1)竞争条件:多个进程并发访问和操作同一数据且执行结果与访问发生的特定顺序有关。
6.2 临界区问题
1)临界区:在该区中进程可能改变共享变量、更新一个表、写一个文件等;
2)引入临界区之后典型进程Pi通用结构如图;
3)临界区特征:当一个进程进入临界区,没有其他进程可被允许在临界区内执行;
4)临界区问题:设计一个以便进程协作的协议;
5)临界区问题满足要求:
a)互斥;
b)前进;
c)有限等待;
6)操作系统临界区问题解决:
a)抢占内核(有竞争条件);
b)非抢占内核(无竞争条件);
6.3 Peterson算法
1)思想:进程想进入临界区,先表明一下意向(flag[i]=true),然后很客气的让其他想进入临界区的进程先进入(turn=j),以解决临界区问题,算法表示如下图&#