-
2021-05-14 08:52:38
在某些系统中,为了更好的管理和调度进程及适应系统的功能目标,引入了挂起状态。
引入挂起状态的原因
1.系统有时可能会出现故障或某些功能受到损坏,这时就需要暂时将系统中的进程挂起,以便于系统故障消除后,再将这些进程恢复到原来状态。
2.用户检查自己作业的中间执行情况和中间结果时,应同预想想法不符而产生后,这时用户要求挂起进程,以便进行某些检查和改正。
3.系统中有时负荷过重(进程数过多),资源数相对不足,从而造成系统效率下降。此时需要挂起一部分进程以调度系统负荷,等系统中负荷减轻后在恢复被挂起进程的执行。
4.在操作系统中引入了虚拟存储管理机术后,需要区分进程是驻留在内存还是外存,此时可以用挂起表示驻留在外存。。更多相关内容 -
SQLServer数据库处于恢复挂起状态的解决办法
2020-12-16 15:56:30如果数据库处于一个恢复挂起的状态,并且对数据库做脱机和分离的操作,报出数据库文件不可访问的错误,可能是因为数据库的数据文件和日志文件在数据库正常连接的情况下,文件所在的磁盘脱机了,导致数据库在一段... -
计算机重新启动操作可能处于挂起状态怎么办?
2021-07-16 07:55:42获得更多有趣、好玩、实用的软件/网站在安装 Adobe 软件时“检测到计算机重新启动操作可能处于挂起状态”这个情况,这种情况有可能会导致你的安装程序不彻底,还有就是安装失败也有可能,那是因为系统发现了...获得更多有趣、好玩、实用的软件/网站
在安装 Adobe 软件时“检测到计算机重新启动操作可能处于挂起状态”这个情况,这种情况有可能会导致你的安装程序不彻底,还有就是安装失败也有可能,那是因为系统发现了PendingFileRenameOperations键值的存在,会自动认为上一个安装程序没有完成,因此会提示让重新启动。
PendingFileRenameOperations 键值存放的是当前系统会话的快照,通过它记录了一个未成功进行文件重命名的操作,存放的是当前系统会话的快照,通过它记录了一个未成功进行文件重命名的操作。
不要急,不要慌,一定要认真看哦~
1
第一步
在弹窗的右侧那列菜单栏里,找到运行...点击打开(快捷键WIN+R键),会弹出一个输入命令符的窗口。
2
第二步
在 这个窗口上面,我们输入regedit之后,点击回车键,会进入该命令符对应的注册表编辑器之中。
3
第三步
进入编辑器之后,我们找到HKEY_LOCAL_MACHINE,这个文件夹,点击三角箭头向下打开,之后找到SYSTEM,同样向下箭头打开。
4
第四步
打开SYSTEM之后,我们继续下拉寻找,找到CurrentControlSet这个文件夹后,打开,在文件夹下第一个为Control,点击打开。
5
第五步
打开Control之后,下拉找到Session Manager文件夹,点击一下,在右侧找到PendingFileRenameOperations,右键点击将其删除,之后就能打开了。
-
进程的挂起状态解析
2020-05-16 19:53:48文章目录引言挂起状态是什么?挂起状态和阻塞状态有什么区别?如何主动挂起程序总结 引言 以前对于这个概念始终比较模糊,遂在解决后记录博客,希望帮助到有同样问题的朋友。 挂起状态是什么? 我们一般认为进程有五...引言
以前对于这个概念始终比较模糊,遂在解决后记录博客,希望帮助到有同样问题的朋友。
挂起状态是什么?
我们一般认为进程有五个状态,即新建态,就绪态,阻塞态,运行态,终止态。
而在这些状态之外还存在着一个状态,我们称之为挂起状态
,它既可以是我们客户主动使得进程挂起,也可以是操作系统因为某些原因使得进程挂起。总而言之引入挂起状态的原因有以下几种:用户的请求
:可能是在程序运行期间发现了可疑的问题,需要暂停进程。父进程的请求
:考察,协调,或修改子进程。操作系统的需要
:对运行中资源的使用情况进行检查和记账。负载调节的需要
:有一些实时的任务非常重要,需要得到充足的内存空间,这个时候我们需要把非实时的任务进行挂起,优先使得实时任务执行。定时任务
:一个进程可能会周期性的执行某个任务,那么在一次执行完毕后挂起而不是阻塞,这样可以节省内存。安全
:系统有时可能会出现故障或者某些功能受到破坏,这是就需要将系统中正在进行的进程进行挂起,当系统故障消除以后,对进程的状态进行恢复。
既然我们知道了
挂起状态
引入的原因,那么我们再来看看带有挂起状态的进程状态转移过程:
相比于一般的五个状态的进程状态转移图,我们引入了两种挂起状态的类型,即
就绪挂起状态
和阻塞挂起状态
。它们的区别就是就绪挂起状态其实还是在内存中的,而后者是在外存中的。接下来我们说一说新加入的几个状态转化的步骤:运行状态->就绪挂起状态
:这里发生在客户在程序正在运行是直接挂起程序。注意这里的箭头是单向的,所以在就绪挂起状态结束以后实际上是执行激活步骤,进入就绪状态,等待处理机调度。阻塞状态->阻塞挂起状态
:当内存空间比较紧缺的时候,如果有存在在内存中的,而且是处于阻塞状态的进程,那么就让他更需要内存的程序占用内存,自己进入阻塞挂起状态,PCB等数据存入外存。因为现在这个进程也不能进入就绪状态,这个程序在内存中是没有什么作用的。阻塞挂起状态->就绪挂起状态
:当阻塞状态等待的IO事件或其他事件到来的时候状态发生改变。就绪挂起状态->就绪状态
:如果内存中没有就绪态进程,操作系统需要调入一个进程继续执行。此外,当处于就绪/挂起状态的进程比处于就绪态的任何进程的优先级都要高时,也可以进行这种转换。这种情况的产生是由于操作系统设计者规定,调入高优先级的进程比减少交换量更重要。就绪状态->就绪挂起状态
:通常,操作系统更倾向于挂起阻塞态进程而不是就绪态进程,因为就绪态进程可以立即执行,而阻塞态进程占用了内存空间但不能执行。但如果释放内存以得到足够空间的唯一方法是挂起一个就绪态进程,那么这种转换也是必需的。并且,如果操作系统确信高优先级的阻塞态进程很快就会就绪,那么它可能选择挂起一个低优先级的就绪态进程,而不是一个高优先级的阻塞态进程。
挂起状态和阻塞状态有什么区别?
这里大多来自其他博主的文章,有以下几个方面的区别:
是否释放CPU
:阻塞(pend)就是任务释放CPU,其他任务可以运行,一般在等待某种资源或信号量的时候出现。挂起(suspend)不释放CPU,如果任务优先级高就永远轮不到其他任务运行。一般挂起用于程序调试中的条件中断,当出现某个条件的情况下挂起,然后进行单步调试。是否主动
:显然阻塞是一种被动行为,其发生在磁盘,网络IO,wait,lock等要等待某种事件的发生的操作之后。因为拿不到IO资源,所以阻塞时会放弃 CPU的占用。而挂起是主动的,因为挂起后还要受到CPU的监督(等待着激活),所以挂起不释放CPU,比如sleep函数,站着CPU不使用。与调度器是否相关
:任务调度是操作系统来实现的,任务调度时,直接忽略挂起状态的任务,但是会顾及处于pend下的任务,当pend下的任务等待的资源就绪后,就可以转为ready了。ready只需要等待CPU时间,当然,任务调度也占用开销,但是不大,可以忽略。可以这样理解,只要是挂起状态,操作系统就不在管理这个任务了。
上面我们提到了sleep函数和wait函数,我们把它们单独拎出来看看:
sleep()和wait()函数的区别:
- 两者比较的共同之处是:两个方法都是使程序等待多少毫秒。
- 最主要区别是:sleep()方法没有释放锁。而wait()方法释放了锁,使得其他线程可以使用同步控制块或者方法。
- sleep()指线程被调用时,占着CPU不工作,形象的说明为“占着CPU”睡觉。
sleep(2000)表示:占用CPU,程序休眠2秒。
wait(2000)表示:不占用CPU,程序等待2秒。如何主动挂起程序
ctrl+z
:挂起,程序放到后台,程序没有结束。
jobs
:查看被挂起的程序工作号恢复进程执行时,有两种选择:
fg
命令将挂起的作业放回到前台执行;用bg
命令将挂起的作业放到后台执行
格式:fg 工作号;bg 工作号总结
挂起状态一般不被放在进程的常用状态之一,常见的,”五大“状态里就没有挂起状态,但其实际上还是非常重要的,值得我们每一个人好好学习。
参考:
- 博文《进程的挂起状态详细分析》
- 博文《操作系统——CPU和内存、挂起和阻塞》
- 博文《进程的阻塞和挂起的区别》
- 博文《挂起和阻塞区别以及sleep和wait的区别》
- 博文《Linux 进程的挂起和恢复》
- 课程《北京交通大学–操作系统》
-
进程的挂起状态详细分析
2020-04-21 10:17:35通常我们所认为的进程有...事实上还存在被挂起的进程。 交换的需要 前面图中三个基本状态(就绪态、运行态和阻塞态)提供了一种为进程行为建立模型的系统方法,并指导操作系统的实现。 但是,可以证明往模型中增...通常我们所认为的进程有五大状态,新建态,就绪态,阻塞态,运行态,退出态。
下面是示意图:
事实上还存在被挂起的进程。
交换的需要 前面图中三个基本状态(就绪态、运行态和阻塞态)提供了一种为进程行为建立模型的系统方法,并指导操作系统的实现。
但是,可以证明往模型中增加其他状态也是合理的。下面考虑一个没有使用虚拟内存的系统,每次执行中的进程必须完全载入内存。因此,所有队列中的所有进程必须驻留在内存中。
内存保存多个进程,当一个进程正在等待是,处理器可以转移到另一个进程,但是CPU比I/O要快的多,以至于内存中所有进程都在等待I/O的情况很常见。因此,即使是多道程序设计,大多数时候处理器仍然可能处于空闲状态。
一种解决办法是扩充内存适应更多的进程。有以下缺点:1.内存的价格 2.程序对内存空间需求的增长速度比内存价格下降的速度快。因此,更大的内存往往导致更大的进程,而不是更多的进程。
另一种解决方案是交换。包括把内存中某个进程的一部分或全部移到磁盘中。当内存中没有处于就绪状态的进程时,操作系统就把被阻塞的进程患处到磁盘中的”挂起队列“(suspend queue),即暂时保存从内存中”驱逐“出来的被挂器的进程队列。操作系统再次之后取出挂起队列中的另一个进程,或者接受一个新进程的请求,将其纳入内存运行。
“交换”(swapping)是一个I/O操作,因而可能使问题更恶化。但是由于磁盘I/O一般是系统中最快的I/O(相对于磁带或者打印机I/O),所以交换通常会提高性能。
现在有两种进程模型,一种是包含单挂起态的模型,一种是包含两个挂起态的模型。
分别如图:
包含两个挂起态的模型如图:
与之前五个转换模型相比,比较重要的新转换如下:
阻塞->阻塞/挂起:如果没有就绪进程,则至少一个阻塞进程被换出,为另一个没有阻塞的进程让出空间。如果操作系统确定当前正在运行的进程,或者就绪进程为了维护基本的性能要求而需要更多的内存空间,那么,即使有可用的就绪态进程也可能出现这种转换。
阻塞挂起->就绪挂起:如果等待的事件发生了,则处于阻塞/挂起状态的进程可转换到就绪/挂起态。注意,这要求操作系统必须能够得到挂起进程的状态信息。
就绪/挂起->就绪:如果内存中没有就绪态进程,操作系统需要调入一个进程继续执行。此外,当处于就绪/挂起状态的进程比处于就绪态的任何进程的优先级都要高时,也可以进行这种转换。这种情况的产生是由于操作系统设计者规定,调入高优先级的进程比减少交换量更重要。
就绪->就绪/挂起:通常,操作系统更倾向于挂起阻塞态进程而不是就绪态进程,因为就绪态进程可以立即执行,而阻塞态进程占用了内存空间但不能执行。但如果释放内存以得到足够空间的唯一方法是挂起一个就绪态进程,那么这种转换也是必需的。并且,如果操作系统确信高优先级的阻塞态进程很快就会就绪,那么它可能选择挂起一个低优先级的就绪态进程,而不是一个高优先级的阻塞态进程。
通俗的说,就是挂起不挂起,不光要考虑为进程让出空间,不光要考虑是否就绪,还要考虑进程的优先级。还需要考虑的几种其他转换有:
新建->就绪挂起及新建->就绪:当创建一个新进程时,该进程或者加入就绪队列,或者加入就绪/挂起队列。不论哪种情况,操作系统都必须建立一些表管理进程,并为进程分配地址空间。操作系统可能更倾向于在初期执行这些辅助工作,这使得它可以维护大量的未阻塞的进程。通过这一策略,内存中经常会没有足够的足够的空间分配给新进程。因此使用了(新建->就绪/挂起)转换。另一方面,我们可以证明创建进程时适时(just-in-time)原理,即尽可能推迟创建进程以减少操作系统的开销,并在系统被阻塞态进程阻塞时允许操作系统执行进程创建任务。
阻塞/挂起->阻塞:这种转化在设计中比较少见,如果一个进程没有准备好执行,并且不在内存中,调入它又有什么意义?但是考虑到下面的情况:一个进程终止,释放了一些内存空间,阻塞/挂起队列中有一个进程优先级比就绪/挂起队列中任何进程的优先级都要高,并且操作系统有理由相信阻塞进程的事件很快就会发射管,这时,把阻塞进程而不是就绪进程调入内存是合理的。
运行->就绪/挂起:通常当分配给一个运行进程的时间期满时,它将转换到就绪态。但是,如果由于位于阻塞/挂起队列中具有较高优先级的进程变得不再被阻塞,操作系统抢占这个进程,也可以直接把这个运行进程转换到就绪/挂起队列中,并释放一些内存空间。
各种状态/退出:在典型情况下,一个进程在运行时终止,或者是因为它已经完成,或者是因为出现了一些错误条件。但是,在某些操作系统中,一个进程可以被创建它的进程终止,或者当父进程终止时终止。如果允许这样,则进程在任何状态时都可以转换到退出态。
挂起的其他用途:到目前为止,挂起进程的概念与不在内存中的进程概念是等价的。一个不再内存中的进程,不论是否在等待一个事件,都不能立即执行。总结一下挂起进程的概念:
1.进程不能立即执行
2.进程可能是或不是正在等待一个事件。如果是,阻塞条件不依赖于挂起条件,阻塞事件的发生不会使进程立即被执行。
3.为阻止进程执行,可以通过代理把这个进程置于挂起状态,代理可以是进程自己,也可以是父进程或操作系统。
4.除非代理显示地命令系统进行状态转换,否则进程无法从这个状态中转移。下面一张表展示挂起进程的原因:
原文链接:https://blog.csdn.net/freeelinux/article/details/53562592 -
26、具有挂起状态的进程状态转换
2021-04-05 20:29:21这幅图代表着有一个挂起状态的进程状态转换图。 但是有两个比较明显的错误: 只有阻塞状态才能执行挂起状态。 挂起状态结束后,进程直接就进入了就绪队列。 所以,我们需要两个额外的状态来完善这幅图: 阻塞且被... -
在命令提示符中输入 sfc /scannow 显示有一个系统修复处于挂起状态,需要重新启动才能完成该修复
2021-07-16 07:53:23我按照你给出的以下步骤 右键开始-运行-输入regedit.exe回车,找到HKEY_... 进行最后一步扫描时,并不能扫描成功,并且出现了”有一个系统修复处于挂起状态,需要重新启动才能完成该修复”这个问题。请问该如何解决那? -
操作系统 具有挂起状态的进程状态装换
2011-03-19 19:22:47计算响应比 进程排序 (逆序算法) , 首节点是响应比最高节点 高响应比算法模拟器 控制进程状态 -
Win8 metro应用经常出现挂起状态.docx
2021-09-27 03:12:06Win8 metro应用经常出现挂起状态.docx -
win8应用商城一直在挂起状态无法安装怎么办.docx
2021-09-27 03:26:52win8应用商城一直在挂起状态无法安装怎么办.docx -
操作系统进程有挂起状态的进程状态图
2019-10-08 21:11:39活动状态是位于内存中的进程所拥有的状态,处于外存中的进程则是静止状态 转载于:https://www.cnblogs.com/Alsace/archive/2013/03/19/2969387.html -
sql server 2016 Always on 之 数据库处于恢复挂起状态
2021-03-10 15:59:54sql server 2016 Always on 之 数据库处于恢复挂起状态 ①、背景描述 上次使用三台服务器搭建的sql server 2016 集群,搭建好之后就没管了,后来测试服务器断电就没启。 今天准备重新测试使用两台服务器搭建sql ... -
SQL挂起状态清除工具
2015-09-19 11:42:18SQL挂起状态清除工具 -
解决Windows挂起状态
2016-05-13 21:44:56手动排除Windows的挂起状态 有些软件安装时可能遇到下面的提示: 遇到了以下问题 安装程序检测到计算机重新启动的过程可能暂停。建议退出安装 序,重新启动计算机,然后再重试。 如下图: 挂起... -
数据提交一直在挂起状态(IE显示请求挂起)
2018-01-13 23:14:00按照这位大佬的方法修改了,依旧还是无法提交,请求一直在挂起状态,程序中的各种页面跳转没有任何问题,就是在提交的时候无法提交成功,找了一两天,感觉不是程序的问题,将目光转向数据库。 发现数据库一堆锁... -
有一个系统修复处于挂起状态,需要重新启动才能完成该修复
2019-10-02 01:31:28右键开始-运行-输入regedit.exe回车,找到HKEY_LOCAL_MACHINE ,并展开:HKEY_LOCAL_MACHINE ,在HKEY_LOCAL_MACHINE 展开项中找到SYSTEM ,也展开SYSTEM,在SYSTEM的展开项中找到CurrentControlSet,展开... -
Adobe安装程序检测到计算机重新启动操作可能处于挂起状态 解决方法
2020-02-19 18:21:47“安装程序检测到计算机重新启动操作可能处于挂起状态。建议您退出安装程序,重新启动并重试。” 这时如果你直接重新启动系统再安装软件依然会出现上述提示,本文就针对这个问题说下解决方案。 故障原因 注册表中 ... -
【VMWARE】Ubuntu64:错误导致继续运行操作失败。请保留挂起状态并纠正错误,或放弃挂起状态。
2019-02-26 20:24:28【VMWARE】Ubuntu64:错误导致继续运行操作失败。请保留挂起状态并纠正错误,或放弃挂起状态。 原因:虚拟机挂起后没有正常关机; 解决方案:直接放弃挂起状态,挂起状态前的东西重新再来一次; ... -
如何解决SQL server 恢复挂起状态
2018-04-22 16:22:45ALTER DATABASE Library_4 SET SINGLE_USER; ALTER DATABASE Library_4 SET EMERGENCY; DBCC CHECKDB (Library_4 , REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS; ALTER DATABASE Library_4 SET MULTI_USER;... -
windows下如何判断进程或者线程是否处于挂起状态
2017-07-24 08:38:10目前在做的项目要求能够监视程序的状态,特别要监视到程序挂起或假死的状态 -
启动虚拟机报错:.vmss”还原虚拟机状态时出错。...请保留挂起状态并纠正错误,或放弃挂起状态。
2019-07-26 11:11:27错误提示: xxx.vmss”还原虚拟机状态时出错。 错误导致继续运行操作失败。请保留挂起状态并纠正错误,或放弃挂起状态。 解决办法: 点击“放弃”,重启即可。 ... -
DQS安装失败——系统重新引导是否处于挂起状态
2018-08-08 10:07:23安装完SQL Server 2012后,准备安装DQS服务,但是总是提示:操作“检查系统重新引导是否处于挂起状态”已完成,但有错误,正在中止安装。非常无奈,因为都根据其要求重启计算机很多次了。(祸不单行,安装Adobe DW5... -
vs2015 出现"重新启动处于挂起状态,请重新启动visual studio"的解决办法
2018-10-11 15:01:14在安装vs之后或者VS2015安装:Windows 10 SDK,安装程序提示重新启动,我点取消后,然后再次点击就提示:重新启动处于挂起状态,请重新启动visual studio。 现象: 1.安装结束提示重新启动,可能有其它要处理,点击... -
关于SQLserver2016数据库处于恢复挂起状态的解决方案
2017-11-10 16:55:09由于修改了SQLserver中数据库的默认存储位置,此外还把已有数据库位置改变了,所有出现恢复挂起状态,那么这种情况怎么解决呢?请看下面喽------ 默认位置的查看:右键点击你想要查看的数据库---->属性----->文件... -
Vmare-您的虚拟机未能继续运行,原因是遇到一个可纠正的错误。请保留挂起状态并纠正错误,或放弃挂起状态。
2018-06-11 18:36:341.前提今天打开以前搭建的Centos集成环境来试试docker,但是复制打开的时候报错。2.报错前提。Vmare用的老的11版本,但是Centos集成环境,版本号是12,所以,我直接修改了复制的vmx的版本号但是打开的时候报错:报错... -
如何让程序在后台保持挂起状态
2017-06-03 20:02:00如何让程序在后台保持挂起状态 程序的状态分为:前台运行,后台挂起,后台休眠 为了让项目的网络请求保持活跃状态,需要对程序进行设置. 在applicationDidEnterBackground方法中调用下面的方法,可以让程序进入挂起... -
有一个系统修复处于挂起状态,需要重新启动才能完成该修复
2017-05-16 15:59:00有一个系统修复处于挂起状态,需要重新启动才能完成该修复,重新启动Windows并再次运行sfc 用U盘引导,进c:\windows\winsxs,删除pending.xml reboot.xml再重启,即好。 直接删可能没有权限。 ... -
adobe 安装出现“安装程序检测到计算机重新启动操作可能处于挂起状态”
2020-04-28 11:25:15解决方法如下: 1.运行 regedit 打开注册表编辑器。 2.依次展开HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager目录,找到其中的PendingFileRenameOperations项目,直接右键,选择“删除”...