操作系统简介
什么是操作系统
- 用户与硬件之间的接口 (1)
-
资源的管理者 (2)
-
操作系统的目标: 与硬件部分相互作用, 为运行在计算机系统上的应用程序提供执行环境
- 管理的资源包括: 处理机管理 内存管理 设备管理 文件管理
操作系统发展
| 系统 | 特点 | 优点 | 缺点 |
|---|---|---|---|
| 无操作系统 | |||
| 单道批处理系统 | 自动性 顺序性 单道性 | 内存只能驻留一道用户作业,CPU和内存被用户作业独占,吞吐量低(1); 当作业进行IO时CPU只能进行等待IO完成而无事可做,CPU资源得不到充分应用 | |
| 多道程序系统: 多道批处理系统 | 多道性(3) 无序性(4) 调度性(5) 复杂性 | 提高CPU内存和IO设备的利用率和系统的吞吐量 | 系统平均周转时间长(2),缺乏交互能力 |
| 多道程序系统: 分时操作系统 | 多路性(6) 独立性(7) 及时性(8) 交互性(9) | ||
| 微机操作系统 | |||
| 实时操作系统 (10) | 多路性(11) 独立性 及时性(12) 交互性(13) 可靠性 |
- 吞吐量指单位时间内计算机系统处理的作业量
- 周转时间是作业被提交给系统开始到作业完成为止的时间
- 多道性: 内存中可以驻留多道程序,当CPU上的作业提出IO请求后,CPU可以执行其他作业
- 无序性: 多个作业完成的时间与他们进入内存的顺序之间没有严格的对应关系
- 调度性: 包括作业调度和进程调度
- 分时操作系统 多路性: 允许一台主机上同时连接多台联机终端
- 分时操作系统 独立性: 各终端用户彼此独立操作,互不影响
- 分时操作系统 及时性: 用户请求能在很短的时间内获得响应
- 分时操作系统 交互性: 用户可以通过中断与系统进行广泛的人机交互
- 实时操作系统广泛应用于各种工业现场的自动控制,智能机器人,海底探测和航空航天
- VxWorks
- uC/OS-II
- Linux 也支持实时性
- 实时操作系统的多路性: 经常对多路的现场信息进行采集,以及对多个对象或多个执行机构进行控制
- 实时操作系统的及时性: 以控制对象所要求的 开始截止时间 和 完成截止时间 来确定的
- 实时操作系统的交互性: 仅限于访问系统某些特点的专用服务程序
操作系统产品
| 类型 | 产品 |
|---|---|
| 主机操作系统 | 批处理,事务处理和分时处理 |
| 服务器操作系统 | |
| 微机操作系统 | 个人机操作系统 |
| 嵌入式操作系统 | 1981年第一个商用嵌入式系统 VRTX32 |
操作系统的特征
- 并发(1)
- 共享(2)
- 虚拟(3)
-
异步(4)
-
两个或多个事件在同一时间间隔内发生
- 系统中的资源可供内存中多个并发执行的进程共同访问
- 虚拟是通过某种技术把物理实体变成若干个逻辑上的对应物
- 进程以不可预知的速度向前推进
操作系统功能
| 功能 | 子功能 | 子功能 | 子功能 | 子功能 | 子功能 |
|---|---|---|---|---|---|
| 内存管理 | 内存分配/回收 | 内存保护 | 地址映射 (1) | 内存扩充(2) | |
| 进程管理 | 描述与组织进程 | 进程控制 | 进程同步 | 进程通信 | 进程调度 |
| 设备管理 | 缓冲管理 | 设备分配 | 设备处理 | 设备独立性和虚拟设备 | |
| 文件管理 | 文件存储空间的管理 | 目录管理 | 文件的读写管理和存取控制 | ||
| 提供用户接口 | 命令接口 | 图形接口 | 程序接口 |
- 地址映射: 内存中一系列单元所限定的地址范围称为内存空间
- 内存扩充:
- 请求调入功能
- 置换功能
体系结构
操作系统体系结构分析
| 模型 | 描述 | 产品 |
|---|---|---|
| 简单的监控程序模型 | FMS, IMSYS | |
| 单体结构模型 | 所有的软件和数据都放置在一个逻辑模块中,对外层的用户程序提供一个完整的内核界面: 系统调用 | MS-Dos, Unix, Linux, Macos, bsd |
| 层次结构模型 | 系统分解位许多个小的容易理解的层,系统功能被隔离在不同层中,每一层提供系统功能的部分抽象,然后采用单向调用的顺序 | Dijkstra 的 THE 系统 |
| 客户端/服务器模型与微内核结构 | 核心思想是核心功能外移 | Mach ,Windows NT,COSIX v2.3,Vxworks |
| 动态可拓展结构模型 | VINO |
单体结构模型
- 特点
- 结构简单便于理解和实现
- 系统所有的部分都集中在一个内核中效率较高
- 缺点: 各个子程序可以相互调用,系统结构关系复杂,容易引起循环调用和死锁
指令的执行
指令周期
- 一个单一指令需要的处理称为指令周期
- 包括 取指 周期和 执行 周期
指令执行的时候,需要先从 程序计数器 中取出指令,之后该值自动加1。取出的指令放到 指令寄存器 中,CPU对它进行译码,进而开始执行。
取指令: 处理器从存储器中取一条指令
执行指令
- 处理机取存储器之间的指令或数据传送
- 处理器与IO设备之间的指令或数据传送
- 算数运算操作或逻辑运算操作
- 控制操作, 即修改指令的执行顺序的操作
逻辑结构
- 程序计数器 PC
- 指令寄存器 IR
- 累加器 AC