wordpress 增加站长统计,高端外贸网站建设,锐途网站建设,通用企业网站织梦模板(红绿蓝三色)文章目录 一、运行状态运行队列运行状态和运行队列 二、睡眠状态S状态D状态D状态产生的原因 三、暂停状态T状态t 状态 四、僵尸状态为什么有僵尸状态孤儿进程 一、运行状态
R状态#xff1a;进程已经准备好随时被调度了。
运行队列
每个 CPU 都会维护一个自己的运行队列进程已经准备好随时被调度了。
运行队列
每个 CPU 都会维护一个自己的运行队列一个CPU,一个运行队列。
运行状态和运行队列 二、睡眠状态
S状态
S状态(sleeping)可中断睡眠浅度睡眠状态。操作系统在资源紧缺时可以直接杀死该状态的进程。
int main()
{whilie(1){printf(hello process);}
}printf 是从外设上取数据循环打印时不一定每次要打印时外设都已经准备好了因为 CPU 比外设速度快的多所以CPU会等待外设。我们在运行该程序时发现进程状态是S 表明大部分时间进程还是在等待的而不是在运行可以在某个瞬间看到它是R状态但概率很低。
而大部分进程都会与外设有关会有等待的状态。
D状态
D状态disk sleep不可中断睡眠深度睡眠。操作系统不会杀D状态的进程。
D状态产生的原因 导致的情况 数据丢掉啦
那么是谁的错呢
对于操作系统
我本身就有管理它们的能力而且资源紧缺时有权利杀掉进程。如果紧缺时不杀这个进程那系统整体就要挂了那系统中的十几个进程就都要挂了损失的数据就更多了所以杀掉该进程是正确的选择。
对于进程 我是受害者我被操作系统杀死了跟我没关系。对于磁盘 我就是一个跑腿的让我干什么就干什么跟我没关系。
所以为了避免这种情况再增加一种状态
三、暂停状态
T状态
T状态stopped暂停状态。 手动暂停继续进程 查看 kill 信号 其中18 进程继续19进程暂停。 可以使用 kill 信号进行进程的手动暂停和继续。 自动暂停进程 有些进程被禁止做某些操作但如果进程硬要这样干进程就会被暂停。
t 状态
t 状态tracing stop被追踪的暂停状态。当进程处于被追踪状态时进程暂停等一等追踪我的那个东西。
四、僵尸状态
Z状态zombie僵尸状态进程已经执行完毕但并未获得进程退出的相关信息时的状态。
为什么有僵尸状态 PCB 的释放
进程执行完毕后代码和数据可以直接释放但PCB要留下直到里面的退出信息被父进程读取了然后PCB才能释放。如果父进程不读取那僵尸状态会一直存在task_struct 对象也会一直存在会占用内存即内存泄漏。 一般父进程是不会自动读取子进程的结束信息的但 bash 会自动读取所以我们没有手动读取程序的结束信息也没有内存泄露。
孤儿进程
父进程死亡的子进程就称为孤儿进程。如果父进程先子进程挂掉那子进程的 PCB 就无法释放了为了避免这种情况子进程会被另一个父亲领养一般是被 1 号进程操作系统领养。 本文到这里就结束了如果对您有帮助的话可以给个赞支持一下哦如果有哪里有错误欢迎指正。