谁在等谁

按等待图:A 占 L1 想要 L2、B 占 L2 想要 L1,waitfor 里 A 在等谁?(打印整个 waitfor 的 A 项) 贯穿本节的等待图模型(判题机不靠时序,这是死锁的确定模型):holds={锁: 持有它的线程}、want

开始练习 →

补全:建等待边

补全 waitfor:线程想要的锁被别人占着,就连一条「等的人→被等的人」的边。 贯穿本节的等待图模型(判题机不靠时序,这是死锁的确定模型):holds={锁: 持有它的线程}、wants={线程: 想要的锁}。想要的锁被别人占着就连一条等

开始练习 →

补全:判有没有死锁

补全 deadlocked:等待图里有环就是死锁。 贯穿本节的等待图模型(判题机不靠时序,这是死锁的确定模型):holds={锁: 持有它的线程}、wants={线程: 想要的锁}。想要的锁被别人占着就连一条等待边。waitfor 交回等待

开始练习 →

补全:数几个在等

补全 blocked:数有几个线程正卡在等锁上。 贯穿本节的等待图模型(判题机不靠时序,这是死锁的确定模型):holds={锁: 持有它的线程}、wants={线程: 想要的锁}。想要的锁被别人占着就连一条等待边。waitfor 交回等待边

开始练习 →

活锁是什么

活锁指的是【0】。 活锁/饥饿模型:polite(rounds)——两线程对称礼让(都发现对方也要就退回重来),谁也拿不全,交回完成数(对称下 0);starved(schedule, threads)——交回从没被调度到的线程(被饿死的)

开始练习 →

饥饿是什么

饥饿指的是【0】。 活锁/饥饿模型:polite(rounds)——两线程对称礼让(都发现对方也要就退回重来),谁也拿不全,交回完成数(对称下 0);starved(schedule, threads)——交回从没被调度到的线程(被饿死的)

开始练习 →

死锁和活锁的区别

死锁和活锁最大的区别是【0】。 活锁/饥饿模型:polite(rounds)——两线程对称礼让(都发现对方也要就退回重来),谁也拿不全,交回完成数(对称下 0);starved(schedule, threads)——交回从没被调度到的线程

开始练习 →

对称礼让谁完成了

按活锁模型,两线程对称礼让 5 轮,polite 交回几个完成? 活锁/饥饿模型:polite(rounds)——两线程对称礼让(都发现对方也要就退回重来),谁也拿不全,交回完成数(对称下 0);starved(schedule, thre

开始练习 →

谁被饿死了

按饥饿模型,线程有 A/B/C,调度序列是 A A C,starved 交回谁? 活锁/饥饿模型:polite(rounds)——两线程对称礼让(都发现对方也要就退回重来),谁也拿不全,交回完成数(对称下 0);starved(schedu

开始练习 →

补全:数完成了几个

补全 polite:两线程对称礼让、都退回重来,交回完成数(对称下 0)。 活锁/饥饿模型:polite(rounds)——两线程对称礼让(都发现对方也要就退回重来),谁也拿不全,交回完成数(对称下 0);starved(schedule,

开始练习 →