第一章 计算机系统概述
1. 操作系统的概念(功能和目标)
1.1 操作系统的概念
- 操作系统负责管理协调硬件,软件等计算机资源的工作
- 操作系统为上层用户,应用程序提供简单易用的服务
- 操作系统是一种系统软件
1.2 操作系统的功能和目标

2. 操作系统的四个特征

- 并发和共享最基本的两个性质
- 并发和共享互为存在条件
- 没有并发和共享,就谈不上虚拟和异步
注意(重要考点):
- 单核CPU同一时刻只能执行一个程序,各个程序只能并发地执行
- 多核CPU同一时刻可以同时执行多个程序,多个程序可以并行地执行

3. 操作系统的发展与分类

3.1 常考的三种操作系统对比
| 批操作系统 | 定义 |
|---|---|
| 批操作系统 | 脱机使⽤计算机;作业是批处理的;系统内多道程序并发执⾏;交互能⼒差; |
| 分时操作系统 | 多个⽤户同时使⽤计算机;⼈机交互强;具有每个⽤户独⽴使⽤计算机的独占性;系统响应及时 |
| 实时操作系统 | 能对控制对象做出及时反应;可靠性⾼;响应及时;但资源利⽤率低 |
3.2 其他操作系统对比
- Unix系统是多用户,多任务操作系统,属于分时操作系统

4. 操作系统的运行机制

4.1 程序运行的原理
- 高级语言编写代码,然后转换为机器指令
- 程序运行的过程就是CPU执行指令的过程
4.2 两种程序
- 内核程序
- 应用程序
4.3 🐳两种指令
- 特权指令 : 指不允许用户直接使用的指令
- 对I/O设备操作指令
- 存取特殊寄存器的指令
- 有关访问程序状态的指令
- 置中断指令
- 关中断指令
- 清内存指令
- 置时钟指令
- 非特权指令:允许用户直接使用的指令 , 不能直接访问系统中的软硬件资源 ,只限于访问用户的地址空间
- 访管/trap指令
4.4 🦋两种处理器状态
- 核心态【管态】
- 只能在核心态运行的指令和程序:
- 时钟管理相关的指令【置时钟指令】
- 中断机制相关的指令【时钟中断程序】
- 原语相关的指令
- 系统控制的数据结构与处理【进程调度程序】【进程切换】【缺页处理程序】【系统调用命令】
- 只能在核心态运行的指令和程序:
- 用户态【目态】
- 在用户态运行的指令和程序/发生的事件:
- 命令解释程序【属于命令接口,面向用户】
- 访管/Trap指令,跳转指令,压栈指令
- 广义指令(系统调用)的调用
- 外部中断,缺页
- 在用户态运行的指令和程序/发生的事件:
4.5 🚀如何变态
- 内核态 ——> 用户态 : 发⽣在中断返回⽤户程序时,需要⼀条修改PSW(程序状态字)的特权命令
- 用户态 ——> 内核态 :发生在中断时,通过硬件完成
4.6 为什么要区别核心态和用户态
- 为了保护系统程序
4.7 操作系统的内核

内核是计算机上配置的底层软件,是操作系统最基本、最核心的部分。 实现操作系统内核功能的那些程序就是内核程序。



4.8 内核的功能
- 时钟管理:实现计时功能
- 中断处理:负责实现中断机制
- 设备管理:完成设备的请求和释放,以及设备启动等功能
- 文件管理:完成文件的读,写,创建和删除等功能
- 进程管理:完成进程的创建,撤销,阻塞及唤醒等功能
- 进程通信:完成进程之间的信息传递或信号传递等功能
- 内存管理:完成内存的分配,回收以及获取作业占用内存区大小及地址等功能
原语
- 是一种特殊的程序
- 处于操作系统最底层,是最接近硬件的部分
- 该程序运行具有原子性(运行只能一气呵成,不可中断)
- 运行时间较短,调用频繁
5. 中断和异常

6.1 异常(内中断)
基本概念
- 由CPU内部产生的意外事件
- 是CPU执行一条命令时,由CPU在其内部检测到的、与正在执行指令相关的同步事件
- 故障和自陷为异常
- 终止异常和外中断属于硬件中断
分类
- 故障 : 在引起故障的指令启动之后、执行结束前被检测到的异常事件
- 自陷: 也称陷阱或陷入,是预先安排的一种“异常事件”,就像预先设置好的“陷阱”一样
- 终止:若在执行指令的过程中发生了使计算机无法继续执行的硬件故障,那么程序将无法继续执行,只能终止
举例
故障
- 指令译码时,出现“非法操作码”
- 取数据时,发生“缺段”或“缺页”
- 除数为零
- 地址越界
自陷
- x86机器中,用于程序调试“断点设置”和单步跟踪功能
- 系统调用指令
- 条件自陷指令
终止
- 控制器出错
- 存储器校验错
- 调出中断服务程序来重启系统
执行时间
- CPU在执行指令时会检查是否有异常发生
和外中断不同的是
- 缺页”或“溢出”等异常事件是由特定指令在执行过程中产生的
- 异常的检测由CPU自身完成,不必通过外部的某个信号通知CPU
6.2 中断(外中断)
基本概念
- 由来自CPU外部的设备发出的中断请求(常用于输入输出)
- 典型的由外部设备触发的、与当前正在执行的指令无关的异步事件
- 外部I/O设备通过特定的中断请求信号线向CPU提出中断请求
- CPU每执行完一条指令就检查中断请求信号线,若检测到中断请求,则进入中断响应期
- 外部中断都是在一条指令执行完成后(中断周期)才被检测并处理的
分类
可屏蔽中断
- 通过可屏蔽中断请求线INTR向CPU发出的中断请求
- CPU可以通过在中断控制器中设置相应的屏蔽字来屏蔽或不屏蔽它,被屏蔽的中断信号将不被送到CPU
不可屏蔽中断
- 通过不可屏蔽中断请求线NMI向CPU发出的中断请求
- 通常是非常紧急的硬件故障,如电源掉电等
举例
- Cache缺失
- I/O中断:键盘输入,打印机缺纸
- 时钟中断
- I/O中断请求
执行时间
- 每个指令周期末尾,CPU都会检查是否有外中断信号需要处理
和内中断不同的是
- 中断不与任何指令相关联,也不阻止任何指令的完成
7. 系统调用
7.1 系统调用【又叫做广义指令】
定义
- 操作系统对应用程序和程序员提供的接口
- 系统调用需要触发Trap【也叫陷入/访管指令】
- os通过提供系统调用避免用户程序直接访问外设【应用程序通过系统调用使用OS的设备管理服务】
目的
- 请求系统服务
与库函数的区别
库函数
- 是语言或应用程序的一部分 ,可以运行在用户空间中
- 许多库函数都会使用系统调用来实现功能
- 有的库函数没有使用系统调用
系统调用
- 是操作系统的一部分,是内核为用户提供的程序接口,运行在内核空间
- 未使用系统调用的库函数,执行效率通常比系统调用的高 , 【因为系统调用要完成上下文的切换和状态的转换】
按功能分类
- 设备管理:完成设备的请求或释放+设备启动
- 文件管理:完成文件的读+写+创建+删除
- 进程控制:完成进程的创建+撤销+阻塞+唤醒
- 进程通信:完成进程之间的信息传递或信号传递
- 内存管理:完成内存的分配+回收+获取作业占用内存区大小及始址
系统调用的过程
- step1:传参
- step2:陷入指令/Trap/访管【执行系统调用】,发生在用户态
- step3:由操作系统内核程序处理系统调用请求,发生在内核态
- step4:返回应用程序
7.2 系统调用和一般过程调用的差别
运行状态不同
- 一般过程调用的调用过程和被调用过程运行在同一系统状态【用户态或内核态】
- 系统调用的调用过程是运行在用户态,被调用过程是运行在内核态
软中断进入机制
- 一般的过程调用可直接由调用过程转向被调用过程
- 系统调用不允许由调用过程直接转向被调用过程,一般通过软中断机制,先进入操作系统内核,经内核分析后才转向相应命令处理程序
返回及重新调度
- 一般过程调用被调用结束后,返回调用点继续执行
- 系统调用被调用完后,要对系统中所有运行进程重新调度
- 只有当调用进程仍具有最高优先权才返回调用过程继续执行
7.3 系统调用的过程
8. 操作系统的体系结构
微内核OS知识点补充
- 优点:【内核足够小】【基于C/S模式】【应用机制与策略分离原理】【采用面向对象技术】
- 缺点:【性能问题】【开销偏大】
9. 操作系统引导 【Boot】
9.1 操作系统的引导 即开机过程
开机过程
A、启动过程
- CPU加电,CS:IP指向FFFF0H
- 执行JMP指令跳转到BIOS
- 登记BIOS中断例程入口地址
- 硬件自检
- 进行操作系统引导
B、引导过程
- step1:CPU从一个特定主存地址开始,取指令,执行ROM中的引导装入程序【即前面的启动过程】
- step2:将磁盘的第一块——主引导记录读入内存,执行磁盘引导程序,扫描分区表
- step3:从活动分区【又称主分区,即安装了操作系统的分区】读入分区引导记录,执行其中的程序
- step4:从根目录下找到完整的操作系统初始化程序【即启动管理器】并执行,完成开机的一系列操作
C、计算机加电启动过程中执行程序的过程
自检程序——>引导装入程序/自举装入程序———>引导程序———>操作系统
D、注意点
引导装入程序/自举装入程序 是位于ROM中的自举程序(BIOS的组成部分) 用于启动具体的设备 引导程序/启动管理器 是位于装有操作系统硬盘的活动分区的引导扇区的程序 用于引导操作系统 1、操作系统被装入RAM中 2、自举程序BIOS装在ROM中 3、引导程序装在硬盘中
10. 虚拟机
定义: 使用虚拟化技术,将一台物理机器虚化为多台虚拟机器VM,每个虚拟机器都可用独立运行一个操作系统
分类:
评论





