OS-1 OS简述
1.1 操作系统概念
定义
管理cs的硬件和软件 →OS是系统资源的管理者
提供给用户/软件方便的接口和环境 →向上层提供方便的服务
cs系统中最基本的**==系统软件== ** →是最接近硬件的一层软件

功能
==一.OS是系统资源的管理者==
- 文件管理(U4)
- 存储器管理(U3)
- 处理机管理(U2)
- 设备管理(U5)

二.向上层提供方便的服务
GUI(图形用户界面)
命令接口
联机命令接口(交互式命令接口)【用户说一句,系统做一句】
脱机命令接口(批处理接口)【用户说一堆,系统做一一堆】
程序接口: 程序接口由系统调用构成 。
- 普通用户无法直接调用,通过运行包含系统调用的程序来间接使用系统功能。
- 程序员编程阶段可以使用系统调用来请求内核。
用户接口 == 命令接口 + 程序接口

三.最接近硬件的一层软件
- 没有任何软件支持的计算机称为裸机
- OS实现对硬件机器的扩展,把计算机变成虚拟机。

特征
并发
- 宏观同时发生,微观上交替发生。
- 并行:同时发生。
- 多核CPU可以实现真正意义上的并行。单核CPU只能并发。
共享
互斥共享方式:一个时间段只允许一个进程访问资源。
同时共享方式:一个时间段允许多个进程 “同时” 访问资源【此处的同时依旧是 并发,而不是并行。】。

并发和共享互为存在条件⭐

虚拟
虚拟空分复用技术:虚拟存储器

时分复用技术:虚拟处理器(把一个时间单位细分为多个,交替进行各个进程)
- 不同于超线程。超线程是硬件层面的。虚拟处理器是软件层面的。

异步

小结⭐
共享和并发是OS系统的最基本的特征。
并发和共享互为存在条件。
虚拟和异步的前提是并发性和共享性。
1.2 发展与分类

手工操作阶段
低效(人机速度矛盾)

批处理阶段 – 单道批处理系统
优点:换届人机速度矛盾
缺点:CPU有空闲(资源利用率低)

批处理阶段 – 多道批处理系统
优点:CPU不空闲(多道程序像流水线一样并发执行)
缺点:没有人机交互功能。

分时操作系统
计算机以时间片为单位==轮流==为各个用户服务,各个用户可以通过终端和计算机交互。
优点:有人机交互功能。
缺点:不能处理紧急任务。
实时操作系统
- 优点:能处理紧急事件。(紧急任务不需时间片排队)
- 特点:及时性,可靠性。
- 硬实时操作系统:必须在严格的规定时间完成处理(eg导弹)
- 软实时操作系统:可以偶尔的违反时间规定。
小结

1.3 运行机制
运行机制
1.内核程序 和 应用程序
- OS中最核心的是内核(Kernel)
- 内核由多个内核程序构成。(写操作系统的人完成的)
- 应用程序:普通人用到的程序
2.特权指令 和 非特权指令
- 就像sudo指令,**==申请超级管理员帮我们==**执行特权指令,修改操作系统。
- CPU执行一条指令前就能判断出指令类型(特权指令还是非特权指令)
- 内核态可以执行特权指令。
- 用户态只能执行非特权指令。

3.内核态 和 用户态
CPU怎么区分运行的指令是关于内核程序还是应用程序的呢?
内核态 → 用户态 :修改==PSW的标志位==为“用户态”(是一条特权指令),操作系统让出CPU使用权。
用户态 → 内核态 :由“中断”引发,OS拿回CPU的使用权(from 用户)
- tips:触发“中断”的时候,一般也是需要操作系统介入的时候。
内核态=核心态=管态,用户态=目态

4.小结

中断和异常
中断分为:
内中断(异常):与当前的指令有关。中断信号来源于CPU内部。
外中断:与当前执行的指令无关。中断信号来源于CPU外部。

内中断:
如果发现当前执行的指令是非法的,会引发中断信号。OS此时拿到CPU控制权,执行中断服务程序。
- (陷入Trap也属于内中断,因为是插入一条特权指令让CPU发现)
- 例子1:试图在用户态下执行特权指令
- 例子2:执行除法指令发现除数为0
- 例子3:有时候应用程序想请求内核服务,此时会执行“陷入指令”,该指令会引发中断信号。
- 系统调用就是通过陷入指令完成的。

外中断:
- 例子1:时钟中断 – 由时钟部件发来的中断信号。
- 例子2:IO中断 – 由输入输出设备发来的中断信号

中断机制的原理
检测:异常是指令执行中一直都会检测。中断是指令的执行周期后会有一个中断周期来检测。
找到中断服务程序:所以CPU检测到中断信号后,会根据信号类型去查询 “中断向量表”。(不同的中断信号,需要用不同的中断程序来处理。)
所以显然中断程序是内核程序。需要在”内核态”中运行。
系统调用

**==系统调用:是接口==**。是由OS提供给应用程序/程序员,来请求获得OS内核服务的接口。

库函数:
有的库函数设计系统调用,有的库函数不涉及系统调用。
涉及系统调用的库函数:把一些 系统调用封装成库函数 ,提供给程序员方便编程。
应用程序可以进行系统调用,也可以使用库函数。
系统调用的必要性
OS对==共享资源==进行统一的管理,向上提供“系统调用”,保证系统的稳定性安全性。(否则会出现像打印的文件内容混杂的情况)
与共享资源有关的操作:存储分配,IO操作,文件管理等。
系统调用的过程
过程: 传参 – 陷入指令/Trap(用户态) – 由操作系统内核程序处理系统调用请求(内核态) – 返回应用程序


1.4 操作系统体系结构
设计内核。
(考试考前两个)
操作系统的内核⭐
内核是OS最核心的部分。
大内核:橙色和黄色两部分。
微内核:只有黄色一行。

内核的构成:
- 时钟管理,负责计时
- 中断处理
- 原语,是一种特殊的程序。在os的最底层。运行只能一气呵成不能中断。
- 对系统资源进行管理的功能

大内核和微内核
大内核(宏内核/单内核):高性能。但内核难以维护(代码庞大)。【Linux,UNIX】
微内核:内核功能少,结构清晰,易于维护。但频繁在用户态/内核态切换会影响性能。【Windows NT】

OS系统不同结构的对比
分层结构 , 模块化 , 大内核 , 微内核 , 外核


1.5 操作系统引导
– 开机的时候,操作系统怎么运行起来的?
C盘是活动分区,因为安装了操作系统
(ROM断电数据不消失,所以引导程序放在ROM里面)

1.6 虚拟机
第一类VMM:①分配的是物理内存(类似外核)。②本身就是操作系统,运行在最高特权级,直接管理硬件。③优点是支持更多的虚拟机。且性能更好。
第二类VMM:①分配是虚拟内存。②主体作为应用程序运行在用户态;当需要执行特权指令时,通过加载的内核模块协助完成。③优点是可迁移性更好,导出镜像文件就可以迁移。

