IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    《现代操作系统:原理与实现》读书笔记

    Yiran\'s Blog发表于 2021-01-17 10:42:48
    love 0
    第1章 操作系统概述 链接到标题 操作系统有两个职责:对硬件进行管理和抽象,为应用提供服务并进行管理。 从硬件的角度来看,操作系统核心功能是将优先的,离散的资源高效的抽象为无限的、连续的资源。 从应用的角度来看,操作系统提供了不同层次,不同功能的接口,还提供了不同类型的访问控制。还负责对应用生命周期的管理,包括应用的加载、启动、切换、调度、销毁等。 API vs ABI API 是指应用编程接口,它定义了两层软件之间的源码层面的交互接口。 ABI 是指应用二进制接口,即在某个特定体系结构下两层软件之间二进制层面的交互接口,包括如何定义二进制文件格式、应用之间的调用约定、数据模式等。 第2章 硬件结构 链接到标题 冯诺依曼结构包括三个主要部分: 中央处理单元(CPU):主要负责运算和逻辑控制,按照程序中的指令进行计算,并且根据条件执行程序中的不同部分 存储器(memory unit):负责存储程序指令和数据,以及保存程序执行的中间结果和最终结构。在现代计算机中,存储器通常包括寄存器、cpu 缓存、内存等存储层次。 输入输出(I/O):负责与外界进行交互,从外界获得输入,将结果向外界输出。 指令集架构(ISA)是 CPU 和软件之间的桥梁。ISA 包含指令集、特权级、寄存器、执行模式、安全扩展、性能加速扩展等方面。 指令集是 ISA 的重要组成部分,通常包含一系列不同功能的指令,用于数据搬移、计算、内存访问、过程调用等。 AArch64 属于精简指令集计算机(RISC)。AArch64 每跳指令的长度固定为 4 字节,指令类型包括: 数据搬移指定(mov); 寄存器计算指令(add,sub); 内存读写指令(ldr,str); 跳转指令(b); 过程调用指令(bl,ret); 特权指令(msr,mrs)。 特权级也是 ISA 的重要组成部分。AArch64 中的特权级被称为异常级别(Exception Level,EL),共有四种特权级: EL0:最低的特权级,应用程序通常运行在该特权级,也成为用户态 EL1:操作系统通常运行在该特权级,也成为内核态 EL2:在虚拟化场景下需要,虚拟机监控器(VMM,也称为 Hypervisor)通常运行在该特权级 EL3:和安全特性 TrustZone 相关,负责普通世界(normal word)和安全世界(secure world)之间的切换 一般来说,EL0 切换到 EL1 的可能场景有三种: 应用程序需要调用操作系统提供的系统调用,此时应用程序会通过执行 svc(特权调用 supervisor call)指令将 CPU 特权级从 EL0 切换到 EL1 应用程序执行了一条指令,而该指令触发了异常(exception),该异常导致 CPU 特权级从 EL0 切换到了 EL1。例如,应用在执行一条访存指令时,触发了缺页异常(page fault),从而切换到操作系统内核进行处理 应用程序在执行的过程中,CPU 收到了一个来自外设的中断(interrupt),该中断也会导致 CPU 特权级从 EL0 切换到 EL1 前两种成为同步的 CPU 特权级切换,因为都是由于 CPU 正在执行的指令所导致的,第三种 CPU 发生的切换并不是由于指令导致的,属于异步的 CPU 特权级切换。 在发生特权级切换时,CPU 负责保存当前执行状态,以便操作系统内核在处理异常是使用并在处理结束后能够恢复应用程序的执行,CPU 保存的主要状态包括:


沪ICP备19023445号-2号
友情链接