世界上很多问题都是跟资源分配和任务调度有关,而学会了操作系统的进程调度算法,我觉得也会给你在做事的时候带来一些启发吧。
在现代的操作系统中,有很多进程在内存中。有的正在运行,有的正等待某个事件的发生(比如等待用户敲击键盘)。那么操作系统作为一个大佬,就必须管理这些进程,让它们按照规则来,不能乱了套。
进程调度的类型
按照每个阶段的执行时间的相对比例来分,进程的调度类型包括一下三类:
(1)长程调度:每当创建一个新的进程的时候,都会执行一次长程调度,它决定是否把进程添加到待执行的进程池中。
(2)中程调度:它决定是否把待执行的进程池中的进程加入到部分/全部在内存中的进程集合中去。
(3)短程调度:决定哪一个进程可以获得CPU资源并执行。
一个进程执行要经历的过程可以用下图来表示:
图例:首先,进程会进入作业队列,然后进入就绪队列,最后才获得CPU资源并执行;如果进程需要进行I/O操作,还会进入等待I/O的队列,一旦对应事件发生,就会重新进入就绪队列。