在计算机系统中,内存打印机、cpu、磁带机等可被视为资源,由于它们的需求,需要分配给各种进程。通常,流程首先发出使用资源的请求,然后在完成其作业后,流程释放该资源以供其他流程使用。当一个集合中所有被阻塞的进程都占用一个资源并等待集合中其他进程占用的资源时,就会出现死锁的情况。
一个简单的例子是一个有两个磁带机的系统,两个进程分别占用一个磁带机并等待另一个磁带机作为进一步的需求。
值得一提的是,如果这四个条件同时成立,就会出现死锁情况–
另一方面,当一个特定的过程需要无限期等待时,饥饿就会发生,因为它永远没有机会继续下去。在这种情况下,进程或事务要么无限期等待,要么一次又一次地进入restarte模式。这种情况可能发生在死锁情况下,即同一进程每次都可能成为牺牲品并被回滚。它通常存在于基于适当性的调度系统中。
它发生在一个优先级较低的进程由于不断有优先级高于它的进程流而永远得不到资源时,因此该进程可能必须永远等待。解决饥饿的方法是确保一个独立的管理者管理资源的分配,确保每个进程在某个时间点获得资源。必须避免随机和不受控制的选择或竞争,以防止饥饿。僵局意味着饥饿,但饥饿并不意味着僵局。
因此,僵局和饥饿是不同的。当集合中的任何进程都无法前进时,就会发生死锁,因为其他进程占用了所需的资源。另一方面,当一个进程等待一段不确定的时间来获取它所需要的资源时,就会发生饥饿。
死锁和饥饿的比较:
| 僵局 | 饥饿 |
定义 | 当集合中的任何进程都无法向前移动时,就会发生死锁,因为其他进程占用了所需的资源 | 当一个进程等待一段不确定的时间来获取它所需要的资源时,就会发生饥饿。 |
其他名称 | 循环等待 | 活锁 |
产生的条件 | 这四个条件同时产生:互斥、等待等待、无先发制人和循环智慧 | 不受控制的资源管理过程优先级被严格执行使用随机选择资源的安全性 |
避免/预防技术 | 无限资源不允许共享不允许抢占资源在开始时发出的所有请求 | 每个资源的独立管理者不严格执行优先级避免随机选择提供更多资源 |
进展 | 任何进程都无法取得进展 | 除了受害者进程之外,其他进程也可以进行 |
结束 | 需要外部干预 | 可能需要也可能不需要外部干预 |
饥饿与饥饿 虽然两者都谈到了对食物的需求,但饥饿和饥饿之间有着显著的区别。如果我们只把饥饿和饥饿看作是两个词,那么这两个词就有几个事实变得清楚了。饥饿既是动词又是名词,饥饿只是动词。饥饿的名词形式是...
...饿主要发生在许多线程竞争有限的资源时。 什么是死锁(deadlock)? 死锁是两个线程或进程等待对方完成任务时发生的一种情况。他们只会挂断电话,永远不会停止或完成任务。在计算机科学中,死锁随处可见。在事务数据库中,...
饥饿(hunger)和渴求(craving)的区别 饥饿和渴望是表明我们需要食物的两种感觉。一旦你感到饥饿或对食物的渴望,你会试图通过吃来满足这种需求。然而,要知道饥饿和渴望之间有着明显的区别。当你饿的时候,你会吃任何东...
虽然食欲和饥饿在一些日常对话中是相关的,同义的,但在技术上是有区别的。两者都与个人想吃的食物有关。在许多情况下,它们是进食的直接动力,而且两者都会对个人健康产生严重影响。由于营养是个人健康最重要的因素...
饥饿杰克vs汉堡王 说到汉堡包,大家都知道有两个名字是最受欢迎的,他们分别叫汉堡王和饥饿杰克。不要对不同的品牌太过困惑,因为它们最初隶属于一家公司,那就是汉堡王公司。 Insta汉堡王由基思J。克莱默和马修在1953...
...介绍了在不同方面比较两者的一些要点。 什么是僵局(deadlock)? 死锁是一种情况,在这种情况下,一组线程被阻塞,因为每个拥有资源的进程都试图访问另一个进程拥有的其他一些资源,而这些资源最终阻止了公平的系统调度...
...een Anorexia Nervosa and Bulimia Nervosa is that Anorexia Nervosa involves starvation on purpose whereas Bulimia Nervosa is characterization binge eating followed by purging. 什么是神经性厌食(anorexia nervosa)? 神经性厌食症是一种进食障碍,患者因害怕体重增加而避...
饥饿的主要区别(main difference hunger) vs. 食欲(appetite) Hunger and appetite are desires related to food. Both prompt us to eat. However, there is a distinctive difference between hunger and appetite. Hunger is a physical need caused by the chemical changes in your body. Appetit...
... 关键术语 死锁,死锁避免,死锁预防 什么是死锁预防(deadlock prevention)? 死锁预防是一种机制,它确保至少有一种死锁的必要条件永远不会发生。通常,不可能实现死锁预防。为了防止出现死锁情况,不必知道所有现有资源、...
在操作系统中,死锁和饥饿的区别在于死锁状态下没有进程继续进行并被阻塞,而饥饿状态下低优先级进程被阻塞,高优先级进程继续进行。 操作系统是计算机科学中最重要的概念之一。如果你想掌握计算机科学,你需要学习...