进程对加锁后的执行顺序问题

来源:9-7 锁的基础——硬件TSL和XCHG

wxz123

2021-02-15

老师,假设有两个进程a和b,两个程序都对临界区域进行加锁、解锁,当a进入临界区域时,b是不能进入临界区域的,那此时b是会一直等待,直到a走出临界区吗?还是会直接跳过b代码中这个临界区(即加锁、解锁中间这段),直接执行临界区的后面的非临界代码部分?按照课上讲的TSL,我的理解是b会在a没走出临界区前,会一直循环等待,即b是会一直等待,直到a走出临界区,不知道我理解的对不对。。。

写回答

2回答

求老仙

2021-02-20

多进程访问上锁的数据肯定是互斥的。互斥是有cpu指令在支撑。a,b争夺临界区,算法设计得当,比如a先进入,b就无法进入。循环等待是一种手段,b也可以休眠,在a退出的时候唤醒。也可以设计等待队列.

0
0

慕沐0177137

2021-02-16

会进入等待队列的

0
0

大学计算机必修课新讲--编译原理+操作系统+图形学

轻松超越大学课程,前阿里P8专家的实践精华总结

1752 学习 · 157 问题

查看课程