进程对加锁后的执行顺序问题
来源:9-7 锁的基础——硬件TSL和XCHG

wxz123
2021-02-15
老师,假设有两个进程a和b,两个程序都对临界区域进行加锁、解锁,当a进入临界区域时,b是不能进入临界区域的,那此时b是会一直等待,直到a走出临界区吗?还是会直接跳过b代码中这个临界区(即加锁、解锁中间这段),直接执行临界区的后面的非临界代码部分?按照课上讲的TSL,我的理解是b会在a没走出临界区前,会一直循环等待,即b是会一直等待,直到a走出临界区,不知道我理解的对不对。。。
写回答
2回答
-
多进程访问上锁的数据肯定是互斥的。互斥是有cpu指令在支撑。a,b争夺临界区,算法设计得当,比如a先进入,b就无法进入。循环等待是一种手段,b也可以休眠,在a退出的时候唤醒。也可以设计等待队列.
00 -
慕沐0177137
2021-02-16
会进入等待队列的
00
相似问题