本文是《操作系统:以程序员的角度》第三章,本章的主题是从程序员的角度来理解操作系统到底是如何工作的。本篇承接上文《以发展的眼光来看到操作系统》以下为本篇目录:
CPU一次只能做一件事
如何签收快递
中断与中断源
操作系统如何获取键盘按键
在继续接下来的课程之前,我们需要对操作系统有一个宏观上的认识,也就是我们常说的大局观,Big Picture,这对于我们理解操作系统以及学习接下来的课程都是极为重要的。那我们该怎么对操作系统有一个宏观上的认识呢,要做到这一点,你需要清楚的理解,操作系统是如何工作。
你可能会想这个问题很简单吧,在第二章《应用程序与操作系统的信使》中不是已经介绍了吗,CPU有两种工作模式,用户模式(User Mode)和内核模式(Kernel Mode),当CPU在执行我们的程序时工作在用户模式,CPU在运行操作系统时工作在内核模式,当我们的程序需要操作系统的帮助时会调用系统调用,执行系统调用时CPU会从用户模式切换到内核模式,此时操作系统开始接管整个系统,处理完用户程序的请求后CPU从内核模式切换回用户模式。
看到这里有的同学可能会想也许只有当我们进行系统调用时操作系统才有机会运行吧,是这样吗?学完本章的内容你就知道答案啦。
CPU一次只能做一件事
在回答这个问题之前,我们需要知道这样一个事实,那就是:
在任何时刻,一个CPU一次只能执行一个任务