操作系统的基本概念
操作系统的概念
操作系统的特征
- 并发
- 共享
- 互斥共享方式
- 同时访问方式(分时)
- 虚拟
- 虚拟处理器(时分复用)
- 虚拟存储器(空分复用)
- 异步:进程的执行不是一贯到底的,是以不可预知的速度向前推进
操作系统的目标和功能
- 作为计算机系统资源的管理者
- 处理机管理
- 存储器管理
- 文件管理
- 设备管理
- 作为用户与计算机之间的接口
- 命令接口
- 联机命令(交互式命令)
- 脱机命令(批处理命令)
- 程序接口:由一组系统调用(广义指令)组成
- 命令接口
- 实现计算机资源的扩充
操作系统发展历程
手工操作阶段
- 缺点
- 独占全机
- CPU利用不充分
批处理阶段
- 单道批处理系统
- 主要特征
- 自动性
- 顺序性
- 单道性
- 缺点(问题)
- CPU与I/O串行,利用率不高
- 主要特征
- 多道批处理系统
- 特点
- 多道
- 宏观上并行
- 微观上串行
- 优点
- 利用率高
- 吞吐量大
- 缺点
- 用户响应时间长
- 不提供人机交互能力
- 特点
分时操作系统
- 分时技术
- 分时操作系统的主要特征
- 同时性
- 交互性
- 独立性(注意并不是封闭性,封闭性是单道的特征)
- 及时性
实时操作系统
- 硬实时系统
- 软实时系统
网络操作系统和分布式计算机系统
个人计算机操作系统
操作系统结构
分层结构
- 描述:内核分多层,每层可单向调用更低一层的接口
- 优点
- ⭐️便于调试和验证
- 易扩充、易维护。层间接口清晰固定
- 缺点
- 各层边界难以合理定义
- ⭐️跨层调用,时间长,效率低
模块化
- 描述
- 内核划分为多个模块,各模块相互协作
- ⭐️内核=主模块+可加载内核模块
- 主模块只负责核心功能
- 优点
- 逻辑清晰易于维护,可同时开发i
- ⭐️动态加载新模块
- ⭐️任何模块都可以直接调用其他模块,无需采用消息传递进行通信,效率高
- 缺点
- 接口定义未必合理、实用
- 模块相互依赖,难以调试、验证
宏内核
- 描述:所有系统功能都放在内核里
- 优点:❗️性能高
- 缺点
- ❗️内核庞大 功能复杂 难以维护
- ❗️某个功能模块出错,导致整个系统崩溃
微内核
- 描述
- 只把中断、原语、进程通信等最核心的功能放入内核
- 进程管理、文件管理、设备管理等功能以进程形式运行在用户态
- 优点
- ❗️内核小 易于维护 内核可靠性高
- ❗️内核外的功能模块出错不会导致整个系统崩溃
- 缺点
- ❗️频繁“变态”,性能低
- ❗️服务器不能直接相互调用,需要通过微内核通信
外核 详细介绍
- ⭐️描述:
- 内核负责进程调度、进程通信等
- 外核为用户进程分配未经抽象的硬件资源,且由外核保证资源使用安全
- 优点
- ⭐️直接分配“不虚拟、不抽象”的硬件资源
- ⭐️减少了“映射层”(抽象资源映射到实际资源的层次),提升效率
- 缺点
- 降低了系统的一致性
- 使系统变得更复杂
操作系统引导
一些概念
- CMOS
- MBR
- PBR
- 启动管理器
CPU视角的引导过程
- 爷(又)活了
- 用BIOS里面的指令完成硬件自检,找到可启动的存储器的MBR
- 用MBR找到活动分区
- 用PBR找到最好的伙伴(OS)的启动管理器
- 启动管理器来了,来吧蹂躏我😘
BIOS ROM RAM MM的关系
主存是一个逻辑上的空间,不仅仅包括内存条上的存储空间(RAM),还包括一些ROM,而BIOS是写在ROM里面的,逻辑上归为主存的一部分
操作系统运行环境
处理器运行模式
- 变态
- 应用程序(被管理程序、用户自编程序、上层程序)在用户态(目态)执行非特权指令
- 内核程序(管理程序、操作系统程序)在内核态(管态、核心态)执行特权指令
- 用户程序通过访管指令(属于非特权指令),引起中断并自动由操作系统在管态执行响应操作
- 操作系统执行一条特权指令(中断返回指令)让权到用户态
- 操作系统内核
- 时钟管理
- 中断机制
- 原语(Atomic Operation)
- 系统控制的数据结构及处理
中断
- 内部异常(内中断)
- 故障(Fault)
- 自陷(Trap)
- 终止(Abort)
- 外部中断(狭义中断)
- 可屏蔽中断INTR
- 不可屏蔽中断NMI
- 软件中断
- 故障
- 自陷
- 硬件中断
- 终止
- INTR
- NMI
系统调用
- 按功能分类
- 设备管理
- 文件管理
- 进程控制
- 进程通信
- 内存管理
常见特权指令
- I/O指令
- 访问程序状态
- 存取特殊寄存器
- 其他
外核
What is exokernal?
- traditional os
- abstracts and protects system resources
- physical mem -> virtual mem
- disk -> virtual file systems
- Benefits:
- portable interface
- apps are unconcerned with lower levels of hardware management
- Problems:
- lack of flexibility
- a gap between apps and actual hdware (the indication of files are actually there?????)
- level differentiate
- abstracts and protects system resources
- Exokernel?
- gives as much control over systems as possible, without compromising system security or integrity
- separates system protection from systems management
- SysCalls are way less
Are exokernel better than traditional operating systems?
- MORE chaos
- but less redundancy
How do exokernels work?

What are the advantages / disadvantages of exokernel?
Advantages
- Minimizes the hardware abstraction
- Reduce the overhead by removing SysCalls
- Provide apps with the freedom they need to manage system resources
- Offer finer-grain protection levels
- Permit shared access to system resources via the LibOS
Disadvantages
- need for further research
虚拟机
- 裸金属
- 寄宿