【Linux】进程_4

文章目录

  • 五、进程
    • [4. 进程状态](#4. 进程状态)
    • [5. 进程优先级](#5. 进程优先级)
    • [6. 进程的调度和转换](#6. 进程的调度和转换)
  • 未完待续

五、进程

4. 进程状态

当进程属于挂起状态时,进程的可执行程序代码和数据均会被从内存中换入到磁盘中,此时进程的PCB并没有消失,只要操作系统还需要管理这个进程,进程的PCB就需要存在,所以我们可以知道:进程的创建肯定是先创建内核数据结构,在将可执行程序的代码和数据拷贝到内存当中。

我们了解了进程的 运行,阻塞,挂起 状态,但是真的只有这些状态吗?真正的操作系统的状态比这要多一些。

Linux下的进程状态
R (running) --- 运行状态
S (sleeping) --- 可中断睡眠状态(就是阻塞状态) --- 浅度睡眠
D (disk sleep) --- 不可中断睡眠状态(也是阻塞状态) --- 深度睡眠(不可被操作系统杀掉
T (stopped) --- 暂停状态 (也算阻塞状态)
t (tracing stop) --- 另一种暂停状态 (也算阻塞状态)
X (dead) --- 死亡状态
Z (zombie) --- 僵尸状态(进程已经死亡,但是父进程尚未读取子进程的结果数据,如果父进程不读取结果,那么僵尸进程将一直存在,占据内存)

如果父进程比子进程先挂掉,就无法读取子进程的结果数据,以至于子进程无法被杀掉,永久成为僵尸进程。。。但是真的会这样吗?操作系统当然不会允许这样的情况出现,父进程先挂掉的子进程会变成 孤儿进程 ,父进程会变成 1号进程(操作系统),相当于被操作系统 "领养" 。孤儿进程也可以有子进程

5. 进程优先级

进程要访问某种资源,进程进行通过一定的方式"排队"(本质上就是 资源过少),确认享受资源的先后顺序。

优先级限制的是先后顺序,而权限限制的是能不能。

Linux的默认优先级是 80 。Linux的优先级是可以被修改的,优先级的范围是[60, 99],数字越小,优先级越高。

6. 进程的调度和转换

进程在运行的时候在CPU上,CPU是一定把进程跑完再跑其他进程吗?非也,在当代操作系统,CPU执行进程都是基于时间片进行轮换执行的。

进程的其他概念:

竞争性: 系统进程数目众多,而CPU资源只有少量,甚至1个,所以进程之间是具有竞争属性的。为了高效完成任务,更合理竞争相关资源,便具有了优先级。

独立性: 多进程运行,需要独享各种资源,多进程运行期间互不干扰。

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

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


未完待续

相关推荐
AI机器学习算法4 小时前
《动手学深度学习PyTorch版》笔记
人工智能·学习·机器学习
milo.qu4 小时前
RockyLinux9.7 docker部署Jisti Meet
linux·docker·容器
贺一航【Niki】4 小时前
【学习笔记】杂乱知识
笔记·学习
GanGanGanGan_4 小时前
CentOS 7.9 glibc 2.17 源码编译升级到 glibc 2.31
linux·运维·centos·glibc
charlie1145141914 小时前
嵌入式Linux驱动开发——class 和 device 模型 - 自动创建设备节点的幕后机制
linux·运维·驱动开发
白雪茫茫5 小时前
监督学习、半监督学习、无监督学习算法详解
python·学习·算法·ai
枳实-叶6 小时前
【Linux驱动开发】第四天:dmesg日志全解+驱动加载失败极速排查
linux·运维·驱动开发
wdfk_prog7 小时前
正常关闭虚拟机时,不要点“关机”,而要点“关闭客户机”
linux·c语言·网络·ide·vscode
fish_xk8 小时前
Linux开方工具
linux·运维·服务器
red_redemption10 小时前
自由学习记录(181)
学习