操作系统(系统学习一)

操作系统简介

操作系统的概念

  • 用户也是可以直接和操作系统交互的
  • 操作系统的作用
    • 从中间往两边 : 负责管理协调硬件, 软件等计算机资源的工作
    • 对上(应用程序, 用户) : 为上层应用程序和用户提供易用的服务
    • 对下 : 操作系统是最接近硬件的系统软件, 而不是硬件
      操作系统(系统学习一)

操作系统的功能和目标

操作系统(系统学习一)

作为系统资源(硬件, 软件, 文件)管理者

操作系统(系统学习一)

  • 用QQ和同学视频聊天的过程 (需要安全, 高效的)
    • 找到QQ的可执行文件 (文件管理)
    • 双击QQ可执行文件 (打开一个程序, 会把该程序和相关数据放入内存中, 等待执行, 存储器管理)
    • 运行QQ (放入内存中的进程需要被处理器处理运行, 处理机管理)
    • 打开摄像头聊天 (调用了摄像头这个设备, 设备管理)

作为用户和计算机硬件之间的接口

操作系统(系统学习一)

  • 三种类型的接口
    • 命令接口 (用户直接使用命令让操作系统操作计算机资源)
      • 联机命令接口 : 说一句做一句(单个命令)
      • 脱机命令接口 : 说一堆做一堆(多个命令批处理)
    • 程序接口 (用户通过程序间接让操作系统操作计算机资源, 由一组系统调用组成, 这些系统调用都可以完成某些功能, 用户不用关心底层的实现)
    • GUI接口 : 图新用户界面, 不需要记忆复杂命令, 直接通过图新直观执行各种功能.

作为最接近硬件的层次

  • 实现对硬件机器的扩展, 将裸机改造成为功能更强, 使用更方便的机器. 用户可以直接使用这些功能, 而无需关注底层的复杂实现

总结

操作系统(系统学习一)

操作系统的四个特征

操作系统(系统学习一)

  • 并发和共享互为存在条件
    • 如果没有并发性, 那么操作系统中同一时间间隔只能有一个运行这的进程, 也就不存在和别人共享资源
    • 如果没有共享, 操作系统的资源只能被一个进程使用, 也就只有一个进程能够执行, 也就没有了并发性.

并发

  • 并发 : 两个或多个事件同一时间间隔(微观)内发生, 宏观上同时, 微观上交替发生

  • 并行 : 两个或多个时间同一时刻发生(微观)

  • 操作系统的并发性 : 操作系统中同时(宏观)存在多个运行着的程序.

    • 微信, qq, 浏览器, 音乐…
    • 一个单核cpu同一时刻只能执行一个程序, 因此操作系统会负责协调多个程序交替执行
    • 操作系统和程序并发是一起诞生的

共享

  • 共享 : 资源共享, 操作系统的资源可供内存中多个并发执行的进程共同使用
    • 互斥共享 : 一个时间段内只允许一个进程访问该资源
      • 摄像头, QQ和微信同一时间段内只能一个使用
    • 同时共享 : 一个时间段内多个进程“同时”访问该资源
      • QQ和微信同时传输文件

虚拟

  • 虚拟 : 把一个物理上的实体变为若干个逻辑上的对应物

    • 物理实体 : 真实存在; 逻辑上的对应物 : 用户感受到的存在
  • 一个程序只有放入内存中, 并且为他分配CPU才能运行

    • 一个内存只有4GB的电脑同时运行着多个应用程序, 然用户感觉内存远不止4GB
      • 空分复用技术
    • 单核CPU同时运行着多个程序, 然用户感觉同时有多个CPU为自己服务
      • 时分复用技术 : 把一个大的时间段分成若干个小的时间片, 微观上处理机在各个微小时间片中交替执行各个进程
        操作系统(系统学习一)

异步

  • 异步 : 多个程序并发执行, 由于资源有限, 进程的执行不是一贯到底的, 而是走走停停的, 以不可预知的速度向前推进
    • 因为系统资源有限, 并发执行的程序同时要使用一个资源时, 只能等其中一个使用完毕后, 另一个才能占有执行. (互斥共享)

总结

  • 没有并发, 就谈不上后面的虚拟和异步.
  • 而并发和共享互为存在条件.
  • 因此并发和共享是操作系统的两个最基本特征.

OS发展阶段

操作系统(系统学习一)

  • 各阶段的主要优点 就是 解决了上一阶段的主要缺点

手工操作阶段

操作系统(系统学习一)

  • 主要缺点
    • 用户独占全机
    • 人机速度矛盾, 资源利用率低

单道批处理系统

操作系统(系统学习一)

  • 引入脱机输入/输出技术 (一次输入输出多个任务)(用磁带完成), 并使用监督程序(操作系统的雏形)负责控制作业的输入输出
  • 优点
    • 缓解了一定程度的人机速度矛盾
    • 资源利用率有所提升
  • 缺点
    • 内存中仅能有一道程序运行, 只有该程序执行完毕了才能执行下一道, CPU有大量时间是在等待I/O完成. 资源利用率依然很低

多道批处理系统

操作系统(系统学习一)

  • 操作系统诞生
  • 主要优点 : 多道程序并发执行, 共享计算机资源. 资源利用率大幅提升.
  • 主要缺点 : 用户响应时间长, 没有人机交互功能(用户提交自己的作业之后就只能等待计算机处理完成, 中间不能控制自己的作业执行)

为何多道批处理系统能使资源利用率大幅提升

  • 因为它使得系统资源可以并行工作, 更多的处于忙绿状态, 而不是像单道批处理系统只能串行调用各个资源
    操作系统(系统学习一)
    操作系统(系统学习一)

分时操作系统

操作系统(系统学习一)

  • 操作系统以时间片为单位轮流为各个用户/作业服务, 各个用户通过终端与计算机进行交互

  • 主要优点

    • 用户请求可以被及时相应, 解决了人机交互问题
    • 允许多个用户同时使用一台计算机, 并且用户对计算机系统相互独立, 感受不到别人的存在.
  • 主要缺点 : 不能优先处理一些紧急任务, 操作系统对各个用户/作业都是完全公平的, 循环地为每个用户/作业服务一个时间片, 不区分任务的紧急性

实时操作系统

操作系统(系统学习一)

  • 操作系统接收到外部信号后及时处理, 并且要在严格时限内处理完事情. 主要特点 : 及时性, 可靠性

  • 主要优点 : 能够优先相应一些紧急任务, 某些紧急任务不需要进行时间片排队

  • 硬实时操作系统 : 必须在严格的规定时间内完成处理

  • 软实时操作系统 : 可以接受偶尔违反时间规定

总结

操作系统(系统学习一)

操作系统的运行机制和体系结构

操作系统(系统学习一)

什么是指令

  • 指令 : 处理器能够直接识别, 执行的最基本命令
    • 一条高级语言代码经过翻译可能对应多条指令

指令的安全性

  • 非特权指令 : 有些指令并不会影响系统的安全性, 比如加减乘除这些普通指令
  • 特权指令 : 有些指令有很高的权限, 比如: 内存清零指令. 如果用户程序可以使用这个指令, 就意味着一个用户可以讲其他用户的内存数据随意清零. 会严重影响系统的安全性 (一般情况下不允许用户程序使用)

处理器的状态

CPU如何判断当前能不能执行特权指令

  • 用户态(目态) : 此时CPU只能执行非特权指令
  • 核心态(管态) : 特权指令, 非特权指令都可以执行
  • 处理器的状态 : 由程序状态字寄存器(PSW)中的某个标识为来标识当前处理器的状态

程序分类

  • 内核程序 : 系统的管理者, 既可以执行特权指令也可以执行非特权指令, 运行在内核态
  • 用户程序 : 只能执行非特权执行, 运行在用户态

内核

操作系统中的哪些功能需要有内核程序完成?

  • 内核 : 操作系统中最重要, 最核心, 最基础的部分, 实现操作系统内核功能的程序就是内核程序

    • 和硬件紧密相关的 : 时钟管理 (实现计时功能, 进程调度管理都要基于计时功能), 中断处理, 原语 (一种特殊的程序, 设备驱动, CPU切换都靠原语实现. , 运行具有原子性)
    • 系统资源管理相关的 : 进程管理, 存储器管理, 设备管理等功能
  • 不同操作系统对内核的划分不同

    • 大内核 : 操作系统的主要功能模块都放在了内核
      • 高性能
      • 内核代码庞大, 结构混乱, 难以维护
    • 微内核 : 只把和硬件紧密相关的最基本的必不可少的功能放在了内核
      • 内核功能少, 结构清晰, 方便维护
      • 需要频繁在核心态和用户态之间频繁切换, 性能低.
        操作系统(系统学习一)
        操作系统(系统学习一)

操作系统(系统学习一)
操作系统(系统学习一)

总结

操作系统(系统学习一)

中断和异常

操作系统(系统学习一)

中断机制的诞生

  • 多道批处理系统之前, 各个程序只能串行执行, 资源利用率低
  • 多道批处理系统阶段, 发明了操作系统, 引入了中断机制, 实现了多道程序并发执行
  • 本质 : 发生中断 就意味着 需要操作系统的介入, 开展管理工作

中断的概念和作用

  • 当中断发生后, CPU会立即进入核心态
  • 当中断发生后, 当前运行的进程会暂停运行, 并有操作系统内核对中断进行处理 (用户程序->内核程序)
  • 对于不同的中断信号, 会进行不同的处理.

发生了中断, 就意味着需要操作系统介入, 开展管理工作, 由于操作系统的管理工作(比如机进程切换, 分配I/O设备等) 需要使用特权指令, 因此CPU需要从用户态转为核心态, 中断可以使CPU从用户态切换为和心态, 是操作系统获得计算机的控制权. 有了中断, 才有了多道程序的并发执行,

"用户态->核心态"是通过中断实现的, 并且中断唯一途径
"核心态->用户态"是通过执行一个特权指令, 将程序状态字(PSW)寄存器的标识为设置为“用户态”

中断的分类

  • 分类标准 : 是否来自CPU内部, 与当前执行的指令是否有关
    操作系统(系统学习一)
  • 系统调用 : 用户程序调用内核程序, 执行特权指令的方法
    操作系统(系统学习一)

外中断的处理过程

操作系统(系统学习一)

总结

操作系统(系统学习一)