2.2 实现缓冲区互斥的基本方法
软件实现方法







硬件实现方法



2.3.3 互斥锁

下面用互斥锁解决经典同步问题
2.3.4 信号量










经典同步问题(做大题再看)
2.3节选择题

皮特森算法:flag实现互斥,turn避免饥饿,选D


x=1
2
2
1
2
1
1
0
选C

选C 局部变量不用互斥 进程P1和P2是不同的进程 所以x是无关的

A负责唤醒处于就绪态的进程 while(就绪/运行)
B轮询 选B
C违背
D 不是说是硬件不会被中断吗?(存疑)
答案:if无法被中断,while一直TRUE时,系统可能会终止

x=0
123456
456123
选B

A 同步
B 是x.signal
C x没有值
D对




C.if 资源不够 进入阻塞态
A 皮特森 turn解决饥饿 不会一直等待 有限等待 有while 没有做到让权等待
在这里插入图片描述
I 互斥
II 空闲让进
III 有限等待
IIII 忙则等待 (有的会一直占用处理机) 不一定非得实现 如皮特森算法
选C



















