本文是对王道计算机408操作系统+王道2025操作系统考研复习指导部分的提炼总结,个人心得,包含视频内容和课后习题的提炼.
本人是26届考研考生,本文属于考研复习的笔记,会持续更新~
建议搭配视频和指导书食用~ ~ 视频课请看王道计算机考研408操作系统
本文是操作系统第一章内容
总目录2026考研408 操作系统
操作系统
第一章: 操作系统概述
操作系统的基本概念
计算机系统的层次结构
- 硬件
- 操作系统
- 应用程序
- 用户
操作系统是计算机系统最基本的系统软件
操作系统的目标和功能
- 操作系统作为计算机系统资源的管理者
重点
- 处理机管理
- 存储器管理
- 文件管理
- 设备管理
- 操作系统作为用户与计算机硬件系统之间的接口
- GUI图形化用户接口
- 命令接口
- 联机命令接口(交互式命令接口)
- 用户输入一条指令,操作系统执行一条指令
- 脱机命令接口(批处理命令接口)
- 一次提出一堆请求,然后操作系统一条一条执行
- 联机命令接口(交互式命令接口)
- 程序接口
- 由一系列系统调用(广义指令)组成,用户通过在程序中使用这些系统调用来请求操作系统提供服务
- 操作系统实现了对计算机资源的扩充
操作系统的特征
- 并发
- 并发(交替)并行(同时)
- 共享
- 互斥共享方式
- 一个时间段内只允许一个程序访问该资源
- 同时共享方式
- 同一个时间段多个程序访问资源
- 互斥共享方式
- 虚拟
- 异步
- 并发和共享是操作系统最基本的两个特征,二者互为存在条件
习题提炼:
- 系统调用是操作系统为应用程序使用内核功能所提供的接口
- 系统调用是由操作系统提供给用户的,它只能通过用户程序间接使用
- 命令解释器属于命令接口,
shell
是命令解析器.它也属于命令接口 - 系统中的缓存全部由操作系统管理,对用户是透明的,操作系统不提供管理系统缓存的系统调用
- 引入多道程序设计之后,程序的执行就失去封闭性和顺序性,转而出现制约性,间隔性,共享性
- 在单处理机系统中,同一时刻只能有一个进程占用处理机,处理机和设备是可以并行的,设备和设备是可以并行的
- 通道可以独立于CPU和IO设备,因此两者可以并行
- 系统开机后,操作系统的程序会被自动加载到内存中的系统区,这段区域是RAM
- 多道程序系统(早期多道批处理系统)会将所有进程的数据全部调入主存,再让多道程序并发执行,即使没使用虚拟存储管理也能实现多道程序并发
说明库函数和系统调用的区别和联系
- 库函数是语言或者应用程序的一部分,运行在用户空间,系统调用是操作系统的一部分是内核为用户提供的程序接口,运行在内核空间
- 库函数可以使用系统调用来实现功能
- 使用系统调用的库函数一般比未使用系统调用的库函数执行效率低(因为执行系统调用时需要上下文切换和状态转换即用户态转向内核态)
操作系统的发展历程
手工操作阶段(此阶段无操作系统)
缺点:
- 用户独占全机
- 人机速度矛盾导致资源利用率极低
批处理阶段(开始出现操作系统)
为了解决人机矛盾,CPU
和IO
设备之间速度不匹配的矛盾出现批处理系统
- 单道批处理系统
缺点:
- 同一时间,内存只能允许一道程序运行
- CPU有大量时间是在等待IO完成
- 多道批处理系统
- 通过组织操作使
CPU
总有一个作业可执行
缺点:
- 用户响应时间长,没有人机交互功能,用户既不能了解程序的运行情况也不能控制计算机
- 通过组织操作使
分时操作系统
以时间片
为单位轮流为各个用户作业服务
主要特征
- 同时性
- 交互性
- 独立性
- 及时性
缺点:
- 在一些应用场合下,需要系统对外部的信息在规定的时间内(比时间片的时间还要短)内做出响应(比如飞机订票,导弹制导)
实时操作系统
- 硬实时系统
- 软实时系统
习题提炼
- 实时系统的进程调度通常采用抢占式的高优先级者优先算法
- 对操作系统的优先级+非抢占式调度算法因素进行改进有利于改善系统的响应时间
批处理操作系统,分时操作系统,实时操作系统特点?
- 批操作系统内多道程序并发执行,cpu利用率高吞度量大,但需要而外开销来组织作业和切换作业,并且无交互能力
- 分时操作系统人机交互性强,每个用户独立使用计算机,独立性强,系统响应及时
- 实时操作系统响应速度快安全性高,可靠性强,但是资源利用率低
操作系统的运行环境(运行机制)
处理器运行模式
-
CPU执行的两种程序
- 内核程序
- 特权指令,用户不能直接使用
- 应用程序
- 非特权指令,用户能直接使用的指令,他不能直接访问计算机中的软硬件资源,仅限于访问用户的地址空间,为了防止用户程序对系统造成破坏
- 内核程序
-
CPU存在两种状态
- 内核态(核心态,管态)
- 处于内核态的时候说明此时执行的是内核程序,可以使用特权指令
- 用户态(目态)
- 处于用户态的时候说明执行的是应用程序,使用只能非特权指令
- 通过程序状态寄存器(PSW)切换,注意内核态到用户态切换也是一个特权指令
- 当CPU处于用户态度的时候但是却执行了特权指令,CPU能判断出该指令是特权指令并检查PSW寄存器,判断出是用户程序执行的特权指令,然后就会发出中断,强行变成核心态(硬件自动完成即修改PSW寄存器),此时就得执行内核程序,由于是中断引起的CPU状态转换,所以会执行处理中断信号的内核程序,执行完内核程序就会切换CPU状态到用户态
- 但凡应用程序需要操作系统介入的地方,都会出发中断信号
- 内核态(核心态,管态)
- 内核是操作系统最核心最重要的部分,内核由很多内核程序组成,内核程序是最接近硬件的部分
- 中断是让操作系统夺回CPU使用权的唯一途径
- 补充
- 现代操作系统几乎都是分层式的结构
- 一些与硬件关联紧密的模块比如时钟管理,中断处理,设备驱动等处于最底层
- 其次是运行频率较高的程序如进程管理,存储器管理和设备管理等
- 这两部分内容构成了操作系统的内核
- 内核是计算机上配置的底层软件
- 大部分内核包括四个方面内容
- 时钟管理
- 在计算机各部件中,时钟是最关键的设备
- 时钟的第一功能是计时
- 通过时钟中断,可以实现进程的转换比如分时系统,时间片响应时间一到就会触发中断更换进程
- 中断机制
- 引入中断机制的初衷就是在多道程序运行环境中提高CPU的利用率
- 原语
- 位于操作系统的最底层,是最接近硬件的部分
- 这些程序具有原子性,其操作只能一气呵成
- 这些程序运行的时间比较短,但是由于位于最底层,会频繁调用
- 定义原语的直接方法就是关闭中断,让其所有动作不可分割的执行完毕然后再打开中断
- 系统控制的数据结构及处理
- 进程管理
- 存储器管理
- 设备管理
- 时钟管理
- 从以上内容可以得出,核心态指令包括系统调用指令和针对时钟,中断,原语操作的指令
中断和异常的概念
- 中断的类型
- 内中断
- 与当前执行的指令有关
- 中断信号来自与CPU内部
- 如用户态执行特权指令,地址越界,除以零等非法指令
- 用户态想要操作系统服务,执行特殊指令:陷入指令(并不是特权指令,他是用户态执行的想要使用操作系统的服务的指令,肯定不是特权指令,不然直接就是非法指令触发中断了)
- 外中断
- 与当前执行的指令无关
- 中断信号来自CPU外部
- 如时钟中断,IO设备发出中断
- 内中断
- CPU每一条指令执行结束都会例行检查是否有外部中断信号
- 内中断也称为异常分为
- 陷阱,陷入(trap,访管指令) 由陷入指令引发,故意为之想要使用系统调用
- 故障(fault) 由错误条件引起,可能被内核程序修复,内核程序如果修复故障,就会把CPU使用权还给应用程序如(缺页故障)
- 终止(abort) 是指出现了CPU无法执行的硬件故障,如控制器出错,存储器校验出错
- 外中断直接就叫做中断
- 故障异常和自陷异常属于软件中断(程序性异常)
- 终止异常和外部中断属于硬件中断
- 外中断可分为可屏蔽中断和不可屏蔽中断
- 可屏蔽中断指的是通过INTR线发出的中断请求
- 不可屏蔽中断指的是通过NMI线发出的中断请求,通常是紧急的硬件故障,此外异常也是不能屏蔽的
- 中断机制的基本原理
- 不同的中断,需要不同的中断处理程序处理(触发中断,根据中断信号的类型查询中断向量表,通过中断向量表去找到对应的中断程序)
系统调用
什么是系统调用,有什么作用?
- 用户在程序中调用操作系统所提供的一些子功能
- 应用系统可以通过系统调用来请求获取操作系统的内核服务
系统调用(按功能分类)
- 设备管理
- 文件管理
- 进程管理
- 进程通信
- 内存管理
习题提炼
- 通用操作系统使用时间片轮转调度算法,用户程序不需要预先预定运行时间
- 操作系统中,通道技术是一种硬件技术
- 中断是操作系统必须提供的功能
- 用户在程序设计的时候编写系统调用命令,该命令经过编译之后形成若干参数和陷入指令(访管指令,trap指令)
- 从核心态到用户态是由操作系统程序执行以后完成的,而用户态到核心态的转换则是硬件完成的
- 寄存器清零可以在用户态下进行,置时钟指令核心态运行
CPU
处于核心态的时候可以执行除了访管指令以外的所有指令- 子程序调用只需保存程序断点,即该指令的下一条指令地址(PC);中断处理不仅要保存断点(PC的内容)还要保存程序状态字寄存器(PSW)
- 处理外部中断的过程中,程序计数器(PC)的内容由中断隐指令保存,而通用寄存器的内容由操作系统保存
- 时钟中断的主要任务是处理和时间有关的信息以及决定是否进行调度程序,和时间有关的所有信息包括系统时间,进程时间片,延时,使用CPU时间,各种定时器
- 当
CPU
检测到中断信号之后,硬件会自动保存PC和PSW的值(也就是中断处理自己会保存这些),硬件会查询该中断信号的中断向量确定中断服务程序的入口地址(各种中断向量统一放在中断向量表中,该表由操作系统初始化),接下来执行中断服务程序,保存中断屏蔽字,保存各通用寄存器的值都是由操作系统完成
操作系统结构.
- 分层结构
- 思想
- 内核分多层,每层可以单向调用更低一层的接口
- 优点
- 便于调试和验证,自底向上逐层调试验证
- 易扩充和易维护
- 缺点
- 仅可以调用相邻低层,合理定义各层比较困难,依赖关系固定不灵活(分层结构最显著的缺点)
- 效率低,不可跨层调用,需要一层一层往里调
- 思想
- 模块化
- 思想
- 将操作系统按功能分为若干具有一定独立性的模块,某个模块只有某方面的管理功能,各个模块之间通过接口进行通信
- 如果将模块划分的太小,虽然可以降低每个模块的复杂性,但是各个模块之间的联系复杂起来,如果模块划分的太大,单个模块内的复杂性就会很高. 二者之间要做一定平衡,此外划分模块的时候要充分考虑模块独立性问题,衡量模块独立性有两个标准
- 内聚性
- 模块内部各部分间联系的紧密程度,内聚性越高,独立性越好
- 耦合度
- 模块之间相互联系相互影响的程度,耦合度越低,独立性越好
- 内聚性
- 优点
- 逻辑清晰便于维护,确定模块接口以后可以多模块同时开发
- 增强操作系统可适应性
- 模块之间直接通信,效率高
- 缺点
- 模块的接口定义未必合理,实用
- 模块间相互依赖,更加难以调试和验证
- 各个模块同时开发,无法找到一个可靠的决定顺序
- 思想
- 宏内核(单内核,大内核)
- 思想
- 所有系统功能都放在内核里面(里面也采用了模块化的思想)
- 优点
- 性能高,内核各部分功能可以直接相互调用
- 缺点
- 内核庞大功能复杂,难以维护
- 大内核某个功能模块出错就有可能导致整个系统崩溃
- 思想
- 微内核
- 思想
- 只把中断,时钟,原语等最核心的功能放在内核中,文件管理,进程管理,设备管理等都在用户态
- 优点
- 内核小功能小,易于维护,可靠性高
- 内核外某个模块出错不会导致整个系统崩溃
- 缺点
- 用户态下的各个模块之间不能直接调用,只能通过内核的消息传递来通信,效率低下
- 思想
- 外核
- 思想
- 外核负责为用户分配未经抽象的硬件资源,且由外核保证资源使用安全
- 优点
- 外核可以直接给用户提供不虚拟,不抽象的硬件资源,是用户更加灵活的使用硬件资源
- 减少了映射层增加了效率
- 缺点
- 降低了系统的一致性
- 使系统变得更复杂
- 思想
操作系统引导
开机的时候,如何让操作系统运行起来?
- 激活
CPU
:- 开机给
CPU
通电,CPU
去主存固定位置执行ROM
中的boot
程序,将指令寄存器置为BIOS
(基本输入输出系统)的第一条指令即开始执行BIOS
指令
- 开机给
- 硬件自检查
- 启动
BIOS
程序后先进行硬件自检查,检查硬件是否故障,缺失,如果有故障启动终止,如果无故障屏幕显示信息继续运行;
- 启动
- 加载带有操作系统的硬盘:
BIOS
执行引导程序部分,这块程序的作用就是:指示CPU将磁盘当中的主引导记录(MBR
)读入内存,其中包含磁盘引导程序
和分区表
- 加载主引导记录(
MBR
)- 读取在
RAM
的磁盘引导程序
会根据分区表
判断活动分区(安装了操作系统的分区,C盘
)的位置,将其引导记录(PBR)
读入RAM
中
- 读取在
- 加载
PBR
CPU
在RAM
中执行引导记录PBR
,引导记录PBR
的作用负责找到启动管理器,启动管理器是另一个程序,通常会放在根目录下面,最后将启动管理器读入RAM
中;
- 加载启动管理器
CPU
在RAM
中执行启动管理器了,这个启动管理器就可以完成操作系统初始化
虚拟机
-
第一类虚拟机管理程序(裸金属架构)
- 只有虚拟机管理程序运行在内核态
- 当上层虚拟出来的操作系统想要使用特权指令的时候,他的动作会被虚拟机管理系统所截获,虚拟机管理程序会将想要执行的特权指令进行等价转换模拟出来执行成功的感觉
-
第二类虚拟机管理系统(寄居架构)
- 运行在宿主操作系统上,比如我电脑安装的windows操作系统在这台电脑上又安装第二类虚拟机管理系统软件
-
二者对比
两类虚拟机VMM的对比 | ||
第一类VMM | 第二类VMM | |
对物理资源的控制权 | 直接运行在硬件上,能直接控制和分配物理资源 | 运行在宿主操作系统上,依赖于宿主操作系统分配物理资源 |
资源分配方式 | 类似于外核的分配方式,分配未经抽象的物理硬件 | 宿主操作系统给虚拟机管理系统分配虚拟磁盘 |
性能 | 性能更好 | 性能更差,需要宿主操作系统做中介 |
可支持的虚拟机数量 | 更多 | 更少 |
虚拟机的可迁移性 | 更差 | 更好,商业话应用更加广泛 |
运行模式 | 第一类VMM运行在最高特权级,可以执行最高特权指令 | 第二类VMM部分运行在用户态,小部分运行在内核态 |
习题提炼
- 层次结构的操作系统的显著不足是难以做到每层精心的设计
- 四个方面描述微内核OS
- 内核足够小
- 基于客户/服务器模式(C/S模式)
- 应用机制与策略分离机制
- 采用面向对象技术
- 宏内核又称为单内核,单一内核,大内核
- Windows是融合了宏内核和微内核的操作系统
- 用户进程可以通过调用"库"请求操作系统外核服务
- 引导程序会将存储器中操作系统全部加载到内存中
这是错误的
,常驻内存的只有操作系统内核其他部分仅在需要的时候调用 - 计算机操作系统的引导程序位于磁盘活动分区的引导扇中(成为启动管理器)
- 引导程序分为两种
- 一种是位于ROM的自举程序(BIOS的组成部分)用于
启动具体设备
- 另一种就是启动管理器用来引导操作系统
- 一种是位于ROM的自举程序(BIOS的组成部分)用于
- 虚拟机既可以通过软件实现也可以通过硬件实现
- VMM的功能没有操作系统功能复杂,其代码量少于一个操作系统