| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> Linux进程管理---进程的状态(RSDTtXZ) -> 正文阅读 |
|
[系统运维]Linux进程管理---进程的状态(RSDTtXZ) |
文章目录零.前言在了解了什么是进程,以及进程的创建之后,我们需要知道进程其实有不同的状态,一个进程可以有几种状态。 1.进程状态的分类
2.R状态(1)概念R状态即为运行状态,在前面我们观察的进程的状态都是R状态。 (2)Linux下演示
我们来写一个死循环的程序,保证程序一直在运行。运行它之后,打开另一个界面来查看进程: 3.S与D状态(1)概念当我们完成某个任务的时候,任务条件不具备,需要进程进行某种等待。 在进程需要使用磁盘进行读写的时候,需要磁盘为其分配资源再由CPU对其进行读写,但如果磁盘并没有就绪,那么此时操作系统会将该想要调用磁盘资源的进程放在一个新的队列中,我们称之为等待队列(wait_queue)。处于该队列的进程处于S状态。当磁盘空间就绪后,进程重新加入run_queue进入R状态。
S状态表示的浅度睡眠,是可以由control+C来终止的。比如我们使用sleep函数让进程睡眠200s,就可以使用control+C来进行终止。 (2)Linux下演示
4.T状态(1)概念程序处于暂停状态,此时信息没有任何更新,是完全的暂停。处于S状态的进程会有一些数据更新,比如睡眠了多少秒等。 (2)Linux下演示我们可以使用
指令来查看kill的命令: 5.t状态(1)概念追踪状态,由我们控制程序一步一步执行,比如调试的过程。 (2)Linux下演示
我们使用这段简单的代码来测试,并使其进入调试状态,gdb的使用请参考这篇文章:Linux下代码调试器—gdb的使用 6.X状态死亡状态,CPU会进行资源的回收,包括PCB和代码数据等。 7.Z状态(1)概念僵尸状态,即濒死状态。 (2)Linux下的演示我们可以先让父进程处于休眠状态的同时干掉子进程,此时子进程没有进行资源回收,处于Z状态。
此时由于父进程在休眠中,当我们干掉子进程之后,子进程进入Z状态。并出现了default的单词,表示违规。
此时我们会发现,只有子进程在运行,此时的子进程称为孤儿进程。 8.总结通过上述的描述我们是否对操作系统书中的那张似曾相识的图有了更深的理解了呢? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 15:29:27- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |