嵌入式系统设计师学习笔记⑩:进程管理

进程:是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。它由程序块、进程控制块(PCB)和数据块三部分组成。

进程与程序的区别:

①进程是程序的一次执行过程,没有程序就没有进程。

②程序是完成某个特定功能的一系列程序语句的集合,只要不被破坏,它就永远存在。

③程序是一个静态的概念,而进程是一个动态的概念,它由创建而产生,完成任务后因撤消而消亡;进程是系统进行资源分配和调度的独立单位,而程序不是。

进程的状态:三态模型


运行态:占有处理器,正在运行。

就绪态:指具备运行条件,等待系统分配处理器以便运行。

等待态:又称为阻塞态或睡眠态,指不具备运行条件,正在等待某个事件的完成。

状态的转换:

运行态→等待态:等待使用资源,如等待外设传输,等待人工干预

等待态→就绪态:资源得到满足,如外设传输结束,人工干预完成

运行态→就绪态:运行时间片到,出现有更高优先权进程

就绪态→运行态:CPU空闲时选择一个就绪进程

进程的状态:五态模型


挂起:将进程调出内存,保存到外存队列中,并释放资源。

激活:恢复挂起进程,重新调入内存。

五态模型引入的目的与原因:

目的:释放进程占用的资源以缓解资源不足。

原因:终端用户的请求,父进程的请求、OS的需要(如负荷调节、对换等)

进程管理:前趋图

在上述前趋图中:A,B,C三者可同时进行(并行),他们完成的条件资源并不冲突且不存在前驱需求因此这三者的入度为0,出度为1,但是D搅拌必须得前3者完成后才能进行,因此要进行D操作的时候必须等待前3个资源,D的入度为3,出度为1;对于E来说它仅需要活动D结束即可开始任务,且E完成后并没有其他活动继续执行,因此E的入度为1,出度为0。

出度:在前趋图中,这个活动(节点)指向下一个活动(节点)的个数。
入度:在前趋图中,这个活动(节点)进行前有多少个活动(节点)指向它。

若一个活动的入度为0,则代表其不需要任何活动的限制即可开始任务。
若一个活动的出度为0,则代表其是该前趋图中的最后一个活动。

前驱图所表示的意思就是在一个完整的活动中各个子活动的约束关系。