1.1 操作系统概念

定义

管理cs的硬件和软件 →OS是系统资源的管理者

提供给用户/软件方便的接口和环境 →向上层提供方便的服务

cs系统中最基本的**==系统软件== ** →是最接近硬件的一层软件

image-20260317090534216

功能

==一.OS是系统资源的管理者==

  • 文件管理(U4)
  • 存储器管理(U3)
  • 处理机管理(U2)
  • 设备管理(U5)

image-20260317090725251

二.向上层提供方便的服务

  • GUI(图形用户界面)

  • 命令接口

    • 联机命令接口(交互式命令接口)【用户说一句,系统做一句】

    • 脱机命令接口(批处理接口)【用户说一堆,系统做一一堆】

  • 程序接口: 程序接口由系统调用构成 。

    • 普通用户无法直接调用,通过运行包含系统调用的程序来间接使用系统功能。
    • 程序员编程阶段可以使用系统调用来请求内核。
  • 用户接口 == 命令接口 + 程序接口

image-20260317091221257

三.最接近硬件的一层软件

  • 没有任何软件支持的计算机称为裸机
  • OS实现对硬件机器的扩展,把计算机变成虚拟机。

image-20260317092101296

特征

并发

  • 宏观同时发生,微观上交替发生
  • 并行:同时发生。
  • 多核CPU可以实现真正意义上的并行。单核CPU只能并发。

共享

互斥共享方式:一个时间段只允许一个进程访问资源。

同时共享方式:一个时间段允许多个进程 “同时” 访问资源【此处的同时依旧是 并发,而不是并行。】。

image-20260317094541901

并发和共享互为存在条件

image-20260317093335463

虚拟

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

image-20260317094718173

时分复用技术:虚拟处理器(把一个时间单位细分为多个,交替进行各个进程)

  • 不同于超线程。超线程是硬件层面的。虚拟处理器是软件层面的。

image-20260317095119432

异步

image-20260317093834827

小结⭐

共享和并发是OS系统的最基本的特征。

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

虚拟和异步的前提是并发性和共享性。

1.2 发展与分类

image-20260317102229283

手工操作阶段

低效(人机速度矛盾)

image-20260317102529104

批处理阶段 – 单道批处理系统

优点:换届人机速度矛盾

缺点:CPU有空闲(资源利用率低)

image-20260317103006178

批处理阶段 – 多道批处理系统

优点:CPU不空闲(多道程序像流水线一样并发执行)

缺点:没有人机交互功能。

image-20260317103224314

分时操作系统

计算机以时间片为单位==轮流==为各个用户服务,各个用户可以通过终端和计算机交互。

优点:有人机交互功能。

缺点:不能处理紧急任务。

实时操作系统

  • 优点:能处理紧急事件。(紧急任务不需时间片排队)
    • 特点:及时性,可靠性。
  • 硬实时操作系统:必须在严格的规定时间完成处理(eg导弹)
  • 软实时操作系统:可以偶尔的违反时间规定。

小结

image-20260317103602462

1.3 运行机制

运行机制

1.内核程序 和 应用程序

  • OS中最核心的是内核(Kernel)
  • 内核由多个内核程序构成。(写操作系统的人完成的)
  • 应用程序:普通人用到的程序

2.特权指令 和 非特权指令

  • 就像sudo指令,**==申请超级管理员帮我们==**执行特权指令,修改操作系统。
  • CPU执行一条指令前就能判断出指令类型(特权指令还是非特权指令)
  • 内核态可以执行特权指令。
  • 用户态只能执行非特权指令。

image-20260317104945090

3.内核态 和 用户态

  • CPU怎么区分运行的指令是关于内核程序还是应用程序的呢?

  • 内核态 → 用户态 :修改==PSW的标志位==为“用户态”(是一条特权指令),操作系统让出CPU使用权。

  • 用户态 → 内核态 :由“中断”引发,OS拿回CPU的使用权(from 用户)

    • tips:触发“中断”的时候,一般也是需要操作系统介入的时候。
  • 内核态=核心态=管态,用户态=目态

image-20260317154741951

4.小结

image-20260317105702370

中断和异常

中断分为:

  • 内中断(异常):与当前的指令有关。中断信号来源于CPU内部。

  • 外中断:与当前执行的指令无关。中断信号来源于CPU外部。

image-20260317161321168

内中断:

如果发现当前执行的指令是非法的,会引发中断信号。OS此时拿到CPU控制权,执行中断服务程序。

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

image-20260317160607220

外中断:

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

image-20260318161821260

中断机制的原理

检测:异常是指令执行中一直都会检测。中断是指令的执行周期后会有一个中断周期来检测。

找到中断服务程序:所以CPU检测到中断信号后,会根据信号类型去查询 “中断向量表”。(不同的中断信号,需要用不同的中断程序来处理。)

所以显然中断程序是内核程序。需要在”内核态”中运行。

image-20260318162418455 image-20260317161514988

系统调用

image-20260317161638390

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

image-20260318163000584

库函数:

有的库函数设计系统调用,有的库函数不涉及系统调用。

涉及系统调用的库函数:把一些 系统调用封装成库函数 ,提供给程序员方便编程。

应用程序可以进行系统调用,也可以使用库函数。

image-20260318163608975

系统调用的必要性

OS对==共享资源==进行统一的管理,向上提供“系统调用”,保证系统的稳定性安全性。(否则会出现像打印的文件内容混杂的情况)

与共享资源有关的操作:存储分配,IO操作,文件管理等。image-20260318171421203

系统调用的过程

过程: 传参 – 陷入指令/Trap(用户态) – 由操作系统内核程序处理系统调用请求(内核态) – 返回应用程序

image-20260317162515899

image-20260318172241437

image-20260317162950897

1.4 操作系统体系结构

设计内核。

(考试考前两个)

image-20260317163025717

操作系统的内核⭐

内核是OS最核心的部分。

大内核:橙色和黄色两部分。

微内核:只有黄色一行。

image-20260317163217192

内核的构成:

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

image-20260318172514811

大内核和微内核

大内核(宏内核/单内核):高性能。但内核难以维护(代码庞大)。【Linux,UNIX】

微内核:内核功能少,结构清晰,易于维护。但频繁在用户态/内核态切换会影响性能。【Windows NT】

image-20260318173324389

OS系统不同结构的对比

分层结构 , 模块化 , 大内核 , 微内核 , 外核

image-20260317164214912

image-20260317165029385

1.5 操作系统引导

– 开机的时候,操作系统怎么运行起来的?

C盘是活动分区,因为安装了操作系统

(ROM断电数据不消失,所以引导程序放在ROM里面)

image-20260318175119665

1.6 虚拟机

第一类VMM:①分配的是物理内存(类似外核)。②本身就是操作系统,运行在最高特权级,直接管理硬件。③优点是支持更多的虚拟机。且性能更好。

第二类VMM:①分配是虚拟内存。②主体作为应用程序运行在用户态;当需要执行特权指令时,通过加载的内核模块协助完成。③优点是可迁移性更好,导出镜像文件就可以迁移。

image-20260318180523370