操作系统运行环境
处理器运行模式
- 特权指令(内核态)
- 非特权指令(用户态)
时钟管理
- 计时
- 时钟中断,可以实现进程的切换
中断机制
中断机制中,只有一小部分功能属于内核,它们负责保护和回复中断现场的信息,转移控制权到相关的处理程序
原语
定义原语的直接方法是关中断,让其所有动作不可分割地完成后再打开中断
中断和异常的概念
发生中断或异常时,运行用户态的CPU会立即进入核心态,这是通过硬件实现的。
中断和异常的定义
- 中断(外中断):CPU执行指令外部的事件(输入输出)
- 可屏蔽/不可屏蔽中断
- 异常(内中断):CPU执行指令内部的事件(地址越界,运算溢出),异常不能不屏蔽,一旦出现,就应当立即处理。
- 故障(指令执行引起的),自陷(事先安排的),终止 (出现CPU无法解决的硬件故障)
故障和自陷属于软件中断,终止和外部中断属于硬件中断。
- 故障(指令执行引起的),自陷(事先安排的),终止 (出现CPU无法解决的硬件故障)
系统调用
系统调用是指用户在程序中调用操作系统所提供的一些子功能,系统调用可以视为特殊的公共子程序。凡是与资源有关的操作,都必须通过系统调用方式向操作系统提出服务请求,并由操作系统代为完成。
- 需要运行在核心态
- 用户程序不能直接执行对系统影响非常大的操作,必须通过系统调用的方式请求操作系统代为执行
- 程序由用户态转到核心态,需要用到仿管指令(用户态使用的,不是特权指令)
内核架构
宏内核:将系统的主要功能模块都作为一个紧密联系的整体运行在内核态
微内核:将内核中最基本的功能保留在内核,将那些不需要在核心态执行的功能移到用户态执行,降低内核的设计复杂度。
- 基本功能
- 进程(线程)管理: 进程(线程)管理是微内核最基本的功能
- 第几存储器管理
- 中断和陷入处理
- 特点
- 扩展性和灵活性
- 可靠性:大部分模块都运行在用户态,一个模块的崩溃并不会导致OS的崩溃
- 可移植性
- 分布式计算
OS引导
OS是一种程序。
常见OS引导过程
- 激活CPU:激活的CPU读取ROM中的boot程序,将指令依存器置为 BIOS(基本输入/输出系统)的第一条指令,即开始执行 BIOS 指令
- 硬件自检:启动 BIOS 后,检查硬件是否有故障。若有,启动终止。若没有,屏幕会显示CPU,内存等信息
- 加载带有OS的硬盘:BIOS 开始读取 Boot Sequence,把控制权交给启动顺序排在第一位的存储设备,然后CPU将该存储设备引导扇区的内容加载到内存中
- 加载主引导记录 MBR:MBR的作用是告诉CPU去硬盘的哪个主分区找OS
- 扫描硬盘分区表,加载硬盘活动分区:MBR扫描硬盘分区表,进而识别含有OS的硬盘分区(活动分区)。找到活动分区后,加载硬盘活动分区,将控制权交给活动分区
- 加载分区引导记录PBR:读取活动分区的第一个扇区(分区引导记录PBR),用来寻找并激活分区根目录下用于引导OS的程序
- 加载启动管理区
- 加载OS
虚拟机
是逻辑计算机,利用特殊的虚拟化技术,通过隐藏特定计算平台的实际物理特性,为用户提供抽象的,统一的,摸你的计算环境
- 第一类虚拟机管理程序:类似一个OS,是唯一一个运行在最高特权级的程序。在裸机上运行,并具备多道程序功能,向上层提供若干台虚拟机 ,虚拟机作为用户态的一个进程运行。
- 第二类虚拟机管理程序:是一个依赖于 Linux 等 OS 分配和调度资源的程序,像一个普通的进程。