创建死锁的过程是什么?

时间:2016-03-31 20:07:16

标签: algorithm memory operating-system traffic

我在StackOverflow上看到了很多关于如何创建死锁的答案,但是编写了代码。 我想以更简单的方式理解。我想知道重建这个死锁的步骤是哪一步。我不是在寻找代码,而是在寻找更多步骤。 Traffic Deadlock

感谢您的时间。 对于链接图片,我需要10点声望才能发布图片。

3 个答案:

答案 0 :(得分:0)

最简单的方式 - 流程A 必须等待流程B 先完成,以便 A 完成它'工作(让 A 需要 B 的输出来进行某些计算),同样的事情发生在 B :它必须等待进程 A 的输出才能完成。

我希望这对你来说已经足够清楚了。由于您特别要求不使用代码,因此我不会编写任何代码,因为它可能很容易找到死锁代码。但基本上,它与汽车相互阻挡的情况类似。

答案 1 :(得分:0)

死锁中的“锁定”来自锁定文件或数据库表的能力,以防止多个进程同时更新同一文件/表。

例如,进程1锁定表A,进程2锁定表B.如果进程1想要更新表B但发现它已锁定,则它必须等待进程2释放它。如果进程2必须更新表A,它也将被锁定。

这种情况是一个死锁,两个进程都在等待释放锁。

答案 2 :(得分:0)

We've both got a steak to eat, but we're low on silverware.

I've got a fork to eat it with, but you've got the only knife, so I have to wait for you to finish with it before I can cut my meat.

You've got a knife to cut it with, but I've got the only fork, so you have to wait until I'm done before you can grab the fork to hold it down.

Looks like we're gonna go hungry. That's a deadlock.

The standard solution is just to make sure that if anyone ever needs a knife and a fork at the same time, then they have to pick up the fork first.