ref:《操作系统导论》[美]雷姆兹·H.阿帕希杜塞尔,安德莉亚·C.阿帕希杜塞尔

第一章:操作系统介绍

程序运行时会发生什么?

  • 简单来说,就是执行指令
  • 处理器从内存中获取(fetch)一条指令,对其进行解码(decode),然后执行它。完成这条指令后,处理器继续执行下一条指令。

操作系统:

  • 负责让程序运行变得容易(甚至允许你同时运行多个程序),允许程序共享内存,让程序能够与设备交互,以及其他类似的有趣的工作

    1. 虚拟化

    关注虚拟化技术:
    • 操作系统通过哪些机制和策略来实现虚拟化?
    • 如何有效的实现虚拟化?
    • 需要哪些硬件支持?

虚拟化:

  1. 操作系统将物理(physical)资源(如处理器、内存或磁盘)转换为更通用、更强大且更易于使用的虚拟形式。因此,我们有时将操作系统称为虚拟机(virtual machine)。
  2. 为了方便用户使用,操作系统还提供了相应的系统调用(API),供你调用。为用户提供这些调用来运行程序、访问内存和设备。
  3. 作为资源管理器

    1.1 虚拟化CPU

    将单个CPU(或其中一小部分)转换为看似无限数量的CPU,从而让许多程序看似同时运行,这就是所谓的虚拟化CPU(virtualizing the CPU)

    这种能力又会带来新的问题: 如果两个程序想要在特定时间运行,应该运行哪个?(并发问题)

1.2 虚拟化内存

内存

内存就是一个字节数组。要读取(read)内存,必须指定一个地址(address),才能访问存储在那里的数据。要写入(write)更新(update)内存,还必须指定要写入给定地址的数据。
程序将所有数据结构保存在内存中,并通过各种指令来访问它们,例如加载和保存,或利用其他明确的指令,在工作时访问内存。不要忘记,程序的每个指令都在内存中,因此每次读取指令都会访问内存。