操作系统中的基础抽象
背景
计算机系统的物理资源 = 计算机存储类(处理器+内存) + 接口类(外存+外设)。
所以为了方便对物理资源的管理和控制,现代操作系统中引入了三个核心概念,由这三种核心概念形成了三种最基础抽象
进程 => 进程抽象 、虚存 => 虚存抽象 、 文件 => 文件抽象
进程抽象
进程
概念:是对进入内存的执行程序在处理器上操作的状态集的一个抽象。是并发和并行的操作的基础。每一个进程都是一个自治执行单元。
-
为什么需要进程抽象
处理器若要被时分复用,并被系统中的可执行进程共享。
-
处理器如何被时分复用
通过OS提供进程调度和上下文切换
-
为何OS要提供进程调度和上下文切换
OS中有许多进程并发执行,所以OS必须提供进程调度和上下文切换功能。
进程抽象是处理器的一种抽象,在虚拟机界面上的抽象接口通过 OS提供进程控制的原语实现程序的运行
由于进程的执行依赖于内存和设备上的信息资源,所以还需要虚存抽象和文件抽象。
虚存抽象
为什么需要虚存抽象?
在创建进程时,OS对处理器和内存资源均有需求,所以需要一个特殊的抽象资源——虚拟存储器。
概念:
虚拟内存的本质是在物理内存的基础上创建一个新的抽象概念,所以虚存是内存的一种抽象。
虚拟存储器
原理(引用一位大佬写的博客)
实质:
虚存是通过结合对内存和外存的管理来实现的。
- 在传统存储器中:进程内容直接在物理内存上运行
- 虚拟存储器是将进程内容存储在磁盘上,使物理内存作为磁盘的高速缓存,以此为用户提供比物理内存空间大得多的虚拟内存空间。
影响:
使得在虚拟机界面上运行的应用程序不必考虑内存大小及地址映射问题,多个进程的虚存空间彼此隔离,具有很好的安全性。
效果:给用户造成一种像是独占一个硕大的连续地址空间,所编写的程序长度不受物理内存大小限制。
虚存抽象解决了进程对内存的依赖,但是程序和数据往往又被预先存储在设备上所以还需要对设备进行抽象。
文件抽象
概念:
文件是设备(对所有物理设备)的一种抽象,通过将文件中的字节映射到存储设备的物理快中来实现文件抽象。
好处:
对于信息的存储、检索、更新、共享、和保护带来方便。
总结
为什么要三种抽象?
防止硬件资源被失控的应用程序滥用以及屏蔽复杂的硬件资源操作细节,为应用程序提供使用硬件资源的简单且一致的方法。
三种抽象存在一种包含关系:
结
为什么要三种抽象?
防止硬件资源被失控的应用程序滥用以及屏蔽复杂的硬件资源操作细节,为应用程序提供使用硬件资源的简单且一致的方法。
三种抽象存在一种包含关系:
文件抽象是对设备的抽象,虚存抽象是对内存和设备(磁盘)的抽象,进程抽象是对处理器、内存和设备的抽象。