【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下采用进程切换的方式,在一段时间之内,让多个进程都得以推进,称之为并发。


未完待续

相关推荐
初願致夕霞8 小时前
基于系统调用的Linux网络编程——UDP与TCP
linux·网络·c++·tcp/ip·udp
爱上好庆祝9 小时前
学习js的第七天(wed APIs的开始)
前端·javascript·css·学习·html·css3
风兮雨露11 小时前
VMware虚拟机(安装/绿色版)
学习
charlie11451419111 小时前
嵌入式Linux驱动开发——新 API 字符设备驱动完整教程 - 从设备结构体到应用测试
linux·运维·驱动开发
消失的旧时光-194311 小时前
C语言对象模型系列(四)《Linux 内核里的 container_of 到底是什么黑魔法?》—— 一篇讲透 Linux 内核的“对象模型”核心技巧
linux·c语言·算法
zl_dfq12 小时前
python学习8 之 【集合、datetime模块、字典】
学习
SWAGGY..12 小时前
Linux系统编程:(二)基础指令详解
linux·运维·服务器
kdxiaojie12 小时前
U-Boot分析【学习笔记】(3)
linux·笔记·学习
烛衔溟12 小时前
TypeScript 接口继承与混合类型
linux·ubuntu·typescript
MediaTea13 小时前
Scikit-learn:从数据到结构——无监督学习的最小闭环
人工智能·学习·算法·机器学习·scikit-learn