操作系统介绍
2.1 虚拟化CPU
将一个(或少量)CPU转化成看似有无数个CPU,从而使许多程序看似能够一同运行的技术,我们将其称为虚拟化CPU。
2.2 虚拟化内存
内存只是一组bytes:要读取内存,必须指定一个地址才能访问储存在那里的数据。要写入(或更新)内存,还必须要写入给定地址的数据。
内存在程序运行的时候一直被访问。一个程序将其所有的数据结构保存在内存中,然后通过各种指令来访问。程序的每个指令也在内存中:因此每次取指令也会访问内存。
每个进程都有自己的私有虚拟地址空间,操作系统将以某种方式映射到机器的物理内存上。一个正在运行的程序中的内存引用不会影响其他进程的自治空间,就正在运行的程序而言,它本身都有自己的物理内存。然而真实情况是,物理内存是由操作系统管理的共享资源。
2.3 并发性
上述程序中,创建了两个线程,都执行counter++操作,主线程等待两个线程执行完后输出counter的值,发现counter的值不等于2*loops的值,这是因为执行counter++操作需要三条指令:1.将计数器的值从内存中加载到寄存器中 2.计算器递增 3. 将值存储回内存。因为这三条指令不是原子 (一次全部)执行的,就会发生奇怪的事情。
2.4 持久化
现代系统中,硬盘驱动器 是长期有效信息的通用存储器。操作系统中管理硬盘的软件被称为文件系统。
不同于操作系统为 CPU 和内存提供的抽象,操作系统不会为每个程序创建 一个私有的、虚拟的硬盘。相反,还要假定用户需要经常共享文件中的信息 。