小黄鸭
本主题作为一个系列,给出操作系统:每个章节的脑图,并给出各个知识点之间的联系。
本经验来源于《王道考研操作系统》主要为了大家快速对着图表建立自己的知识架构。
如果有不对的地方,还欢迎指出,感谢指正。^. ^
系列1.1 操作系统的概念与定义
学习方法
学习大部分学科的第一步就是认识 它是什么,用来干什么的。
操作系统是管理底层系统的软件,服务于上层程序。
操作系统的作用也按照针对底层系统,针对上层程序分为两类:资源的管理者,向用户提供服务(具体如图)。
系列1.2 操作系统的特征
学习方法
掌握一个事物的特点,是学习它的捷径。
并发和共享是操作系统的最基本特征
并发:若干任务在同一时间内 间隔发生。没有并发来间隔读取数据,就没有共享发生。
并行:若干任务在同时发生(需要多核CPU)
虚拟:运行一个游戏需要4g内存,但在4g内存的电脑却能同时运行游戏、QQ、音乐等,远大于4g。运用的就是虚拟存储技术。CPU中交替存储程序运行中产生的数据。
另外我们可以一边听歌一边玩游戏就是虚拟处理器技术,其实是处理器在交替处理我们的程序。
异步:每个程序在CPU中处理一会,离开CPU一会,再进入CPU处理,逐步推进的。
系列1.3 操作系统的发展与分类
学习方法
了解发展过程有助于理解为什么现在是这样。
操作系统的每个发展步骤都解决了上一个发展过程的明显漏洞。
手工操作:每次CPU只处理一个任务
批处理:CPU可以开始交替处理多个任务,提升效率
分时操作系统:一个计算机,以极短的时间间隔,交替服务多个用户,提升利用率,但不能解决:我现在要把所有资源拿来,都用来服务导弹发射这样的紧急任务。
实时操作系统:对任务的优先级进行了排序,就特别可靠,导弹都可以搞。
系列1.4 操作系统的运行机制与体系结构
学习方法
后续展开的一切内容,都是基于事物的运行机制开展的。
操作系统的运行机制基于两种指令开展。特权指令:有权干涉系统硬盘,内存分布等重要领域。非特权指令:无权干涉以上内容,仅能进行运算等普通操作。
CPU为了处理两种指令会进入不同状态(知识点上下连接部分)
特权指令只能再内核程序中执行,非特权指令可以在内核程序和应用程序执行
在内核程序中,操作系统需要运行什么指令?(知识点上下连接部分)
时钟管理、中断处理、原语、管理系统资源。因为它们重要
根据操作系统内核大小可以将体系结构分为大内核和微内核(特点如图)
大内核:内核功能包括:时钟管理、中断处理、原语、管理系统资源。
微内核:内核功能包括:时钟管理、中断处理、原语。
系列1.5 中断和异常
中断的出现是为了解决CPU串行处理任务时,有些任务已经到达输出阶段,不需要使用CPU,CPU却还得等他走完才能处理下一个程序。如果在这时中断CPU对其操作,先处理下一个程序,等原来的程序输出完了,再处理它,就能提升效率,所以中断很重要,要了解。
中断也是CPU从用户态进入核心态的唯一途径,能够让操作系统获得控制权。(1.4提到了用户态与核心态)
中断是怎么运行的呢? 中断的处理过程:如图
学习方法
可以看出来,中断就是操作系统第一次开始管理CPU
系列1.6 系统调用
(知识点上下连接部分,讲完中断)
前面讲到中断,中断的目的就是为了让操作系统控制CPU进行一系列操作,这些操作指令被集合到.dll文件当中,供系统来调用。因此系统调用的操作分类,一定与对硬件的资源分配有关。
那么,系统调用和我们平常用的函数有何区别?(知识点上下连接部分)
系统调用的过程:如图
重点易错点:系统调用发生在用户态(CPU处理程序遇到打印之类的操作,没事做了,遇到陷入指令中断,进入核心态),核心态开始干活调整处理另一个程序,因此系统调用的处理发生在核心态。直到该打印操作结束,CPU有空,就继续返回原来的程序干活。