VMM 虚拟机器监控

很多年前,IBM 在售卖它们及其昂贵的大型机给大小组织机构。一个共同的需求在客户中提出,如果客户想要同时在这些硬件上运行不同的操作系统怎么办?还有,有些应用程序部署在某种 OS 上,另外些应用程序需要部署在另外的 OS 上。

IBM 为此种需求提供了一个解决方案,那就是 Virtual Machine Monitor ( VMM ),也被叫做 hypervisor (这个名字可能更为人所知......

超越物理内存限制的内存管理策略

没有为止,我们讨论的都是基于一个重要假设:每个进程的地址空间都能被 load 进内存。

这个假设是不现实的,因为内存永远都有被用完的一天,就跟人的一生生一样,我们必须考虑在有限的空间和时间里,让更多进程得到内存被分配的机会。

Cache 管理最优替换策略一个简单的替换策略:FIFO另外一个简单的策略:随机根据历史而来的替换策略:LRU / LFU具体的例子实现历史上的算法近似 LRU考......

超越物理内存限制的内存管理机制

没有为止,我们讨论的都是基于一个重要假设:每个进程的地址空间都能被 load 进内存。

这个假设是不现实的,因为内存永远都有被用完的一天,就跟人的一生生一样,我们必须考虑在有限的空间和时间里,让更多进程得到内存被分配的机会。

交换空间 Swap Space

内核会保留一些磁盘用于把内存页换出去,我们通常把这些磁盘空间叫做 交换空间(swap space)。

操作系统还必须记住......

缩小页表

上一篇 《TLB - 加速地址翻译》 介绍了加速虚拟地址翻译的机制和策略,但是还有个问题没有很好的解决,那就页表很占内存的问题。

一个 32-bit 的虚拟地址空间(2^32),有着 4KB(2^12) 的页大小,则可能有 2^20=2^(32 - 12) 个(大约 100 多万)个 PTE,假设每个 PTE 4 字节大小,则这个进程的整个页表可能高达 4MB,假设有 100 个进程在操作......

TLB - 加速地址翻译

上一篇《页式内存管理 - 简介》 介绍了页式内存管理的机制,留下了一个问题,那就是 慢,因为多访问了一次内存。

有没有办法减少内存访问次数的办法呢?

有。那就是 Cache,TLB (Translation Lookaside Buffer)——一小块集成在 MMU 中的芯片。

在每一次内存访问里,硬件先看下 TLB 中是否已经有想要的 Page Entry——如果有,那就......

内存地址翻译

这是 《Operating System: Three Easy Pieces》 的第 4 篇读书笔记。

有关 虚拟内存地址的翻译机制( Mechanism )。

OS 对内存的掌控意味着 OS 会确保 一个运行中的应用程序只能访问得到属于它自己的内存,不能访问其他应用程序的内存 。

关键点:如何高效灵活地虚拟化内存?

关键点分解:

How can we ......

CPU 调度策略

这是 《Operating System: Three Easy Pieces》 的第 2 篇读书笔记。

接上篇笔记《Mechanisms on Virtualizing the CPU》,上篇文章介绍了操作系统在虚拟化CPU方面需要的基础机制/设施(Mechanisms),主要是与硬件协作共同提供给上层应用一个安全实用的抽象,本篇主要记录操作系统在调度CPU方面的策略(Policies)......

CPU 虚拟化的机制

这是 《Operating System: Three Easy Pieces》 的第 1 篇读书笔记。

关于 CPU Virtualization。

Synopsis on virtualizing the CPU

Turning a single CPU(or small set of them) into seemingly infinite number of CPUs an......