进程的定义
进程是指一个具有一定独立功能的程序在一个数据集上的一次动态执行过程。
进程包含了正在运行的一个程序的所有状态信息:
- 代码
- 数据
- 状态寄存器
CPU状态CR0、指令指针IP - 通用寄存器
- 进程占用系统资源
打开文件、已分配内存…
进程的控制块
进程控制块(Process Control Block,PCB),顾名思义是用来描述进程的基本情况以及运行变化。进程间的调度、进程的索引、进程状态的描述都由PCB来表述。
进程的特点
1. 动态性
进程是一次动态执行过程,可动态地创建和结束进程。
2. 并发性
进程可以被独立调度并占用处理器资源。
3. 独立性
不同的进程工作不互相影响。
4. 制约性
因访问共享数据/资源或进程间因同步而制约。
进程的三状态
总的来说分为三种状态
1. 运行状态(Running)
2. 就绪状态(Ready)
3. 等待(阻塞)状态(Blocked)
在一个进程运行前会有创建(New)动作,以及结束一个进程的结束(Exit)动作。在讨论进程的状态时着重分析运行、就绪以及等待状态。
下面分析这三种状态的关系:
- 内存中:内存是处理进程的主要场所。一个进程在创建之后首先进入就绪的状态,由就绪队列执行一个进程,该进程进入运行状态直至时间片结束重回就绪队列。在运行过程中有可能有事件等待需求,根据事件的要求使得该进程进入等待状态,处于等待状态的进程直至事件满足重新回到就绪队列中,由就绪队列调度执行。最后知道代码执行结束,退出并结束该进程。
- 外存中:本身在内存满足用户需求的情况下是不需要外存挂起的,但是这代价是昂贵的,所以有了状态挂起机制,目的是减少内存的占用。在一个进程创建后先进入外存处于就绪挂起状态,就绪挂起时根据调度需求,将其装入内存并处于运行态,同理进入就绪状态和等待状态,但此时内存根据内存空间的需求先将该代码段挂起至外存,分别出去就绪挂起与等待挂起,然后根据事件相应及就绪队列调度又将挂起态激活,落入内存中重新进入运行态。
总结
进程是指一个具有一定独立功能的程序在一个数据集上的一次动态执行过程。进程是一个过程描述,相比静态的程序是动态的。
(本人渣渣一个,处于学习过程中,有理解不对的地方希望大佬指正!!!)