# 操作系统的概念与作用

# 操作系统的概念

操作系统(Operation System),简称 OS,是管理计算机硬件与软件资源的计算机程序

# 计算机系统构成

  1. 用户
  2. 应用程序
  3. 操作系统(OS)
  4. 硬件(裸机)

# OS 是一种系统软件

  1. 与硬件交互
  2. 对资源共享进行调度管理
  3. 解决并发操作处理中存在的协调问题
  4. 数据结构复杂,外部接口多样化,便于用户反复使用

# OS 的作用

  1. 管理与配置内存
  2. 决定系统资源供需的优先次序
  3. 控制输入设备与输出设备
  4. 操作网络与管理文件系统等基本事物
  5. 提供一个让用户与系统交互的操作界面

# 操作系统的目标

# 有效性(管理系统资源)

  1. 提高系统资源利用率
  2. 提高系统的吞吐量

# 方便性(方便用户使用)

# 可扩充性(作为扩充机器)

# 开放性(作为扩充机器)

# 操作系统的功能

# OS 的功能

  1. 作为计算机系统资源的管理者
  2. 作为用户与计算机硬件系统之间的接口
  3. 实现了对计算机资源的抽象

# OS 作为计算机系统资源的管理者

# 处理机管理

  1. 进程控制
  2. 进程同步
  3. 进程通信
  4. 调度

# 存储器管理

  1. 内存分配
  2. 内存保护
  3. 地址映射
  4. 内存扩充

# I/O 设备管理

  1. 缓冲管理
  2. 设备分配
  3. 设备处理

# 文件管理

  1. 文件存储空间的管理
  2. 目录管理
  3. 文件的读 / 写管理和保护

# OS 作为用户与计算机系统硬件系统之间的接口

  1. 程序接口
  2. 命令接口
  3. GUI(Graphical User Interface)图形化接口

# OS 实现了对计算机系统资源的抽象

  1. 将具体的计算机硬件资源抽象成软件资源
  2. 开放了简单你的访问方式,隐藏了实现细节

# 操作系统的特征

# 并发

# OS 的并发性(Concurrence)

  1. 宏观上,处理机同时执行多道程序
  2. 微观上,处理机在多道程序间高速切换(分时交替执行)
  3. 关注单个处理机同一时间段内处理任务数量的能力

# 并发与并行

  1. 并发:同一时间间隔(时间段)发生的事件数量
  2. 并行:同一时刻(时间点)发生的事件数量

# 共享

# OS 的共享性(Sharing)

共享即资源共享,系统中的资源提供多个并发执行的应用程序共同使用

  1. 同时访问方式:同一时段允许多个程序同时访问共享资源
  2. 互斥共享方式:也叫独占式,允许多个程序在一个共享资源上进行独立而互不干扰的工作

# 并发和共享互为存在条件

  1. 共享性要求 OS 中同时运行着多道程序
  2. 并发性难以避免的导致多道程序同时访问一个资源

# 虚拟

# OS 的虚拟技术

使用某种技术把一个物理实体变成多个逻辑上的对应物

  1. 时分复用技术(TDM,Time Division Multiplexing)
    1. 虚拟处理技术:四核八线程
    2. 虚拟设备技术:虚拟打印机
  2. 空分复用技术(SDM,Space Division Multiplexing)
    1. 虚拟磁盘技术:将一块硬盘虚拟出若干个卷
    2. 虚拟存储器技术

# 异步

# OS 的异步性(Asynchronism)

多道程序环境下,允许多个程序并发执行

单处理机环境下,多个程序分时交替执行

  1. 程序执行的不可预知性
    1. 获得运行的时机
    2. 因何暂停
    3. 没到程序需要多少时间
    4. 不同程序的性能,比如计算多少,I/O 多少
  2. 宏观上一气呵成,微观上走走停停

# 操作系统的发展

# 手工操作阶段

  1. 人工操作方式
  2. 脱机输入 / 输出方式

# 批处理阶段

  1. 单道批处理系统
  2. 多道批处理系统

# 分时操作系统

# 实时操作系统

# 微机操作系统

# 操作系统的运行机制

# 基本概念

# 内核程序与应用程序

  1. 内核程序:操作系统的内核的管理者,既可以执行特权指令,也可以执行非特权指令,运行在核心态
  2. 应用程序:为了保证系统能够安全的运行,普通应用程序之只能执行非特权指令,运行在用户态

# 核心态与用户态

  1. 用户态:应用程序只能在用户态下运行 —— 运行应用程序的时候称为用户态
  2. 核心态:内核程序只能在核心态下运行 —— 运行内核程序的时候称为核心态

# 特权指令与非特权指令

  1. 特权指令:cpu 在内核态时运行的指令,而处于核心态执行中的进程,能访问所有的内存空间和对象,且所占有的处理机时不允许被抢占的
  2. 非特权指令:cpu 在用户态时运行的指令,处于用户态执行时,进程能访问的内存空间和对象收到限制,其所占有的处理机可被抢占

# 时钟与中断

# 时钟管理

  1. 计时:提供系统的时间
  2. 时钟中断:比如进程切换

# 中断机制

  1. 提高多道程序环境下的利用率
  2. 外中断:中断信号来源于外部设备
  3. 内中断:中断信号来源于当前指令
    1. 陷入(Trap):由应用程序主动引发
    2. 故障(Fault):由错误条件引发
    3. 终止(abort):由致命错误引发

# 中断处理过程

  1. 关中断
  2. 保存断点
  3. 引出中断服务程序
  4. 保存现场和屏蔽字
  5. 开中断
  6. 执行中断服务程序
  7. 关中断
  8. 恢复现场和屏蔽字
  9. 开中断

# 原语

  1. 由若干条指令组成
  2. 用来完成某个特定功能
  3. 执行过程中不会被中断

# 系统数据结构

  1. 进程管理:作业控制块,进程控制块
  2. 存储器管理:存储器分配与回收
  3. 设备管理:缓冲区,设备控制块

# 系统调用

  1. 由操作系统实现,给应用程序调用
  2. 是一套接口的集合
  3. 应用程序访问内核服务的方式

# 操作系统的体系结构

# 传统的操作系统结构

# 无结构 OS

  1. 一系列过程(程序)的集合,过程间可以相互调用
  2. 结构复杂混乱,难以调试、阅读和维护

# 模块化结构 OS:模块 - 接口法 OS

  1. 基于分解和模块化的原则
  2. 按照功能划分模块 / 子模块,规定模块间的接口
  3. 模块独立性标准:高内聚、低耦合

# 分层式结构 OS

  1. 有序分层法:自顶向下依次依赖
  2. 设计时,自低向上:每一步建立在可靠基础上
  3. 优缺点
    1. 容易保证系统的正确性
    2. 容易扩充和维护
    3. 自上而下的层次通信,导致系统效率降低

# 微内核操作系统结构

# 微内核 OS 结构

  1. 基本概念:足够小的内核,只能实现 OS 核心功能
    1. 与硬件处理紧密相关的部分,比如硬件处理,客户与服务器通信和其他基本功能
    2. 一些较基本的功能
    3. 客户和服务器之间通信
  2. 应用机制与策略分离的原理
  3. 采用面向对象技术
  4. 优点
    1. 提高 OS 的可扩展性、可靠性、可移植性
    2. 支持分布式系统
    3. 融入了面向对象技术
  5. 缺点
    1. 相对早期的 OS,降低了一定的效率