ref:《操作系统导论》[美]雷姆兹·H.阿帕希杜塞尔,安德莉亚·C.阿帕希杜塞尔
第一章:操作系统介绍
程序运行时会发生什么?
- 简单来说,就是执行指令
- 处理器从内存中获取(fetch)一条指令,对其进行解码(decode),然后执行它。完成这条指令后,处理器继续执行下一条指令。
操作系统:
- 负责让程序运行变得容易(甚至允许你同时运行多个程序),允许程序共享内存,让程序能够与设备交互,以及其他类似的有趣的工作
1. 虚拟化
关注虚拟化技术:- 操作系统通过哪些机制和策略来实现虚拟化?
- 如何有效的实现虚拟化?
- 需要哪些硬件支持?
虚拟化:
- 操作系统将物理(physical)资源(如处理器、内存或磁盘)转换为更通用、更强大且更易于使用的虚拟形式。因此,我们有时将操作系统称为虚拟机(virtual machine)。
- 为了方便用户使用,操作系统还提供了相应的系统调用(API),供你调用。为用户提供这些调用来运行程序、访问内存和设备。
- 作为资源管理器
1.1 虚拟化CPU
将单个CPU(或其中一小部分)转换为看似无限数量的CPU,从而让许多程序看似同时运行,这就是所谓的虚拟化CPU(virtualizing the CPU)这种能力又会带来新的问题: 如果两个程序想要在特定时间运行,应该运行哪个?(并发问题)
1.2 虚拟化内存
内存
内存就是一个字节数组。要读取(read)内存,必须指定一个地址(address),才能访问存储在那里的数据。要写入(write)或更新(update)内存,还必须指定要写入给定地址的数据。
程序将所有数据结构保存在内存中,并通过各种指令来访问它们,例如加载和保存,或利用其他明确的指令,在工作时访问内存。不要忘记,程序的每个指令都在内存中,因此每次读取指令都会访问内存。