当前位置: 首页 > news >正文

Linux中进程的状态3 进程的优先级1

目录

X(dead) && Z(zombie)

僵尸进程 && 孤儿进程

进程的优先级

如何修改进程的优先级


我们至此还剩两种状态没有查看,X和Z状态。

X(dead) && Z(zombie)

X状态是进程死亡状态,Z状态依照这个词可知是进程处于僵死状态,就是离死亡不远的状态了。

如上如果要验证这两种状态,运行多线程会比较方便,创建test.c和所对应的makefile,旨在通过同时检测两个进程来得出这两种状态。

正常刚开始应该都是S+,然后我们我们等待子进程的倒计时自动结束之后子进程由于不再了就相当于自动退出了,这时只会观察到父进程而子进程进入退出状态。

为什么不是死亡状态或者T状态呢,因为如下。

这个子进程是被自动退出的而不是被停止的,如果要看到T状态需要直接kill子进程才会看到,为什么不是直接死亡呢,子进程自动退出时,会将执行结构告知操作系统和父进程,但是这个我们创建的父进程仅仅看着子进程退出却不做不接受任何操作,使得子进程无法将信息传答到父进程,结果就是子进程僵死,kill会直接将子进程杀死,我们也不建议直接将进程杀死。

那什么时候会出现X状态呢,子进程之所以没有进入X状态的原因是没有将要死的信息传入父进程,我们只需要先杀死父进程,让bush接管子进程,然后再杀死子进程就可以了。如下效果

理论是正确的,但是这个X状态很难看到,因为一个程序确定死亡只后就会直接被操作系统删除了。

僵尸进程 && 孤儿进程

僵尸进程就是处于将死边缘的进程就是状态为Z的进程,我们上面讲过了,由于处于僵尸进程的进程无法释放资源,所有僵尸进程的存在就会有内存泄漏的风险。

孤儿进程就是父进程不存在的子进程,这种进程没有父亲的约束本来应该也成为僵尸进程的,但是操作系统会担当起成为其父亲的责任,使其能够能够被回收。

bush的pid就是1。

依靠echo $?命令可以得知子进程的返回值。位于前台(状态没有+的)运行的程序或者被暂停后又重启的进程只能使用kill -19进行暂停,这也就是为什么上面那个图会多出两个T的原因。

进程的优先级

优先级的定义就是获得某种资源的先后顺序。

如上图可知,进程的优先级的相关知识。

我们手动调整进程后变化图如下:

进程的优先级就是从60到99这40个数字。

进程的优先级等于pri(先前的值) + ni(可修改值)

如何修改进程的优先级

修改进程的优先级就是在修改进程的ni的值,ni的值的可调整范围为[-20, 19],超过19或者低于-20的话会直接按最大值或者最小值处理,使用top指令就可以进行进程优先级的调整。

先说一下,ls带n选项的意思是数字化uid和gid,就是将拥有者,所属组和other数字化。

输入完top,然后按r键,再输入你要修改的进程的pid,之后再输入要修改的进程的ni值就可以了

切记操作系统不允许多次修改进程的优先级!!!

相关文章:

  • 除掉彩色水印的简单方法
  • GlusterFS卷管理实战指南:从扩展卷到自我修复,全面掌握高效运维技巧
  • Kafka在Windows系统使用delete命令删除Topic时出现的问题
  • 【Java八股文】09-计算机操作系统面试篇
  • 虚拟机设置代理
  • VMamba论文精读笔记
  • CMake管理依赖实战:多仓库的无缝集成
  • 在windows下安装windows+Ubuntu16.04双系统(下)
  • go WEB框架
  • Git 合并冲突解决与状态分析笔记
  • 发现问题 python3.6.13+django3.2.5 只能以asgi启动server 如何解决当前问题
  • rust笔记1-学习资料推荐
  • C#设计模式 学习笔记
  • OpenProject项目管理系统
  • 如何在Windows 10操作系统中安装并配置PHP集成软件XAMPP
  • 微前端qiankun打包部署
  • js 跳出循环
  • Moonshot AI 新突破:MoBA 为大语言模型长文本处理提效论文速读
  • java项目引用sevenzipjbinding依赖报错问题
  • Linux基础开发工具的使用(apt、vim、gcc、g++、gdb、make、makefile)
  • 泽连斯基启程前往土耳其
  • 佩斯科夫:俄方代表团15日将在伊斯坦布尔等候乌克兰代表团
  • 王毅谈中拉命运共同体建设“五大工程”及落实举措
  • 一手实测深夜发布的世界首个设计Agent - Lovart。
  • 乌方:泽连斯基只接受与普京会谈,拒见其他俄代表
  • 事关心脏健康安全,经导管植入式人工心脏瓣膜国家标准发布