408操作系统—1.计算机系统概述

  • 第一章 计算机系统概述

    • 操作系统基本概念

      • 操作系统的概念

      • 操作系统特征

        • 并发
        • 共享
        • 虚拟
        • 异步
      • 操作系统的目标和功能

    • 操作系统发展历程

      • 手工操作
      • 批处理
      • 分时操作系统
      • 实时操作系统
      • 网络操作系统和分布式操作系统
      • 个人计算机操作系统
    • 操作系统运行环境

      • 处理器运行模式

        • 用户态
        • 核心态
      • 指令

      • 内核的概念

        • 时钟管理
        • 中断机制
        • 原语
        • 系统控制的数据结构及处理
      • 中断和异常的概念

      • 系统调用

    • 操作系统结构

      • 分层法
      • 模块化
      • 微内核
      • 外核
    • 操作系统引导

    • 虚拟机

      • 第一类虚拟机管理程序
      • 第二类虚拟机管理程序

操作系统基本概念

操作系统的概念

  • 最基本系统软件
  • 控制管理计算机系统的软硬件资源
  • 为用户和其他软件提供接口与环境的程序集合

操作系统特征

  • 并发和共享最基本的两个性质
  • 并发和共享互为存在条件
  • 没有并发和共享就没有虚拟和异步
  1. 并发

    两个或多个事件在同一时间段发生

    利用 I/O 操作的间隔时间交替调度运行,保持 cpu 忙碌状态

    注意与并行的差异

  2. 共享

    系统中的资源可供内存中多个并发执行的进程共同使用

    • 互斥共享方式

      A 用完 B 才可用,如程序对摄像头权限的调用,打印机打印文件

    • 同时共享方式

      A 使用到一半时暂停使用,此时 B 可使用

  3. 虚拟

    将物理实体虚拟为多个逻辑上的虚拟物理实体

    • 时分复用技术

      如虚拟处理器,使得多个用户的任务能够在同一时段并发运行,每个用户都感觉存在专门的 cpu 为其服务

    • 空分服用技术

      利用存储器的空闲空间分区域存放和运行其他的多道程序,以此来提高内存的利用率

  4. 异步

    一个任务启动后,程序可以继续执行其他任务,而不需要等待该任务的结果

    例如当客户端发送给服务端请求时,在等待服务端响应的过程中,客户端可以做其他事,节约时间,提高效率

操作系统的目标和功能

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

  1. 处理机管理

    • 处理机的分配和运行都以进程为基本单位,处理机管理=进程管理

    • 主要功能:进程控制 + 进程同步 + 进程通信 + 死锁处理 + 处理机调度

  2. 存储器管理

    • 为了给多道程序的运行提供良好的环境,方便用户使用及提高内存的利用率
    • 主要功能:内存分配与回收 + 地址映射 + 内存保护 + 共享和内存扩充
  3. 文件管理

    • 计算机的信息都是以文件的形式存在的
    • 主要功能:文件存储空间的管理 + 目录管理 + 文件读写管理和保护
  4. 设备管理

    • 完成用户的 I/O 请求,方便用户使用各种设备,提高设备利用率
    • 主要功能:缓冲管理 + 设备分配 + 设备处理 + 虚拟设备

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

  • 命令接口(提供给用户)

    • 联机命令接口

      又称交互式控制接口,例如 linux 服务器的 shell 控制台

    • 脱机命令接口

      又称批处理命令接口,由一组作业控制命令组成,用户不能直接干预程序运行,只能使用作业控制命令编写一组命令,提交给操作系统,操作系统再逐条执行

  • 程序接口(提供给程序员)

    由一组系统调用组成,用户通过程序中使用这些系统调用来请求操作系统为其提供服务,系统调用是操作系统的一部分

    另外,还有图形接口(GUI),图形接口通过点击直观的按钮来使用系统调用命令,图形接口不是操作系统的一部分,但其调用的命令是

实现了对计算机资源的扩充

  • 裸机:没有任何软件支持的计算机
  • 扩充机器/虚拟机:覆盖了软件的机器

操作系统发展历程

操作系统运行环境

处理器运行模式

运行模式可以划分为用户态(目态)核心态(管态、内核态)

cpu 的状态保存在 cpu 内部的一个寄存器中——程序状态字(PSW)寄存器,其中 1 表示内核态,0 表示用户态

  • 核心

    • 时钟管理相关指令
    • 中断机制相关指令
    • 原语相关指令
    • 系统控制的数据结构与处理(进程调度程序、进程切换)
  • 用户态

    • 命令解释程序
    • 系统调用
    • 外部中断

如何变态:

  • 核心态——> 用户态,发生在中断返回用户程序时,使用修改 PSW 的特权指令
  • 用户态——> 核心态,发生在中断时,通过硬件完成

指令

指令是机器语言,是 CPU 能直接看懂并执行操作的

  • 特权指令

    不允许用户直接使用的指令,如:置/关中断、清内存、置时钟、访问程序状态、存取特殊寄存器、修改 PSW 寄存器

  • 非特权指令

    用户可以直接使用的指令,不能直接访问系统的软硬件资源,防止用户造成破坏


cpu 执行两种不同性质的程序:

  • 操作系统内核程序(可以使用特权指令)
  • 用户自编程序(不能使用特权指令)

前者是后者的管理者

内核的概念

操作系统包含了内核,内核是计算机上配置的最底层软件,是连接应用程序和硬件的桥梁,由两部分内容构成:

  • 与硬件关联紧密的模块(硬件抽象层)
  • 运行频率较高的程序

大多数操作系统的内核包含四个内容:

  • 时钟管理

    • 向用户提供标准系统时间
    • 分时操作系统的时间片轮转调度
    • 实时操作系统的按截止时间控制运行
    • 批处理系统衡量作业的运行程度
  • 中断机制

    中断机制中只有一小部分属于内核

    保护和回复中断现场的信息,转移控制权到中断处理程序

  • 原语

    • 由若干条指令构成
    • 处于操作系统底层,最接近硬件
    • 操作只能一气呵成不能中断
    • 运行时间短且调用频繁
    • 原语的作用主要是为了实现进程的通信和控制
  • 系统控制的数据结构及处理

    • 进程管理
    • 存储器管理
    • 设备管理

中断和异常的概念

  • 中断(外中断)

    由 CPU 外部设备发出的请求,是与当前正在执行的指令无关异步事件,也不阻止任何指令完成

    执行时间:CPU 每执行完一条指令即检查中断请求信号线,检测到则进入中断响应期

    • 可屏蔽中断

      INTR 线发出的,CPU 可以根据其优先级接受或忽略的中断,如打印机中断

    • 不可屏蔽中断

      通过 NMI 线发出的,紧急硬件故障,如电源掉电

  • 异常(内中断)

    CPU 执行指令时,CPU 自身检测到的与正在执行的指令相关的同步事件不可屏蔽

    执行时间:执行指令时检查

    • 故障

      指令启动后,结束前检测到的异常事件,通常可以被故障处理程序修正

      非法操作码、缺页故障、除数为 0、运算溢出

    • 自陷(陷阱、陷入)

      预先安排的“异常事件”,用于在用户态调用操作系统内核程序,例如系统调用

    • 终止

      出现使 CPU 无法继续执行的硬件故障

系统调用

  • 定义

    • 操作系统给应用程序和程序员提供的用于请求系统服务的接口
    • 使用系统调用需要触发自陷(trap/访管指令)
    • 操作系统通过提供系统调用避免用户直接访问硬件
  • 按功能分类

    • 设备管理

      设备的请求或释放,设备启动

    • 文件管理

      文件读写创建删除

    • 进程控制

      进程创建、撤销、阻塞、唤醒

    • 进程通信

      进程之间信息传递或信号传递

    • 内存管理

      内存的分配、回收、获取作业占用内存大小及起始地址

  • 调用过程

    1. 传参
    2. 自陷(执行系统调用),发生于用户态,此时进程进入阻塞态
    3. 操作系统内核处理系统调用请求,发生于内核态
    4. 返回应用

操作系统结构

分层法

将操作系统分层,最底层为硬件,最顶层为用户接口,每层只能调用低一层的服务和功能(单向依赖)

  • 优点

    1. 便于系统调试和验证——单向依赖
    2. 易于扩充和维护,不改变各层之间的接口则不会影响其它层
  • 缺点

    1. 难以合理定义各层,固定依赖关系后不够灵活
    2. 效率较差,执行一个功能需要跨越多层,增加开销

模块化

将操作系统按照功能划分为具有一定独立性的模块,并规定好各个模块之间的接口,还可以将模块再划分为子模块(模块——接口法)

模块独立性的衡量有两个标准:

  • 内聚性模块内各部分联系的紧密程度,越高独立性越好
  • 耦合度模块间相互联系影响程度,越低独立性越好

  • 优点

    1. 提高操作系统设计的正确性,可理解性和可维护性
    2. 增强操作系统的可适应性
    3. 加速操作系统开发过程
  • 缺点

    1. 模块之间的接口规定难以满足实际需求
    2. 各模块同步开发难以确定统一基础,无法找到可靠决定顺序

宏内核

也称单内核或大内核。将系统的主要功能模块都作为一个紧密整体运行在核心态,各管理模块共享信息,具有性能优势

⭐微内核

  • 定义

    只把核心功能放入内核,其余功能以用户进程的形式运行在用户态,借助微内核进行通信,即采用客户/服务器模式

    1. 与硬件处理联系紧密的部分
    2. 一组关键原语,仅包括建立一个系统必需的几个部分
    3. 客户与服务器之间的通信

  • 基本功能

    微内核结构利用“机制/策略分离”原理,机制和与硬件紧密的部分放入内核

    • 进程管理

      • 进程通信
      • 进程切换
      • 进程调度
      • 多处理机同步

      其余内容如用户进程分类、优先级确认方式等都属于策略

    • 低级存储器管理

      如逻辑地址转换为物理地址,页表机制,地址变换机制,依赖硬件因此属于微内核

      实现虚拟存储器管理、应使用的页面置换算法、内存分配与回收的策略应放于内核外

    • 中断和自陷处理

      捕获中断和自陷,并进行中断响应处理,识别后发送给对应服务器处理

  • 特点

    1. 扩展性和灵活性

      增改功能只需要增改相应服务器,无需改动内核

    2. 可靠性和安全性

      只有微内核处于内核态,处于用户态的模块错误只会导致模块崩溃,而不会使得内核崩溃

    3. 可移植性

      移植平台时只需要改动与 CPU 和 I/O 硬件有关的微内核代码,其余服务器代码与硬件平台无关

    4. 分布式计算

      采用客户/服务器模式,可以很好支持分布式系统和网络系统

    由于微内核的高度可靠性,常用于实时、工业、航空、军事领域

  • 问题

    主要为性能问题,需要频繁进行内核态与用户态的切换

外核

内核态程序,为虚拟机分配资源以及检查并确保虚拟机资源不发生冲突

减少了资源的映射层,资源的管理由外核处理,外核记录已分配的各个虚拟机资源

将外核内的多道程序与用户操作系统代码分离

操作系统引导

操作系统引导是指计算机利用 CPU 运行特定程序,通过程序识别硬盘,识别硬盘分区,识别硬盘分区上的操作系统,最后通过程序启动操作系统,一环扣一环地完成上述过程

  • 引导过程

    1. 激活 CPU

      • 读取 boot 程序,开始执行 BIOS 指令
    2. 硬件自检

      1. BIOS 构建中断向量表
      2. 通电自检
    3. 加载带操作系统硬盘

      1. BIOS 读取硬盘启动顺序,或与用户交互
      2. CPU 将该存储设备引导扇区加载到**内存**
    4. 加载引导扇区中的MBR 主引导记录

      • MBR 记录了硬盘分区表和磁盘引导程序
    5. 扫描硬盘分区表,加载活动分区(C 盘)

    6. 加载 PBR 分区引导记录

      • 将活动分区的第一个扇区 PBR 加载到内存
      • 寻找活动分区根目录下的启动管理器
    7. 加载启动管理器

    8. 加载操作系统

      • 操作系统初始化程序加载到**内存**中执行

虚拟机

利用虚拟化技术将一台物理机虚拟化为多台虚拟机

第一类虚拟机管理程序 第二类虚拟机管理程序
物理资源控制权 直接控制和分配物理资源 依赖宿主 OS 分配资源
资源分配方式 安装客户 OS 时,需要自行分配物理存储空间,使用类似外核的方式分配物理硬件 由一个宿主 OS 的文件作为虚拟磁盘
虚拟机性能 差,需要宿主 OS 作为中介
支持虚拟机数量 更多,不与宿主 OS 争夺资源 更少,宿主 OS 本身运行需要占用资源
虚拟机迁移性 好,只需要导出虚拟机镜像文件即可
运行模式 运行在最高特权级,可以执行最高特权指令 部分运行在用户态,部分运行在内核态
客户 OS 的系统调用会被截获转换为宿主 OS 的系统调用

Licensed under CC BY-NC-SA 4.0