僵局(deadlock)和操作系统操作系统中的饥饿(starvation in operating system os)的区别

操作系统是计算机上运行的最基本的软件。它负责管理计算机的内存和进程,以及屏蔽使用它的应用程序的硬件细节。计算机的操作系统还确保资源公平地分配给用户和程序,而不是在进程之间平均分配。公平调度系统允许一个进程使用CPU,而另一个进程在队列中等待。因此,每个线程都可以获得对有限资源的足够访问,从而避免了两种最常见的情况,否则会延迟进程:死锁和饥饿。两者都是相关概念,流程无法访问资源。本文重点介绍了在不同...

操作系统是计算机上运行的最基本的软件。它负责管理计算机的内存和进程,以及屏蔽使用它的应用程序的硬件细节。计算机的操作系统还确保资源公平地分配给用户和程序,而不是在进程之间平均分配。公平调度系统允许一个进程使用CPU,而另一个进程在队列中等待。因此,每个线程都可以获得对有限资源的足够访问,从而避免了两种最常见的情况,否则会延迟进程:死锁和饥饿。两者都是相关概念,流程无法访问资源。本文重点介绍了在不同方面比较两者的一些要点。

僵局(deadlock)和操作系统操作系统中的饥饿(starvation in operating system os)的区别

什么是僵局(deadlock)?

死锁是一种情况,在这种情况下,一组线程被阻塞,因为每个拥有资源的进程都试图访问另一个进程拥有的其他一些资源,而这些资源最终阻止了公平的系统调度。当以下四个条件成立时,就会出现死锁情况:互斥意味着一次只能有一个进程访问一个资源;无抢占条件意味着资源只能由持有该资源的进程自动释放;Hold&wait是指一个拥有资源的进程可以请求其他进程拥有的额外资源;循环等待是指两个或多个进程卡在一个循环链中,等待每个进程释放各自的资源。

 

僵局(deadlock)和操作系统操作系统中的饥饿(starvation in operating system os)的区别

什么是饥饿(starvation)?

饥饿是进程无限期地进入等待期时出现的一种情况,因为由于访问同一资源的高优先级进程的恒定流,低优先级进程永远没有机会访问该资源。这是一个资源管理问题,因为进程被拒绝访问它所需的资源,从而将进程推入一个不确定的等待期。之所以会发生这种情况,是因为它所需的资源从未分配给进程,从而导致进程缺乏资源,因此得名。避免饥饿的最佳方法是使用老化技术,它逐渐增加等待时间较长的进程的优先级,以确保公平的调度系统。

 

操作系统中死锁和饥饿的区别

  1. 僵局和饥饿的定义

死锁和饥饿都是相关的概念,它们阻止了公平的系统调度,进程被阻止访问资源。顾名思义,死锁是指一组线程或进程被阻塞的情况,因为每个进程都在等待获取另一个进程占用的资源,从而导致程序停止运行的死锁情况。另一方面,饥饿是由死锁触发的,死锁导致进程冻结,因为低优先级进程被拒绝访问分配给高优先级进程的资源。

  1. 条件

死锁是指线程或进程进入等待期时发生的一种特定情况,因为它请求的系统资源被另一个进程占用,而另一个进程又在等待另一个进程释放其资源,从而产生死锁。这是由于资源利用率低造成的。饥饿是一种不确定的延迟状态,低优先级进程被拒绝访问它所需的资源,因为资源正被分配给另一个高优先级进程。它是一个资源管理问题,迫使系统只将资源分配给高优先级进程。

  1. 死锁与饥饿的表征

死锁是在以下四种情况同时发生时所导致的饥饿的最终形式:互斥、不抢占、保持和等待和循环等待。死锁条件只发生在所有四个条件都保持为真的系统中。饥饿是基于不同的条件发生的,例如当没有足够的资源可以循环,进程的优先级开始降低,或者当流程开始将资源不受控制地传递给其他进程时。如果低优先级进程请求为最高优先级进程保留资源,则该进程将永远饿死。当资源被任意分配,导致进程等待较长时间时,也会出现饥饿。

  1. 预防

饥饿可以通过使用适当的具有优先级队列的调度算法来防止,该算法实际上也使用了老化技术—一种将老化因子添加到每个请求的优先级的调度技术,这意味着它增加了等待了很长时间的低优先级进程的优先级。同时,为项目提供更多的资源也应该避免资源的持续拥挤。为了防止系统陷入死锁,必须拒绝进程访问一个或多个资源,同时等待其他资源,并且一次只能允许一个进程访问一个资源。

死锁与饥饿:比较图

僵局(deadlock)和操作系统操作系统中的饥饿(starvation in operating system os)的区别

 

总结 - 僵局(of deadlock) vs. 饥饿(starvation)

死锁和饥饿都是多处理操作系统或分布式系统中的相关概念,它们会导致一个或多个线程或进程陷入等待所需资源的状态。死锁是一种情况,当一个或多个进程请求访问同一资源时导致进程冻结,而饥饿是由死锁引起的,死锁将进程推到无限延迟状态,因为进程被拒绝访问高优先级进程所拥有的资源,并且需要永远等待。

  • 发表于 2021-06-25 16:03
  • 阅读 ( 408 )
  • 分类:IT

你可能感兴趣的文章

死锁(deadlock)和饥饿(starvation)的区别

...饿主要发生在许多线程竞争有限的资源时。 什么是死锁(deadlock)? 死锁是两个线程或进程等待对方完成任务时发生的一种情况。他们只会挂断电话,永远不会停止或完成任务。在计算机科学中,死锁随处可见。在事务数据库中,...

  • 发布于 2020-10-23 22:21
  • 阅读 ( 525 )

黑莓os 5(blackberry os 5)和操作系统6(os 6)的区别

...k visual, easy multitasking, faster browsing and **art organization. 黑莓操作系统是RIM(Research in Motion)为黑莓智能**开发的移动操作系统。这是用C++开发的专有软件。黑莓操作系统支持多任务处理。第三方开发者可以使用blackberry API(应用程...

  • 发布于 2020-10-23 23:12
  • 阅读 ( 327 )

powershell在windows以外的其他操作系统上工作吗?

...者FredSavage187想知道PowerShell是否适用于除Windows以外的其他操作系统: My computer science professor recently gave us a quiz and one of the questi*** was, “True or False: PowerShell works on Windows, Mac, and Linux”. The correct answer was “false” and he maintains that Po...

  • 发布于 2021-04-07 22:15
  • 阅读 ( 195 )

您可以使用虚拟操作系统访问被阻止在主机操作系统的hosts文件中的网站吗?

...置的任何保护。今天的超级用户问答文章讨论了使用虚拟操作系统访问被阻止在主机操作系统的hosts文件中的网站的可能性。 今天的问答环节是由SuperUser提供的,SuperUser是Stack Exchange的一个分支,是一个由社区驱动的问答网站分...

  • 发布于 2021-04-11 07:56
  • 阅读 ( 287 )

僵局(deadlock)和操作系统操作系统中的饥饿(starvation in operating system os)的区别

操作系统是计算机上运行的最基本的软件。它负责管理计算机的内存和进程,以及屏蔽使用它的应用程序的硬件细节。计算机的操作系统还确保资源公平地分配给用户和程序,而不是在进程之间平均分配。公平调度系统允许一个...

  • 发布于 2021-06-25 16:03
  • 阅读 ( 408 )

多道程序设计(multiprogramming)和操作系统中的多任务处理(multitasking in operating system)的区别

操作系统是计算机最重要的软件和核心,它不仅管理计算机内部的内存和进程,而且允许用户运行应用软件。它是一组程序的集合,抽象出系统的硬件,并向用户呈现一个完整的虚拟机。除了跟踪文件或目录、控制外围设备、向...

  • 发布于 2021-06-25 18:13
  • 阅读 ( 683 )

网络操作系统(network operating system)和分布式操作系统(distributed operating system)的区别

网络操作系统和分布式操作系统的主要区别在于,网络操作系统提供与网络相关的功能,而分布式操作系统通过网络连接多**立的计算机,以执行类似于一台计算机的任务。 操作系统是用户和硬件之间的接口。它控制程序的执行...

  • 发布于 2021-06-30 19:18
  • 阅读 ( 852 )

单用户(single user)和多用户操作系统(multiuser operating system)的区别

单用户操作系统和多用户操作系统的主要区别在于,在单用户操作系统中,一次只能有一个用户访问计算机系统,而在多用户操作系统中,一次可以有多个用户访问计算机系统。 操作系统(OS)是用户和硬件之间的接口。它执行...

  • 发布于 2021-06-30 23:02
  • 阅读 ( 1118 )

单片(monolithic)和分层操作系统(layered operating systems)的区别

单片操作系统和分层操作系统的主要区别在于,在单片操作系统中,整个操作系统在内核空间中工作,而分层操作系统有许多层,每个层执行不同的任务。 操作系统管理整个系统的功能。它处理进程管理、任务调度、设备和文...

  • 发布于 2021-07-01 07:21
  • 阅读 ( 648 )

客户(client)和服务器操作系统(server operating system)的区别

客户机和服务器操作系统的主要区别在于,客户机操作系统在终端用户使用的设备(如台式机和其他便携式设备)中工作,而服务器操作系统在称为服务器的特殊设备上运行。 操作系统是用户和硬件之间的接口。它执行多个重...

  • 发布于 2021-07-01 08:26
  • 阅读 ( 354 )
魏琳琦东
魏琳琦东

0 篇文章

相关推荐