王道408---CS---计算机系统概论

发布时间 2023-09-01 14:55:29作者: TLSN

一、操作系统为用户提供的接口

命令接口

1、联机命令接口
交互式接口,比如linux的命令行终端
⽤户发送⼀个命令,系统就执⾏⼀次,主要特点是交互性,适⽤于分时或实时系统
2、脱机命令接口
类似与linux的bash脚本、windows的bat批处理脚本
⽤户⼀次性发送命令清单,系统按清单执⾏,中途不能⼲预,适⽤于批处理系统

程序接口

程序接⼝<=>系统调⽤,给软件/程序员使⽤的

二、裸机的概念

没有任何软件⽀持的计算机
扩充机器/虚拟机:覆盖了软件的机器

三、错题1.1

现代操作系统中两个最基本的特点是并发和共享 (p5-T5)

操作系统提供给编程人员的接口是系统调用

不属于多道程序设计的基本特征是顺序性 (T14)

引入多道程序设计后,程序的执行就失去了封闭性和顺序性。程序执行因为共享资源及相互
协同的原因产生了竞争,相互制约。考虑到竞争的公平性,程序的执行是断续的。顺序性是单道程序设计的基本特征。

四、操作系统历程

单道批处理操作系统

系统对作业的处理是成批进行的,但内存中始终保持一道作业。
此时面临的问题是:每次主机内存中仪存放一道作业,每当它在运行期间(注意这里是“运
行时”而不是“完成后”)发出输入/输出请求后,高速的CPU便处于等待低速的I/O完成的状态。

多道批处理系统

多道程序设计技术允许多个程序同时进入内存并允许它们在CPU中交替地运行,这些程序
共享系统中的各种硬/软件资源

宏观上并行,微观上串行

分时操作系统

所谓分时技术,是指把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给
各联机作业使用。

实时操作系统

为了能在某个时间限制内完成某些紧急任务而不需要时间片排队,诞生了实时操作系统。
在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并在严格的时限内
处理完接收的事件。实时操作系统的主要特点是及时性和可靠性。

网络操作系统

网络操作系统把计算机网络中的各台计算机有机地结合起来,提供一种统一、经济而有效的
使用各台计算机的方法,实现各台计算机之间数据的互相传送。

分布式计算机系统

分布式计算机系统是由多台计算机组成并满足下列条件的系统:系统中任意两台计算机通过
通信方式交换信息;系统中的每台计算机都具有同等的地位,即没有主机也没有从机;每台计算机上的资源为所有用户共享

个人计算机操作系统

五、错题1.2

中断技术使得多道批处理系统的I/O设备可与CPU并行工作(p12-T14)

当一道程序因中断请求而暂停运行时,CPU便立即转去运行另一道程序,即多道批处理系统的I/O设备可与CPU并行工作

批处理系统中,作业执行时用户无法干预其运行,只能通过事先编制作业控制说明书来间接
干预,缺少交互能力,也因此才发展出分时操作系统

p12-T15

六、错题1.3

通用操作系统使用时间片轮转调度算法,用户运行程序并不需要预先预订运行时间(p19-T1)

I/O通道实际上是一种特殊的处理器,是一种硬件技术 (T2)

DMA也是硬件技术

进程调度不需要硬件支持

地址映射中需要基地址(或页表)寄存器和地址加法器的支持。
进程调度由调度算法决定CPU使用权,由操作系统实现,不需要硬件的支持。
可能这里的进程调度与我熟悉的进程切换有些不一样

发生中断后,进入中断处理的程序属于 操作系统程序

当中断或异常发生时,通过硬件实现将运行在用户态的CPU立即转入核心态。中断发生时,
若被中断的是用户程序,则系统将从目态转入管态,在管态下进行中断的处理;若被中断是低级中断,则仍然保持在管态,而用户程序只能在目态下运行,因此进入中断处理的程序只能是OS程序。中断程序本身可能是用户程序,但是进入中断的处理程序一定是OS程序。

计算机区分核心态和用户态指令后,从核心态到用户态的转换是由操作系统程序执行后完成的,而用户态到核心态的转换则是由硬件完成的。(p19-T9)

广义指令是指系统调用指令

访管指令就是陷入指令,用于实现在用户态下运行的进程调用操作系统内核程序

中断处理和子程序调用都需要压栈以保护现场,中断处理一定会保存而子程序调用不需要保存其内容的是程序状态字寄存器 (T19)

外部中断处理过程,P℃值由中断隐指令自动保存,而通用寄存器内容由操作系统保存(T22)

这里的操作系统应该指管态下的操作吧

I/O指令只能在内核态执行(p21-T29)

发生中断时,CPU执行中断隐指令并把CPU模式改为内核态

七、操作系统结构

分层结构

优点:
1.便于调试和验证,自底向上逐层调试验证
2.易扩充和易维护,各层之间调用接口清晰固定

缺点:
1.仅可调用相邻低层,难以合理定义各层的边界
2.效率低,不可跨层调用,系统调用执行时间长

模块化

内聚性: 模块内部各部分间联系的紧密程度。内聚性越高,模块独立性越好
耦合性: 模块间相互联系和相互影响的程度。耦合性越低,模块独立性越好

优点
1、模块间清晰易维护
2、支持动态加载新的内核模块(如:安装设备驱动程序、安装新的文件系统模块到核),增强OS适应性
3、任何模块都可以直接调用其他模块,无需采用消息传递进行通信,效率高

缺点
1.模块间的接口定义未必合理、实用
2.模块间相互依赖,更难调试和验证

宏内核

所有的系统功能都放在内核里(大内核结构的○S通常也采用了“模块化“的设计思想)

优点
性能高,内核内部各种功能都可以直接相互调用
目前的主流操作系统,如Windows、Android、IOS、macOS、Linux都是基于宏内核的
但已经不是纯粹的宏内核了,而是广泛吸收了微内核的优点而糅合而成的混合内核

缺点:
1.内核庞大功能复杂,难以维护
2.大内核中某个功能模块出错,就可能导致整个系统崩溃

微内核

只把中断、原语、进程通信等最核心的功能放入内核。进程管理、文件管理、设备管理等功能以用户进程的形式运行在用户态

优点
1.内核小功能少、易于维护,内核可靠性高
2.内核外的某个功能模块出错不会导致整个系统崩溃

缺点
1.性能低,需要频繁的切换用户态/核心态。用户态下的各功能模块不可以直接相互调用,只能通过内核的"消息传递"来间接通信
2.用户态下的各功能模块不可以直接相互调用只能通过内核的"消息传递"来间接通信

外核

内核负责进程调度、进程通信等功能,外核负责为用户进程分配未经抽象的硬件资源,且由外核负责保证资源使用安全

优点
1.外核可直接给用户进程分配"不虚拟、不抽象"的硬件资源,使用户进程可以更灵活的使用硬件资源
2.减少了虚拟硬件资源的"映射层",提升效率

缺点
1.降低了系统的一致性
2.使系统变得更复杂

八、操作系统的引导

http://mjvvv.cn/blogBrowse?blogId=97

详细的引导方法

1.激活CPU

CPU加电,激活的CPU读取ROM中的boot程序,将指令寄存器设置为:0xFFFF0000 (CS:IP指向FFFF0H),表示CPU开始从0xFFFF0000这个内存中取出一条指令执行, 通常在0xFFFF0000处是一条地址转跳指令,转向BIOS的入口。登记BIOS中断例程入口地址,初始化中断向量表

2.硬件自检

启动BIOS程序后,先进行硬件自检(Power-On Self-Test),检查硬件是否出现故障。如有故障,主板会发出不同含义的蜂鸣,启动中止;如无故障,屏幕会显示CPU、内存、硬盘等信息。

3.4.加载带有操作系统的硬盘

硬件自检后,BIOS开始读取Boot Sequence(通过CMOS里保存的启动顺序,或者通过与用户交互的方式),把控制权交给启动顺序排在第一位的存储设备,然后CPU将该存储设备引导扇区的内容加载到内存中。

硬件自检完成后,BIOS的主要工作就是加载引导扇区,又叫做主引导记录(Master Boot Record,缩写:MBR)。BIOS根据Boot Sequence中的顺序,将所检查外部存储设备的第一个扇区(512B)载入内存,放在0x00007C00处,如果一个扇区的最后两个字节是“55 AA”,那么这就是一个引导扇区(MBR),这个外部存储设备也就是一块可引导盘。通常这个大小为512B的程序就称为引导程序(boot)。如果最后两个字节不是“55 AA”,那么BIOS就检查下一个外部存储设备。如果没有其他启动介质,则显示 ”No ROM BASIC” ,然后死机。
img

4.加载主引导记录MBR
硬盘以特定的标识符区分引导硬盘和非引导硬盘。如果发现一个存储设备不是可引导盘,就检查下一个存储设备。如无其他启动设备,就会死机。主引导记录MBR的作用是告诉CPU去硬盘的哪个主分区去找操作系统。

5.扫描硬盘分区表

扫描硬盘分区表并加载硬盘活动分区(有操作系统的分区)。MBR包含硬盘分区表,硬盘分区表以特定的标识符区分活动分区和非活动分区。主引导记录扫描硬盘分区表,进而识别含有操作系统的硬盘分区(活动分区)。找到硬盘活动分区后,开始加载硬盘活动分区,将控制权交给活动分区。



5.加载硬盘分区表
MBR在获得控制权后,需要找出哪个硬盘分区是含有操作系统的,于是开始扫描硬盘分区表,进而识别含有操作系统的硬盘分区(活动分区)

6.加载硬盘活动区
每个区可以安装不同的操作系统,MAR因此必须知道将控制权转交给哪个区。如果分区首字节字节为0x80,就表示该主分区是活动分区(有操作系统的分区),控制权要转交给这个分区。主引导记录在找到硬盘活动分区后,开始加载硬盘活动分区。

7.加载分区引导记录PBR
继续遍历硬盘活动分区,计算机会读取活动分区的第一个扇区。这个扇区叫做”分区引导记录”(Partition Boot Record,缩写为PBR,也可称为卷引导记录,Volume Boot Record,缩写为VBR)。分区引导记录标识了用于引导操作系统的程序位置。

分区引导记录的主要作用是,寻找活动分区根目录下的NTLDR(XP)、bootmgr(Win7 above)、grldr(Grub)、btldr.mbr(BootLink)等可用于引导操作系统的程序(启动管理器)

8.加载启动管理器
分区引导记录搜索活动分区中的启动管理器,加载启动管理器。

9、加载操作系统初始化程序
启动管理器寻找激活分区中的启动配置数据(如:Win7中的BCD文件、XP中的boot.ini),根据启动配置数据,在显示器上显示多操作系统选择画面,选择相应的操作系统,控制权交给操作系统初始化程序

10、加载操作系统
操作系统初始化程序获取控制权后,加载操作系统内核、硬件、服务等,之后加载桌面等信息,从而启动整个操作系统。

img

如图
① 是指CPU加电,设置内存指令寄存器,跳转到BIOS
② 是指CPU加载主引导记录MDR
③ 是指MDR找到活动分区后,加载活动分区(含有操作系统的硬盘分区,即图中的C盘)中的第一个扇区
④ 是指活动分区里的第一个扇区---分区引导记录PBR,他加载了根目录下的引导操作系统的程序(启动管理器)




简略的引导方法

img

九、虚拟机

使用虚拟化技术,将一台物理机器虚化为多台虚拟机器VM,每个虚拟机器都可用独立运行一个操作系统

注意虚拟机管理程序与虚拟机的区别,虚拟机管理程序可以控制多个虚拟机

第一类虚拟机管理程序

直接运行在硬件上,不必预先加载底层操作系统。通过直接访问底层硬件而无需其他软件
性能较好

第二类虚拟机管理程序

运行在Host OS之上,依赖Host OS分配物理资源,它就像一个普通的程序
由于需要HostOS作为中介,所以其性能差一些

WMware Workstation 就是第二类虚拟机管理系统

十、错题5.6

内核切换太慢不是大内核操作系统的缺点 (p30-T3)

微内核和宏内核作为两种对立的结构,它们的优缺点也是对立的。微内核OS的主要缺点是性能问题,因为需要频繁地在核心态和用户态之间进行切换,因而切换开销偏大

微内核的特点 (T4)

①内核足够小
②基于客户/服务器模式
③应用"机制与策略分离"原理
④采用面向对象技术。

计算机操作系统的引导程序位于硬盘中

操作系统的引导程序位于磁盘活动分区的引导扇区中。
引导程序分为两种:
一种是位于ROM中的自举程序(BIOS的组成部分),用于启动具体的设备

另一种是位于装有操作系统硬盘的活动分区的引导扇区中的引导程序(称为启动管理器),用于引导操作系统。

操作系统初始化的时候需要创建中断向量表,以实现通电自检POST,CPU检测到中断信号后,根据中断查询中断向量表,跳转到相应的中断处理程序中(T14)