进程与火车
前言:
为什么要起这么一个名字呢,是因为昨天自己回家回来都是做的火车,火车给自己留下了非常深的印象,火车已经变成了自己生活中一部分。恰巧今天看自考的时候正好看到进程这一章节,所以不由自主的就将进程与自己的火车联系在了一起,这样在学习进程的一些相关概念的时候就会很简单了。以下是自己以火车的角度简单的阐释一些进程的概念,如果有什么写的不恰当的地方欢迎小伙伴在评论区下留言,及时斧正。
在我看来进程就像火车运行,而程序就像火车、CPU就像火车控制中心。
进程的定义
进程(火车运行)是允许并发执行(全国火车同步行进)的程序(火车)在某个数据集合(铁路)上运行的过程。
进程与程序的区别
火车是静态的,是一种实体。而火车运行时一种动态的。它对应了火车运动的过程,它一旦运动,就会时刻变化,是个动态过程。
火车是永久的,具有物理性,如果没有外部因素,可以永久存储。但是火车运行不一样,它的生命周期就是从火车动到火车停止。
火车是车厢的集合,而火车运行包括了车次(正文段)、乘客(用户数据段)、和进程控制块(运行时的控制)。
进程与程序的联系
一次火车的运行时一列火车的一次执行,一次火车运行对应至少一列特定的火车。
一个火车可以运行多次,同一列火车可以在不同的铁道上运行,因而构成了不同的火车运行。
进程控制块(火车时刻表)
火车时刻表中是火车运行的一部分,它之中记录了火车的运行情况以及控制运行所需的全部信息。
进程控制块中的信息
(1)车次(进程标识符信息)
(2)火车时刻表系统(处理机状态信息)
①数据库(通用寄存器)
②火车站智能系统(指令计数器)
③车票(程序状态字PSW)
④车站(用户栈指针)
(3)正点晚点(进程调度信息)
(4)火车始终地,运行时间(进程控制信息)
进程的三种状态
就绪态:就绪态是火车停在车站,一旦得到控制中心命令就可以立即运行的状态。
执行态:火车按照控制中心的指令正在进行的状态
阻塞态:由于没有燃料了或者是火车道突然出现了问题后而暂停行驶的状态
进程状态的转变
进程的组织
将列车表中具有相同状态的火车时刻表链接起来,按照正点晚点(索引方式)的方法,让他们形成一个队列。
比如将所有的正在运行(执行指针)的列车排列,将所有正在停靠的(就绪指针)的列车排列,最后再将所有晚点(阻塞指针)的列成进行排列组织。
进程的控制:创建、阻塞、唤醒、终止。
进程创建的步骤:
(1)新建空白的车次(K**)
(2)为车次分配火车
(3)初始化车次
(4)将车次放到火车时刻表中开始运行
进程阻塞
(1)将运行的状态改为晚点
(2)将晚点的列车列入阻塞队列
(3)转到控制中心,开始处理这个问题
进程唤醒
(1)将晚点的火车从晚点队列移出
(2)将晚点状态改为准备运行状态
(3)将火车列入开始运行队列
进程终止
(1)从火车时刻表中查看火车运行状态
(2)若火车正在进行,则终止火车的运行
(3)不光是火车头要终止运行,每一节车厢都要停止运行。
(4)火车编号取消
(5)将车次删除
总结;经过了这一次的火车进程之旅,让我对于进程有了更加深刻的认识,同时让我对于进程的印象更加深刻,同时也激发了我学习自考的兴趣,让我开始对于这门功课充满了期待,让我不再是为了自考通过而自考,而是真正的通过自考去学习一些东西,不断的充实自己,自己意识到了过程的重要性,更加重要的是这个学习的过程是快乐,学习知识同样是学习生活,也许联系生活需要的时间会相对长一些,但是这既锻炼了我们的思维发散,同时让自己对联系生活的学习方式充满了更高的期待,详细接下来的自己会将更多知识与自己的生活相连,达到学习即生活。