
每个进程都需要一些资源来完成其执行. 但是,资源是按顺序授予的.
此线程需要一些资源. 如果资源可用,则操作系统将授予该资源,否则让进程等待. 线程使用它并在完成后释放它.
死锁是指每个计算机进程正在等待分配给另一个进程的资源的情况. 在这种情况下,由于所需的资源是由等待释放其他资源的其他进程保留的,因此不会执行任何进程.
让我们假设有三个线程P1,P2和P3. 存在三个不同的资源R1,R2和R3. R1分配给P1,R2分配给P2,R3分配给P3.
过一会儿,P1要求R2使用R1. P1被挂起,因为没有R2就无法完成. P2还要求P3使用R3. P2也停止执行,因为没有R3就无法继续执行. P3还需要P1使用R1死锁是因为资源竞争造成的僵局,因此P3也停止执行.

在这种情况下,三个线程之间将形成一个循环. 没有进展,他们在等待. 由于所有进程都被阻止,因此计算机无响应.
高级死锁饥饿
死锁是指没有进程被阻止且没有进程继续
饥饿是当低优先级进程被阻止而高优先级进程继续时.
死锁是无限等待.

饥饿是一个漫长的等待,但不是无限的.
每个死锁总是很饿.
每个饥饿都不必陷入僵局.
请求的资源被另一个进程阻止.
请求的资源被优先级较高的进程连续使用.

互斥时死锁是因为资源竞争造成的僵局,保持和等待,抢占和循环等待不会同时发生,并且会发生死锁.
发生这种情况的原因是优先级和资源管理不受控制.
互斥
只能以互斥的方式共享资源. 这意味着如果两个进程不能同时使用同一资源.
保持并等待

该过程在等待某些资源的同时保留了一些资源.
不可抢占
计划的线程将一直执行到完成为止. 调度程序无法同时调度其他进程.
循环等待
所有进程必须以循环方式等待资源,以便最后一个进程正在等待第一个进程拥有的资源.
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-179846-1.html
中国俗语"关门打狗"
但我相信
假
如果我们不趁机加强南海诸岛的军事存在