操作系统发展史和常见习题汇总
文章目录
- 操作系统发展史和常见习题汇总
-
- 一、前言
- 二、OS结构和发展史
-
- [2.1 OS结构](#2.1 OS结构)
-
- [2.1.1 单体系统](#2.1.1 单体系统)
- [2.1.2 分层系统](#2.1.2 分层系统)
- [2.1.3 微内核](#2.1.3 微内核)
- [2.1.4 客户-服务器模型](#2.1.4 客户-服务器模型)
- [2.2 OS启动流程](#2.2 OS启动流程)
- [2.3 OS发展史](#2.3 OS发展史)
-
- [2.3.1 手工操作阶段](#2.3.1 手工操作阶段)
- [2.3.2 批处理阶段](#2.3.2 批处理阶段)
- [2.3.3 分时操作阶段](#2.3.3 分时操作阶段)
- [2.3.4 实时操作阶段](#2.3.4 实时操作阶段)
- 三、习题
- 四、小结
一、前言
这是关于操作系统最后一次有关总览的内容,主要介绍:OS结构、流程、发展史,以及几个习题练练手~
二、OS结构和发展史
2.1 OS结构
OS本身就是一个软件,组织架构是:单个/多个程序?
目的:设计操作系统不是为了取代Windows等微机系统,主要是应用于某些嵌入式场合,类似于新能源汽车等。
2.1.1 单体系统
整个操作系统是一个程序 ,将各种组件统统维护成一个组件,设计时分成了3个层,如下图:

使用很少,维护不方便,提出了模块化设计,也算是一种进步
2.1.2 分层系统

系统结构分得比较复杂,使用较少,层次结构,PC没有用到
2.1.3 微内核
主要模型:内核-用户,方便用户管理,使用多,PC用的较多,新能源汽车用的多

核心在于其分层模型
2.1.4 客户-服务器模型
和网络编程很像
例如:网吧中的无盘工作站,电脑不需要专门的CPU、磁盘等,会有一个专门的中心服务器来下发任务。
2.2 OS启动流程
OS是管理硬件的,因此不同硬件的启动流程不一样,操作系统是根据不同的体系结构来进行它的启动行为。
boot loader:Uboot(ARM)、BIOS(x86)
CPU上电,必然要触发reset异常,reset异常会被CPU厂家固化到一个固定的位置去执行程序(软件做不到),之后就可以启动程序(boot loader)。
boot loader:最先运行的一小段程序------引导加载程序,负责初始化硬件,和用户交互,将OS内核镜像文件加载到ram,加载操作系统内核。
操作系统存储在一个介质 上,就需要把它从一个介质中读到内存中,最终所有的程序都要在内存中运行,就是loader将其加到内存上,这就需要对介质做驱动(初始化硬件)。
操作系统启动需要启动参数,启动参数(arm:固化在Uboot,x86:配置分区告诉boot loader如何找到镜像),操作系统内核提供的是机制,还需要策略,规划要做什么,策略由应用程序来做,应用程序可以存在磁盘、ram、RFS(网吧)上,这就是根文件系统,加载根文件系统,然后运行应用程序和用户进行交互。
2.3 OS发展史
2.3.1 手工操作阶段
没有软件,都是人来搬运,计算机的空闲率很高
2.3.2 批处理阶段
实现作业的运转
-
单道批处理
一个CPU,内存上只能存放一道作业(独占CPU),由一个监督程序来进行管理,解放了人类。
-
多道批处理
内存上可以存放若干个作业,正在执行的作业因I/O等原因而暂停时(CPU没有主动权),可以马上调度另一道作业而执行,人机交互较麻烦
不是定时的
服务器上应用较多
2.3.3 分时操作阶段
将计算机资源以时间片为单位,为多个作业服务(抢占CPU),分时是中断的一种------定时器发生中断。
优点:可以即时响应,解决人机交互问题
2.3.4 实时操作阶段
紧急作业不需要时间片排队,系统接收外部信号可及时处理
三、习题

解析:
T1. 最重要的当属操作系统了,A✔
T2. 用户角度只能是和用户相关,A✔,其他选择本身是对的(不合题意罢了)
T3. A、BIOS是CPU启动时运行的第一个程序 ,和OS没有任何关系
B、ROM,只读存储器,只能写一次,ROM上只能放一些永远不能改的东西,但是flash(闪存)可读可写,但是很慢
C、EPROM,本身是EEPROM,可以擦除重写,等价于flash,但是擦除超级超级慢,只存一些小的数据,容量非常小
D、✔ 选D
T4. 选A。
虚拟化,就是隐藏起来,加一层就能做到。关键词:逻辑
T5. I ✔
II 开销是大的
III 多道,吞吐量大✔
IV 多道,可以充分利用✔ 选D

解析:
T6. 凡是多个东西,必然有打断,OS核心也是中断,B✔
T7. A "都在"是❌,单体系统就是"用户态"
B 时间片越小,切换频率越高,总是被打断,这不是很好
C 批处理分很多种,缺点很多,交互性是一种✔
D DOS是一个单用户单任务
T8. B✔

解析:
T9. I 交互❌
II ✔
III ✔ A✔
T10. 关键词:交互,C✔
T11. 分时:快速响应,B✔

解析:
T12. 实时:必须在规定时间内把事情做完
I ✔
II 办公不需要
III 机床规定时间内把零件做完✔
IV AutoCAD主要用于二维绘图和三维建模,不需要实时
V 工资也不需要
VI 股票需要✔ D✔
T13. I 多任务没有具体来说,因此并发和并行都可以✔
II 只要是多任务都涉及到共享保护
III 多CPU不是一定要有 C✔

解析:
T14. 并发,是同一时间间隔内,C✔
T15. 进程就是抽象处理机的,进程和进程是不能并行的,其他可以,D✔
T16. 中断是不知道什么时候被打断,但是子程序调用是已知的,不需要保存状态,B✔
T17. 核心:内部异常是主动发生的,中断是被动发生的
A、✔
B、指令是CPU来做的✔
C、只有执行了,才知道做了这个事情✔
D、这条指令执行不了了,如果再回去,就会又发生异常❌所有陷阱就理解为软中断

解析:
T18. A、访问了才发现缺页,因此是异常,选A
B、整数除以0,主动发生的✔
C、DMA可以理解为网卡,它什么时候传程序是不知道的,干完活才会通知,属于中断✔
D、"存储保护错",表示我知道做什么事,但是做不了,属于异常✔
T19. 中断不知道什么时候发生,需要保护现场,硬件保护一部分,OS保护一部分
A、硬件来管
B、硬件保护太慢,因此交给OS,可以保存,可以不保存
C、D不用保护
T20. 敲键盘是不知道什么敲的,靠OS中的驱动获取键盘的东西,因此是中断,B✔

解析:
T21. I 更新内核里的时间片✔
II ✔
III ✔ D✔
T22. 用户态->内核态说明产生了系统调用
I 除以0属于异常✔
II 只是计算函数,不需要获取资源之类,不是系统调用
III read只是系统调用,会陷入内核驱动,读取驱动中的read B✔

解析:
T23. B✔
T24. A✔
T25. I ✔
II ✔
III 传的不是文件名称,而是文件描述符 A✔
T26. 系统调用是异常,先有参数,再执行。C✔

解析:
T27. I ✔
II 保护外设的访问行为✔
III 不同的操作系统,系统调用不同,接口不同❌
IV ✔ C✔
四、小结
操作系统的难点在于有很多的概念,相信在后面逐章的分析中,整个框架最逐渐清晰起来的。
本篇就是最后一篇总览,后面就开始分别详细解释啦~