1. 资源管理
在相互竞争的应用程序之间有序地控制软硬件资源的分配、使用和回收,使资源能够在多个程序之间共享。
1.1 复用
让众多进程共享物理资源(分割实际存在的物理资源)。
物理资源复用共享的基本方法:
- 空分复用共享:资源从“空间”上分割成更小单位供进程使用
- 时分复用共享:资源从“时间”上分割成更小单位供进程使用
- 时分独占式:对资源执行多个操作,通常使用一个周期后才会释放
- 时分共享式:进程占用该资源后可能随时被剥夺,被另一个进程抢占使用
1.2 虚拟(虚拟性)
把一个物理上的实体变为多个逻辑上的对应物;或把多个物理资源变成单个逻辑上的对应物(用户感受到的,是假想的虚拟同类资源)。
为什么内存4GB的电脑能同时运行需要内存远大于4GB的应用程序?
虚拟存储器技术(空分复用技术)。实际只有4GB内存,但在用户看来远大于4GB。
为什么单核CPU能同时运行多个程序?
虚拟处理器技术(时分复用技术)。实际上只有一个单核CPU,在用户看来似乎有多个CPU同时为自己服务。
如果失去了并发性,则一个时间段内系统中只需运行一道程序,虚拟性失去意义。
1.3 抽象
资源抽象指通过创建软件来屏蔽硬件资源的物理特性和实现细节,简化对硬件资源的操作、控制和使用。
- 面向“进程”而非处理器
- 面向“文件”而非设备
- 面向“窗口”而非屏幕
- 面向“虚拟机”而非无论计算机
资源抽象软件对内封装实现细节,对外提供应用接口。
2. 操作系统中的基础抽象
- | 进程抽象 | 虚存抽象 | 文件抽象 |
---|---|---|---|
- | 进程是处理器的一种抽象 | 虚存是内存的一种抽象 | 文件是设备的一种抽象 |
用户 | 运行应用程序,以进程方式执行 | 运行应用程序,使用逻辑地址 | 运行应用程序,使用文件 |
虚拟机界面 | fork()、wait()、exec()… | 虚拟地址 | open()、read()、write()… |
OS | 进程及其管理 | 虚存及其管理 | 文件及其管理 |
物理机界面 | 进程调度和上下文切换 | 物理地址 | 设备驱动 |
硬件 | 处理器 | 内存+外存 | 磁盘及其他设备 |