目录
通过上一篇博客对进程的讲解,我们了解了进程就是一个个在磁盘中的二进制可执行文件运行时被加载到内存后就成为了进程。其实进程也是分状态的,在很多操作系统的书中提到进程的状态有新建、就绪、运行、挂起、阻塞、死亡、停止...... 进程之所以能被描述出有这么多状态,本质都是用来满足不同的运行场景的。下面我将介绍最重要的三种进程状态
一.进程的状态:运行态
1.什么是运行状态?
当一个进程被调入CPU的运行队列时就是处于运行状态了。
在生活中,我们用的电脑一般情况下都只有一个CPU,而CPU是用来执行和处理进程的,将具体一点就是每一个CPU都会有一个运行队列(runQueue),运行队列的底层实现是一个数据结构链表,它里面的各个节点元素就是各进程的属性task_struct(PCB),所以CPU可以根据运行队列看到各节点进程的状态和数据信息。
2.进程进入内存的详细图解:
如上就是进程运行时在被加载到内存后的详细步骤图,运行队列中存放的是该进程的PCB结构体,根据队列先进先出的原则,CPU会对先加载进来的进程PCB进行代码和数据上的执行处理 。
举一个工作上的例子进行理解:当我们在找工作的过程中,向公司投递了简历,这里的投简历并不是把自己投进了公司,而是把自己的简历做成文件投进去了,那么简历从哪里来呢?是我们自己制作了一份包含了自己的姓名、年龄、电话、性别、技术特长...... 的文档,这就是我之前所提到的:“先描述” 即整理出自己的信息数据!
然后公司收到简历后,便开始筛选,当你通过筛选后,你的简历就会被放在HR的办公桌上,公司会安排你进行下一轮的面试,这时你就相当于是进程,简历相当于是PCB。而运行队列就是HR,面试的过程相当于是你进入了运行队列,这便是后三个字:“再组织” ——HR将一个个人的简历链接起来进行面试。
若你通过了面试,公司的系统(相当于是CPU)则会对你的身份进行入职办理(CPU对进程进行运算处理)。