进程与火车

前言:

为什么要起这么一个名字呢,是因为昨天自己回家回来都是做的火车,火车给自己留下了非常深的印象,火车已经变成了自己生活中一部分。恰巧今天看自考的时候正好看到进程这一章节,所以不由自主的就将进程与自己的火车联系在了一起,这样在学习进程的一些相关概念的时候就会很简单了。以下是自己以火车的角度简单的阐释一些进程的概念,如果有什么写的不恰当的地方欢迎小伙伴在评论区下留言,及时斧正。


在我看来进程就像火车运行,而程序就像火车、CPU就像火车控制中心。

进程与火车

进程的定义

进程(火车运行)是允许并发执行(全国火车同步行进)的程序(火车)在某个数据集合(铁路)上运行的过程。


进程与程序的区别

火车是静态的,是一种实体。而火车运行时一种动态的。它对应了火车运动的过程,它一旦运动,就会时刻变化,是个动态过程。

火车是永久的,具有物理性,如果没有外部因素,可以永久存储。但是火车运行不一样,它的生命周期就是从火车动到火车停止。

火车是车厢的集合,而火车运行包括了车次(正文段)、乘客(用户数据段)、和进程控制块(运行时的控制)。


进程与程序的联系

一次火车的运行时一列火车的一次执行,一次火车运行对应至少一列特定的火车。

一个火车可以运行多次,同一列火车可以在不同的铁道上运行,因而构成了不同的火车运行。


进程控制块(火车时刻表)

火车时刻表中是火车运行的一部分,它之中记录了火车的运行情况以及控制运行所需的全部信息。

进程控制块中的信息

(1)车次(进程标识符信息)

(2)火车时刻表系统(处理机状态信息)

          ①数据库(通用寄存器)

          ②火车站智能系统(指令计数器)

          ③车票(程序状态字PSW)

          ④车站(用户栈指针)

(3)正点晚点(进程调度信息)

(4)火车始终地,运行时间(进程控制信息)


进程的三种状态

就绪态:就绪态是火车停在车站,一旦得到控制中心命令就可以立即运行的状态。

执行态:火车按照控制中心的指令正在进行的状态

阻塞态:由于没有燃料了或者是火车道突然出现了问题后而暂停行驶的状态

进程状态的转变

进程与火车


进程的组织

将列车表中具有相同状态的火车时刻表链接起来,按照正点晚点(索引方式)的方法,让他们形成一个队列。

比如将所有的正在运行(执行指针)的列车排列,将所有正在停靠的(就绪指针)的列车排列,最后再将所有晚点(阻塞指针)的列成进行排列组织。


进程的控制:创建、阻塞、唤醒、终止。

进程创建的步骤:

(1)新建空白的车次(K**)

(2)为车次分配火车

(3)初始化车次

(4)将车次放到火车时刻表中开始运行

进程阻塞

(1)将运行的状态改为晚点

(2)将晚点的列车列入阻塞队列

(3)转到控制中心,开始处理这个问题

进程唤醒

(1)将晚点的火车从晚点队列移出

(2)将晚点状态改为准备运行状态

(3)将火车列入开始运行队列

进程终止

(1)从火车时刻表中查看火车运行状态

(2)若火车正在进行,则终止火车的运行

(3)不光是火车头要终止运行,每一节车厢都要停止运行。

(4)火车编号取消

(5)将车次删除


总结;经过了这一次的火车进程之旅,让我对于进程有了更加深刻的认识,同时让我对于进程的印象更加深刻,同时也激发了我学习自考的兴趣,让我开始对于这门功课充满了期待,让我不再是为了自考通过而自考,而是真正的通过自考去学习一些东西,不断的充实自己,自己意识到了过程的重要性,更加重要的是这个学习的过程是快乐,学习知识同样是学习生活,也许联系生活需要的时间会相对长一些,但是这既锻炼了我们的思维发散,同时让自己对联系生活的学习方式充满了更高的期待,详细接下来的自己会将更多知识与自己的生活相连,达到学习即生活。