news 2026/5/16 4:27:05

(二)进程的状态优先级

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
(二)进程的状态优先级

1进程的状态(兼容所有操作系统)

1.1并行和并发

CPU执行进程代码,不是把进程代码执行完毕,才开始执行下一个
而是给每一个进程预分配一个 时间片,基于时间片,进行调度轮转(单CPU下),并发。

并发:多个进程在一个CPU下采用进程切换的方式,在一段时间之内,让多个进程都得以推进

并行: 多个进程在多个CPU下分别,同时进行运行,这称之为并行

1.2时间片

Linux/windows民用级别的操作系统,分时操作系统。-----调度任务追求公平

对应的实时操作系统,会有优先级,比如汽车的刹车。

1.3进程具有独立性(讲过了)

1.4等待的本质

1.4.1 运行状态

FIFO:先进先出。头结点的进程进入CPU运行一段时间,然后尾插到队列后,然后进入下一个进程,循环往复。

只要进程在运行队列中,该进程就叫做运行状态(我已经准备好了,随时被CPU调度)

1.4.2 阻塞状态

运行:进程等CPU。

阻塞:进程等待键盘等其他硬件。(运行和阻塞是两个队列)

运行和阻塞的本质:是让不同的进程,处在不同的队列中。

操作系统是硬件管理者,知道硬件有无数据。

执行完scanf,进程从运行到阻塞,输完数据,操作系统知道后,将进程从阻塞到运行。(将进程尾插到不同队列)

1.4.3挂起状态

背景:内存资源严重不足的情况下

1.状态:在tast_struct中通过status表示,比如1表示运行,2表示阻塞等等

2.内存资源不足时,占了内存资源且处于排队阻塞状态的进程会被换出唤入到swap分区(磁盘内),让其处于阻塞挂起状态。

3.换出:从内存到磁盘是IO,速度慢,用时间换空间,一般会被禁掉。如果swap分区不够,操作系统会杀死部分进程。

4.运行挂起:将运行状态的进程挂起。有风险,一般不会这么做。

2.Linux进程的状态

2.1 运行状态、阻塞状态

R:运行状态

S:休眠状态---阻塞等待的状态-----可中断睡眠,浅睡眠(就是将阻塞的进程可以直接kill掉)

ps axj | head -1 && ps axj | grep code code是可执行程序名字

while(1) { printf("hello world\n"); //该代码运行时,99%是S状态,阻塞状态,因为printf属于向IO相互 //速度会变慢 } while(1) { //100%是运行状态 }

2.2磁盘休眠----D

阻塞等待的状态的一种------不可中断睡眠,深度睡眠

当一个进程内存向磁盘写入大量数据时,磁盘本身比较慢,所以存入需要时间。假设内存那个进程名字叫A,A从内存到磁盘过程中(1.队列发生变化 ----CPU到磁盘 2.状态从R到S)。这是会有两种坏情况1:内存不够用,操作系统把进程A杀死了, 2:磁盘满了,存不下去,需要返回错误值给进程A,让上层知晓该情况,但是进程A不存在了。

为了解决以上情况,D状态出现了,深度睡眠,不可被杀掉

2.3T状态(了解)

kill - 19 PID :暂停进程,使其状态为T

kill -18 PID :重新开始暂停进程。放入到后台执行,无法用Ctril+C操作终止

需要用kill -9 PID终止。

前台进程和后台进程区别:

./code当执行这个指令,该可执行程序开始运行,往屏幕打印东西,这时往屏幕写入指令是无效的。

./code &让该进程处于后台进程,该可执行程序开始运行,往屏幕打印东西,这时往屏幕写入指令是有效的。

有些下载等操作,不想让它阻塞命令行,就让它去后台执行

2.4 t状态

当进程被追踪的时候(被调试程序的进程),断点停下,进程状态就是t。常见于gdp调试代码打断点时。

while :;do ps axj | head -1 && ps axj | grep code|grep -v grep;sleep 1;done
生成一个监视的功能

makefile文件

code:code.c gcc -o $@ $^ -g //这个g表示生成gdb文件,用于调试 .PHONY:clean clean: rm -f code

2.5X状态

echo $? 显示最近一个进程的退出信息 0:执行成功 非0:出错

main函数返回值就是父进程/操作系统的执行情况。

2.6Z状态

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/16 4:27:04

Dot自定义配置指南:调整模型参数满足个性化需求

Dot自定义配置指南:调整模型参数满足个性化需求 【免费下载链接】Dot Text-To-Speech, RAG, and LLMs. All local! 项目地址: https://gitcode.com/gh_mirrors/dot1/Dot Dot是一款功能强大的本地AI应用,支持文本转语音、RAG(检索增强生…

作者头像 李华
网站建设 2026/5/16 4:25:57

磁位置传感器在汽车电子节气门系统中的应用与优化

1. 磁位置传感器技术解析磁位置传感器作为现代汽车电子节气门系统(ETB)的核心部件,其工作原理基于霍尔效应这一物理现象。当电流通过半导体材料时,若存在垂直于电流方向的磁场,载流子会受到洛伦兹力作用而产生横向电势差,这就是霍…

作者头像 李华
网站建设 2026/5/16 4:25:47

大模型可控遗忘技术解析:从梯度调整到模型编辑的实践指南

1. 项目概述:当大模型需要“遗忘”最近在跟几个做AI安全的朋友聊天,大家不约而同地提到了一个越来越棘手的问题:我们费尽心思训练出来的大语言模型,就像一个记忆力超群但不懂“删除”的学生,它记住了训练数据里的一切&…

作者头像 李华
网站建设 2026/5/16 4:25:08

AlphaAvatar:从单目视频到可驱动数字人的完整技术解析

1. 项目概述:从“数字人”到“阿尔法化身”的进化最近在数字人、虚拟形象生成这个圈子里,AlphaAvatar这个名字开始频繁被提及。乍一看,它可能只是又一个“Avatar”项目,但当你深入其技术栈和论文细节,会发现它试图解决…

作者头像 李华
网站建设 2026/5/16 4:24:05

【RT-DETR实战】034、路径聚合网络(PANet)与BiFPN改进:从特征金字塔的混乱到清晰

调试现场:多尺度目标检测的尴尬 上周调试RT-DETR时遇到个头疼问题:小目标检测时灵时不灵。同一张图里,远处的行人框得挺准,近处的车辆反而漏检。 特征图可视化一看,高层特征细节丢得厉害,底层特征又太“嘈杂”。这不就是典型的多尺度特征融合问题么?PANet和BiFPN就是为…

作者头像 李华