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


未完待续

相关推荐
啦啦右一1 分钟前
前端 | MYTED单篇TED词汇学习功能优化
前端·学习
孤客网络科技工作室6 分钟前
VMware 虚拟机使用教程及 Kali Linux 安装指南
linux·虚拟机·kali linux
霍格沃兹测试开发学社测试人社区29 分钟前
软件测试学习笔记丨Flask操作数据库-数据库和表的管理
软件测试·笔记·测试开发·学习·flask
今天我又学废了1 小时前
Scala学习记录,List
学习
颇有几分姿色1 小时前
深入理解 Linux 内存管理:free 命令详解
linux·运维·服务器
王俊山IT1 小时前
C++学习笔记----10、模块、头文件及各种主题(一)---- 模块(5)
开发语言·c++·笔记·学习
AndyFrank1 小时前
mac crontab 不能使用问题简记
linux·运维·macos
筱源源2 小时前
Kafka-linux环境部署
linux·kafka
Mephisto.java2 小时前
【大数据学习 | kafka高级部分】kafka中的选举机制
大数据·学习·kafka
算法与编程之美2 小时前
文件的写入与读取
linux·运维·服务器