我们现在花一点时间来谈一谈linux当中的进程状态 。
Ready
, 当进程被创建完成之后他就处于Ready
状态 , 在这个状态下的进程只差CPU了 , 也就是说 , 他现在只需要被操作系统调度获取CPU然后他就可以执行了 。
Running
, 当进程从Ready
状态获取CPU的执行权的时候 , 进程就处于Running状态 , 这个状态表示进程正在执行 。
traced
, 这个状态主要是一个进程处于调试状态 , 这个状态需要调试的进程给这个被调试的进程发送信号 , 然后和这个进程才可以继续执行 。
Zombie
, 当进程执行完成之后 , 父进程接受子进程发送的信号之前 , 进程就处于这个状态 。
Suspended
, 这个状态表示进程被挂起 , 当进程请求IO的时候 , 需要阻塞等待IO请求完成 , 这个时候的进程状态就是Suspened
状态 。
us
, 运行没有指定优先级的用户进程所消耗的CPU时间所占百分比 , 默认的终端执行的程序都是没有指定优先级的 , 我们可以使用nice
这个命令来改变程序执行的优先级:sudo nice -n -10 ./time
。sy
, 运行内核进程所消耗的CPU时间所占的百分比 。ni
, 运行指定了修改过优先级之后的用户进程所占的CPU时间百分比 。这里可以结合PR和NI两个字段进行分析 , 我们现在执行sudo nice -n 10 ./a.out
命令 , 在./a.out当中我启动了10个死循环的线程 , 我们来看一下它的top输出结果:
文章插图
sudo ./a.out
:文章插图
但是在实验测试的过程当中发现了一个奇怪的问题 , 但我们提升进程的优先级(提升优先级需要管理员权限)的时候ni的值没有发生变化 , 因此上面所谈到的ni的变化应该只适用于普通用户的进程(因为降低优先级不需要管理员权限) 。
文章插图
id
, idle进程执行所占的CPU时间百分比 , 当系统当中没有足够的进程让CPU执行的时候 , idle进程会被调度到CPU上进行执行 , 这个idle进程是为了让操作系统能够良好的执行起来所设置的 , idle进程主要执行HLT指令 , 这个指令主要是让CPU节能 , 不需要CPU满负荷运转 , 因为这个时候没有具体的进程需要执行 , 这个百分比越大说明系统负载越轻 , CPU不繁忙 。经验总结扩展阅读
- Linux命令全解
- 小米MIX4最新消息_小米MIX4配置曝光
- centos7系统资源限制整理
- 如何评价香港的麦兜系列动画
- 大数据常用的Linux命令
- 整理一些Windows桌面运维常用的命令,并且整合成脚本
- csv2ECharts,**一行命令查看数据趋势图 工具分享**
- 工作7年收集到的git命令
- cmd常用命令介绍
- 学习ASP.NET Core Blazor编程系列五——列表页面