跳转到内容

User:使皓月何夕/基地址与边界地址

维基百科,自由的百科全书

在计算机领域,基地址-边界地址(base and bounds)是指一种简单的虚拟内存实现方式。这种内存管理方法通过使用一个或少数几组被称为基址寄存器和界限寄存器(base and bounds registers)的处理器寄存器组,来控制对计算机内存的访问。

在最简单的实现中,每个用户进程被分配一段连续的物理内存空间。操作系统将这段内存的起始物理地址加载到基址寄存器(base register)中,并将其大小加载到界限寄存器(bound register)中。程序看到的虚拟地址会与基址寄存器的值相加,生成物理地址。系统还会通过界限寄存器的值检查地址是否越界,防止进程访问超出其分配的内存段。

操作系统不受硬件限制,可以访问全部物理内存。

该技术通过隔离不同进程的内存段,防止进程间非法访问或修改内存。但它无法阻止进程自身内部的错误访问(例如野指针)。此外,由于程序的内存重定位仅需修改基址和界限寄存器,因此内存中程序的移动变得便捷。

部分计算机系统将此机制扩展为多段式,例如UNIVAC 1100系列计算机中将指令和数据分为i bank与d bank,或DEC PDP-10系统将内存划分为用户进程可读写的"低"段和用于共享代码的只读"高"段。

1987年苹果公司(Apple Computer)的MultiFinder是该技术更现代的应用。程序在资源分支(resource fork)中附带声明的内存需求值,操作系统尝试将程序移至具有该空闲量的内存区域。用户也可通过"Get Info"对话框调整此数值,通常用于为Photoshop等需要大量内存的程序增加配额。

分段式虚拟内存是该机制向大量段的进一步泛化。通常段表存储在内存中而非寄存器中。

Category:使用创建条目精灵建立的页面

基地址与边界地址

[编辑]