注意:这篇漫画描述的不是OS实际的工作方式,并没有那么严谨,比真正的如时钟中断并不是200毫秒才发生一次,时间间隔要小得多;再比如操作系统调度的是进程,不是程序, 希望这些不严谨的地方不会误导大家。
漫画主要是为了说明时钟中断在程序切换过程中所起到的决定性作用:操作系统也是一个程序,当另外一个程序在CPU中运行的时候,操作系统是没有办法把人家踢出CPU的,让自己去执行的,因为CPU只会按照指令去执行,如果某个程序一直执行,不把控制权转移给操作系统,操作系统是无可奈何的。
所以操作系统必须得和CPU配合起来才能完成任务的切换,在系统启动的时候,操作系统需要设定一个时钟,并且设置好时钟中断处理程序,当系统运行起来以后,让这个时钟定期地给CPU发信号,当CPU收到时钟中断以后,就要停下来,找到时钟中断处理程序去执行,这个中断处理程序最终会调用操作系统设置好的调度程序,调度程序会计算进程用了多少时间,是不是需要切换,这样,进程的并发就实现了。
【本文为51CTO专栏作者“刘欣”的原创稿件,转载请通过作者微信公众号coderising获取授权】