aleph one

[翻译]虚拟内存介绍

梦想的初衷 提交于 2020-08-09 06:04:30
原文地址 An introduction to virtual memory 计算机是用来执行简单任务的复杂机器:比如 上网、文本编辑、网页服务、视频游戏……,还可以对数据进行操作,图片 音乐 文本 数据库…… 当计算机不使用的时候,程序和数据都安静地躺在磁盘里,即便你关机了数据也会在。运行一个应用就是让处理器(CPU)读取和执行程序代码的机器指令处理数据。 磁盘可以保存大量的信息,但存取的时候都非常非常慢,比CPU慢得多,如果CPU直接从磁盘中读取指令,显然会成为整个系统的性能瓶颈。为此,主存/内存(RAM)就诞生了,内存是比磁盘小,但读写速度快得多的存储设备。应用运行时其程序和数据首先拷贝到内存中,这样处理器就可以在内存中读写数据,从而避免了大量的等待。 主存可以看作是一个很长的单元格列表,每个单元格包含一些二进制数据,并用一个称为内存地址的数字进行标记。根据系统中可用的主存数量,内存地址的范围从0到N。程序使用的地址范围称为地址空间。 早期计算机的内存使用 在早期的计算机中(现在也见于某些嵌入式系统),程序是可以访问整个内存空间的,内存的管理也得由程序员自己实现。在这种类型的计算机上写程序是一种挑战,因为程序员得找到一种好的内存管理方式,以确保各程序之间内存不会覆盖和干扰。 问题在多任务的时候更复杂,因为程序员必须面对更严峻的问题? 内存布局 ——