sách gpt4 ăn đã đi

cơ sở dữ liệu - Sự khác biệt giữa các thuật toán ngăn chặn bế tắc "chờ-chết" và "vết thương-chờ" là gì?

In lại 作者:太空狗 更新时间:2023-10-30 01:39:02 26 4
mua khóa gpt4 giày nike

wait-die 和 wound-wait 算法有什么区别?

这两种死锁预防技术似乎都在做同样的事情:回滚旧进程。

两者有什么区别?

请提供一个合适的例子来对比这两种算法。

câu trả lời hay nhất

Wait-Die 方案

这是一种防止死锁的非抢占式技术。当事务 TN 请求当前由 Ttôi 持有的数据项时,只有当 TN 的时间戳小于 Ttôi 时才允许等待(即 TN 比 Ttôi ),否则 TN 被杀死(“死亡”) .

在这个方案中,如果一个事务请求锁定一个资源(数据项),它已经被另一个事务持有冲突锁,那么可能会发生以下两种可能性之一:

  1. 时间戳(TN) < 时间戳(Ttôi) -即请求冲突锁的 TN 比 Ttôi -然后 TN 被允许“等待”直到数据项可用。

  2. 时间戳(TN) > 时间戳(Ttôi) -也就是说 TN 比 Ttôi 年轻 -然后 TN 被杀死(“死亡”)。TN 稍后以随机延迟重新启动,但具有相同的时间戳 (n)。

此方案允许较旧的事务“等待”但杀死较新的事务(“死亡”)。

ví dụ

假设交易T5、T10、T15的时间戳分别为5、10和15。

如果 T5 请求 T10 持有的数据项,则 T5 将“等待”。

如果 T15 请求 T10 持有的数据项,则 T15 将被杀死(“死亡”)。

伤口等待方案

这是一种防止死锁的先发制人技术。它与等待死亡方案相对应。当Transaction TN请求Ttôi当前持有的数据项时,只有当 TN 的时间戳大于 Ttôi 的时间戳时才允许等待,否则 Ttôi 被杀死(即 Ttôi 被 TN 伤害)。

在这个方案中,如果一个事务请求锁定一个资源(数据项),它已经被另一个事务持有冲突锁,可能会发生以下两种可能性之一:

  1. 时间戳(TN) < 时间戳(Ttôi),然后 TN 迫使 Ttôi 被杀死——也就是说 TN “伤害” TtôiTtôi 稍后以随机延迟重新启动,但具有相同的时间戳 (k)。

  2. 时间戳(TN) > 时间戳(Ttôi),然后 TN 被迫“等待”直到资源可用。

如果旧事务已经持有锁,该方案允许请求锁的年轻事务“等待”,但如果旧事务请求锁定已持有的项目,则强制暂停(“wound”)年轻事务由年轻的。

ví dụ

同样,假设事务 T5、T10、T15 的时间戳分别为 5、10 和 15。

如果 T5 请求 T10 持有的数据项,然后数据项将从 T10 被抢占,T10 将被暂停。 (“受伤”)

如果 T15 请求 T10 持有的数据项,则 T15 将“等待”。

Tóm tắt

在这两种情况下,只有在sau đó时间戳进入系统的事务(即较年轻的事务)可能会被终止并重新启动。

关于database - "wait-die"和 "wound-wait"死锁预防算法有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32794142/

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress