操作系统的概念(定义)、功能和目标

概念

  • 负责管理协调硬件、软件等计算机资源的工作
  • 为上层用户、应用程序提供简单易用的服务
  • 是一种系统软件

功能和目标

  • 资源的调度者
    • 处理机管理
    • 存储器管理
    • 文件管理
    • 设备管理
  • 向上层提供服务
    • 给普通用户用的
      • GUI用户界面
      • 命令接口
        • 联机命令接口(交互式命令接口):用户说一句,系统跟着做一句。比如在Windowscmd中输入time命令
        • 脱机命令接口(批处理命令接口):用户说一句,系统跟着做一堆。如执行bat文件
    • 给软件/程序员用的
      • 程序接口(即系统调用)
      • 命令接口统称为用户接口
  • 对硬件机器扩展
    • 扩充机器

操作系统的四个特征

  • 并发
    • 两个或多个事件在同一时间间隔内发生
    • ==宏观==上同时发生
    • ==微观==上交替发生
    • 并行:同一时刻同时进行
  • 共享
    • 互斥共享方式
      • 一个时间段内只允许一个进程访问该资源
      • 如对摄像头设备的共享使用
    • 同时共享方式
      • 一个时间段内允许多个进程“同时”对他们进行访问
      • 如对硬盘资源的共享使用
    • 并发和共享==互为存在条件==
  • 虚拟
    • 空分复用技术
      • 用户看来的内存远大于实际内存
      • 如虚拟存储技术
    • 时分复用技术
      • 微观上处理机在各个微小的时间段内交替着为各个进程服务
      • 如虚拟处理机技术
    • ==没有并发性,就谈不上虚拟性==
  • 异步
    • 进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性
    • ==只有系统拥有并发性,才有可能导致异步性==

操作系统的发展与分类

  • 手工操作阶段
    • 缺点
      • 用户独占全机
      • 人机速度矛盾导致资源利用率极低
  • 批处理阶段
    • 单批道处理系统
      • 引入==脱机输入/输出技术==(外围机+磁带完成),并由==监督程序==负责控制作业的输入、输出
      • 简单来说,通过外围机把程序提前存到磁带里
      • 优点:缓解人机速度矛盾
      • 缺点:资源利用率依然很低
    • 多批道处理系统
      • 优点
        • 多道程序==并发==执行,==共享==计算机资源
        • ==资源利用率大幅提升==
      • 缺点
        • 没有人机交互功能
  • 分时操作系统
    • 计算机以==时间片==为单位==轮流为各个用户/作业服务==
    • 优点:提供人机交互功能
    • 缺点:不能优先处理紧急任务
  • 实时操作系统
    • 硬实时系统:必须在绝对严格的规定时间内完成处理
    • 软实时系统:能接手偶尔违反时间规定
    • 优点:能优先处理紧急任务,某些紧急任务不需时间片排队
    • 主要特点是==及时性==和==可靠性==
  • 网络操作系统:实现网络中各种资源的共享(如文件共享)和各台计算机之间的通信
  • 分布式操作系统
    • 系统中各台计算机地位相同
    • 任何工作都可以分布在这些计算机上,由他们并行、协同完成这个任务
    • 主要特点是==分布性==和==并行性==
  • 个人计算机操作系统

操作系统的运行机制

  • 简单了解程序的运行原理
    • 高级语言编写代码:机器指令
    • 程序运行的过程就是CPU执行指令的过程
  • 两类程序
    • 内核程序
      • 由很多内核程序组成了==操作系统内核==,或简称为==内核==
      • 操作系统==最重要最核心==的部分
      • 也是==最接近硬件的部分==
      • 操作系统的功能未必都在内核中,如GUI
    • ==应用程序==
  • 两类指令
    • 特权指令(只能是内核程序)
    • 非特权指令
  • 两种处理机状态
    • 内核态/核心态/管态(只能是特权指令,内核程序)
      • 运行内核程序
      • 可以执行特权指令
    • 用户态/目态
      • 运行应用程序
      • 只能执行非特权指令
  • 内核
    • 内核是操作系统最重要最核心的部分
    • 由很多内核程序组成操作系统内核
  • 如何变态
    • 内核态$\Longrightarrow$ 用户态
      • 一条修改==程序状态字寄存器==(PSW)的特权指令
      • 操作系统主动让出CPU使用权
    • 用户态$\Longrightarrow$内核态
      • 由中断引起,硬件自动完成
      • 硬件自动完成变态过程
      • 操作系统强行夺回CPU使用权
      • 但凡需要操作系统接入的地方,都会触发中断信号

中断和异常

  • 中断的作用
    • 让操作系统内核强行夺回CPU的控制权
    • 使CPU从用户态变为内核态
  • 中断的分类
    • 内中断/异常/例外
      • 与当前执行的指令有关
      • 中断信号来源于CPU内部
      • 陷阱、陷入(trap):如系统调用
      • 故障(fault):如缺页故障
      • 终止(abort):如整数除0
    • 外中断/中断
      • 与当前执行的指令无关
      • 中断信号来源于CPU外部
      • 时钟中断
      • I/O请求中断

大多数教材、试卷中,“中断”特指狭义的中断,即“外中断”。而内中断一般称为“异常”

  • 中断机制的基本实现原理
    • 检查中断信号
      • 内中断:CPU在执行指令时会检查是否有异常发生
      • 外中断:每个指令周期末尾,CPU都会检查是否有外中断信号需要处理
    • 找到相应的中断处理程序
      • 通过==中断向量表==实现

系统调用

  • 什么是系统调用
    • 操作系统对应用程序/程序员提供的接口
  • 系统调用与库函数的区别
    • 有的库函数是对系统调用的进一步封装:如创建一个新文件的函数
    • 有的库函数没有使用系统调用:如取绝对值的函数
  • 什么功能要用系统调用实现
    • 设备管理:完成设备的请求/释放/启动等功能
    • 文件管理:完成文件的读/写/创建/删除等功能
    • 进程控制:完成进程的创建/撤销/阻塞/唤醒等功能
    • 进程通信:完成进程之间的消息传递/信号传递等功能
    • 内存管理:完成内存的分配/回收等功能
  • 系统调用的过程
    • 传参
    • 陷入指令/Trap/访管
    • 由操作系统内核程序处理系统调用请求
    • 返回应用程序
    • 即:传递系统调用参数$\Rightarrow$执行陷入指令(==用户态==)$\Longrightarrow$执行相应的内请求

操作系统的体系结构

  • 操作系统内核
    • 时钟管理:实现计时功能
    • 中断处理:负责实现中断机制
    • 原语
      • 一种特殊的程序
      • 处于操作系统==最底层==,是==最接近硬件==的部分
      • 这种程序的运行具有原子性:其运行只能一气呵成,不可中断
      • 运行时间较短、调用频繁
    • (以上与硬件关联紧密,以下更多的是对数据结构的操作,不会直接涉及硬件)
    • 对系统资源进行管理的功能
      • 进程管理
      • 存储器管理
      • 设备管理
  • 大内核
    • 将操作系统的主要功能模块都作为系统内核,运行在核心态
    • 优点:高性能
    • 缺点:内核代码庞大,结构混乱,难以维护
  • 微内核
    • 只把最基本的功能保留在内核
    • 优点:内核功能少,结构清晰,方便维护
    • 缺点:需要频繁地在核心态和用户态之间切换,性能低

计算机系统层次结构

  • 操作系统包括
    • 非内核功能
    • 进程管理、存储器管理、设备管理等功能
    • 时钟管理、中断处理、原语
  • 大内核包括
    • 进程管理、存储器管理、设备管理等功能
    • 时钟管理、中断处理、原语
  • 微内核包括
    • 时钟管理、中断处理、原语

大内核vs微内核

  • 变态的过程是==有成本的==,频繁的变态会==降低系统性能==

操作系统引导

  • CPU从一个特定主存地址开始,取指令,执行ROM中的引导程序(先进行硬件自检,再开机)
  • 将磁盘的第一块——主引导记录读入内存,执行磁盘引导程序,扫描分区表
  • 从活动分区(又称主分区,即安装了操作系统的分区)读入分区引导记录,执行其中的程序
  • 从根目录下找到完整的操作系统初始化程序(即启动管理器)并执行,完成“开机”的一系列动作

操作系统引导

虚拟机

  • 虚拟机:使用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器(Virtual Machine, VM),每个虚拟机器都可以独立运行一个操作系统

两类虚拟机

  • 两类虚拟机管理程序VMM的对比
第一类VMM 第二类VMM
对物理资源的控制权 直接运行在硬件之上,能直接控制和分配物理资源 运行在Host OS之上,依赖于Host OS为其分配物理资源
资源分配方式 在安装Guest OS时,VMM要在原本的硬盘上自行分配存储空间,类似于“外核”的分配方式,分配未经抽象的物理硬件 GuestOS拥有自己的虚拟磁盘,该盘实际上是Host OS文件系统中的一个大文件。Guest OS分配到的内存是虚拟内存
性能 性能更好 性能更差,需要HostOS作为一个“中介”
可支持的虚拟机数量 更多,不需要和HostOS竞争资源,相同硬件资源可以支持更多的虚拟机 更少,HostOS本身需要使用物理资源,HostOS上运行的其他进程也需要物理资源
虚拟机的可迁移性 更差 更好
运行模式 运行在最高特权级(Ring 0),可以执行最高特权的指令 部分运行在用户态、部分运行在内核态。GuestOS发出的系统调用会被VMM截获,并转化为VMM对HostOS的系统调用