操作系统5-虚拟内存

虚拟内存

覆盖技术

把一些不会相互调用的函数分配到相同的地址空间,当需要调用的时候覆盖内存就可以了。
需要程序员来设计,费时费力,模块的覆盖是时间换空间

交换技术

让暂时不运行的程序交换到磁盘中,当使用的时候换回内存。
只在内存不够的时候交换,磁盘的交换区的空间必须足够大,换出然后换入的时候物理内存不一定一样了,但是我们可以用虚地址解决这个问题。

虚存技术

像覆盖技术一样不把程序所有的内容都放入内存,想交换技术那样,只对进程的部分内容进行交换,

虚存技术的页表项

逻辑页号+访问位+修改位+保护位+驻留位+物理页号
驻留位表示页面是否在内存中,保护位表示权限,修改位表示这个页是否被写过用于支持内存硬盘的一致性,访问位表示这个页面最近是否被访问过
如果我们发现驻留位为0,则触发缺页中断,操作系统把页面读入,然后修改页表,最后跳回发生缺页中断的位置继续执行

后备存储

可以映射到已有的二进制文件中,可以映射到同台调用的库文件中,