第一章 计算机系统概述
知识回顾
(对于考研408而言)
这个章节主要以选择题形式考察。
总的来说,这个章节考察的深度、难度不会太大。另外,这个章节的分值占比是比较低的。
不过,对第一章的学习,有助于我们理解操作系统和普通的应用程序是怎么在电脑上有条不紊的运行的。特别是上图做了标记的3个部分,有助于理解操作系统的运行原理。
先说图中没有标记的几个小节:
第一个小节中,学习了操作系统的概念和功能。
需要回忆一下,操作系统向上层提供了哪些接口。包括它给用户提供了哪些接口;又给应用程序提供了哪些接口。
第二个小节中,学习了操作系统的发展历史。
单道批处理阶段、多道批处理阶段、分时操作系统和实时操作系统,这几个阶段,各自的优点和缺点是什么。
第三个小节中,学习了操作系统的特征。
分别是,并发、共享、异步和虚拟。操作系统的这些特征,随着时候的学习,肯定会理解的越来越深,不需要死记硬背。
最后一个小节中,学习了操作系统的两种体系结构。
分别是大内核和微内核。它们两个各自的优点和缺点分别是什么,这个也是需要回顾一下的知识。
图中做了标记的几个小节:(标了小红旗的)
在操作系统的运行机制这个小节中。
我们学到了,CPU上有可能会运行两种程序:一种是操作系统内核程序,一种是普通的应用程序。
操作系统内核程序是管理者,普通应用程序是被管理者。
所以,当CPU上正在运行操作系统内核程序的时候,我们可以说,此时CPU是在为管理者办事。而当CPU上面正在运行的是普通应用程序的时候,我们可以说此时CPU是正在为被管理者办事。
其中,只有当CPU正在为管理者办事的时候,它才会执行特权指令。
需要重点理解的是,在什么时候,CPU会从内核态转变为用户态;又在什么时候,CPU会从用户态转变为内核态?
当我们的电脑刚开机的时候,CPU上面跑的肯定是操作系统内核程序。也就是说,刚开始,CPU是在为管理者办事。但是,当时机成熟的时候,这个管理者会告诉CPU,接下来你应该去执行哪一个应用程序。
也就是说,从内核态转变为用户态这个过程,其实是操作系统的主动行为。当它希望把CPU的使用权让给应用程序的时候,CPU才会转向用户态。
什么时候CPU又需要从用户态转为内核态呢?当CPU处于用户态的时候,说明CPU此时正在为某一个被管理者办事、正在执行某一个应用程序。
在执行这个应用程序的过程当中,它有可能会接收到某一来自外部的中断信号,当它收到这个外部中断信号的时候,就会暂停执行应用程序,立即转为执行操作系统的某一内核程序。或者,在执行这个应用程序的过程当中,发生了一些特殊的情况,也就是异常,当CPU在执行应用程序的指令的过程中检测到了异常,它也会立即停止执行当前的应用程序,转而执行某一操作系统内核程序。
即,**当发生了中断或异常的时候,会促使CPU由用户态又转变回内核态。**也就是CPU会被重新召回、为管理者办事。
这种运行机制即使并没有特别高深。在中国古代已经有了类似这样的运行机制了,就像古代的皇帝、太监、大臣。
管理者与被管理者
异常的情景
系统调用的情景
中断(专指外中断)的情景
所以,其实操作系统的运行机制的设计思想离我们并不遥远(虽然看起来抽象)。要先在宏观上理解操作系统和应用程序是怎样有条不紊地上CPU运行,它们对CPU的运行权是怎样相互交接的。之后再不断地巩固、加深理解其背后的具体细节。