OS 概论

  • 定义
    • 定义
      • 由一系列程序模块组成的一个大程序。
      • 对软硬件资源进行统一的管理和调度。
      • 组织计算机工作流程,提高资源利用率。
    • 设计目标
      • 方便:方便用户使用。
      • 有效:提高性能和利用率。
      • 方便设计、实现、维护。
  • 功能
    • 处理器管理:主要是进程管理,分配 CPU 资源。
    • 储存器管理:管理主存/内存,设计分配、保护、扩充。
    • 设备管理:对 IO 设备进行管理控制,分配设备,控制设备传输数据。
    • 文件管理:将数据组织为文件,提供逻辑视图,管理文件在外部储存设备的储存。
  • 特性
    • 并发性
    • 共享性
    • 虚拟性
    • 异步性
  • 分类
    • 工作方式
      • 顺序处理
        • 手工操作,无 OS。
      • 简单批处理系统
        • 有一个监控程序在内存中运行。
        • 单道批处理:监控程序自动控制输入设备一次装入一道作业,内存中只有一个作业。
        • 联机批处理:作业输入输出完全由 CPU 直接控制。
        • 脱机批处理:用卫星机专门处理输入输出。
      • 多道批处理系统
        • 多道批处理:内存中可以有多个作业同时运行,作业共享资源。
        • 使用的新技术
          • 通道:专门处理 IO 的机器,连接内存和外设,使 CPU 和外设可以并行操作。
          • 中断:IO 设备使用中断通知 CPU,实现异步回调。
          • 缓冲:设置缓冲区,缓解 CPU 与 IO 设备的速度不匹配问题。
        • 性能指标
          • 资源利用率:单位时间内,某资源的实际使用时间在总时间的占比。
          • 吞吐量:单位时间内,系统处理的作业量。
          • 周转时间:单个作业从进入系统到完成的时间。
        • 特点
          • 吞吐量大,资源利用率高,适合计算量大、自动化程度高的作业。
          • 用户无法与作业交互,作业平均周转时间长。
      • 分时系统
        • 工作方式:用户交互式提交命令,系统使用时间片轮转方式处理。
        • 分时:划分 CPU 的单位时间为多个时间片,每个时间片处理一个用户的命令。
        • 特点
          • 同时性:多用户可以同时使用一个计算机。
          • 独立性:每个用户占有一个终端,独立操作,感受不到其他用户。
          • 交互性:使用终端,可以交互式运行命令。
          • 及时性:命令请求可以较快响应。
      • 实时系统
        • 工作方式:对外部事件做出及时的响应和处理。
        • 特点
          • 实时性:响应时间限制在控制对象能承受的延迟内。
          • 可靠性:可以有后备系统。
          • 确定性:按照固定、确定的时间执行操作。
      • 嵌入式系统
        • 以实际应用为中心,裁剪功能的专用系统。
        • 软件固化储存。
        • 一般是多任务的实时操作系统,只有满足实际需要的有限功能。
    • 并发模式
      • 单用户单任务:如 MS-DOS
      • 单用户多任务:如 Windows
      • 多用户多任务:如 *nix
    • 多处理器模式
      • 非对称多处理器(ASMP):所有处理器分为两部分,主处理器运行 OS,其他运行用户作业。
      • 对称多处理器(SMP):处理器没有区分,可以运行 OS 或用户作业。
  • 接口
    • 操作接口
      • CLI
      • GUI
    • 编程接口
      • 系统调用
  • 运行环境
    • 用户态/内核态
      • 用户态只能执行有限的指令,访问指定的寄存器和储存区域。
      • 内核态运行执行所有指令,访问所有资源。
      • 用户态转换到内核态由硬件完成,内核态转换到用户态由内核程序执行后完成。
      • 用户进程在用户态和内核态都有对应的栈,用户态调用内核态时,内核态代码使用内核态栈。
    • 中断
      • 异步事件,打断当前线程执行,处理器切换到指定代码执行。
      • 中断有优先级,高级中断屏蔽低级中断。
    • 异常
      • 同步事件,程序指令执行时产生的事件,触发后执行处理代码。
      • 无法屏蔽,出现后要立即处理。
  • 设计规范
    • 系统效率
    • 可靠性
    • 可移植性
    • 可伸缩性
    • 兼容性
    • 安全性