定址空间(英语:Address space),又称为地址空间、地址空间,定义了某个范围内的离散
地址,这些地址可能分别对应到某个网络节点、周边设备、扇区或是某个实体或是逻辑器件等等。
例子
地址的使用包括但不限于以下内容:
1、主内存,内存映射I / O以及虚拟内存的内存地址;
2、扩展总线上的设备地址;
4、特定卷上的文件名;
5、计算机网络中的各种网络主机地址;
地址映射和翻译
地址空间的另一个共同特征是映射和转换,通常形成多个层。这通常意味着必须以某种方式将某些更高级别的地址转换为更低级别的地址。例如,逻辑磁盘上的文件系统操作线性扇区号,在简单情况下,通过添加分区的第一个扇区地址,必须将其转换为绝对LBA扇区地址。然后,对于通过并行ATA连接的磁盘驱动器,由于接口历史缺点,每个磁盘驱动器必须转换为逻辑柱面磁头扇区地址。它由磁盘控制器转换回LBA,最后转换为物理柱面,磁头和扇区号。
域名系统将其名称映射到(和来自)特定于网络的地址(通常是IP地址),这些地址又可以通过地址解析协议映射到链路层网络地址。而且,网络地址转换可以发生在不同IP空间的边缘,例如局域网和因特网。
虚拟到物理地址转换的标志性示例是
虚拟存储器,其中虚拟地址空间的不同页面映射到页面文件或主存储器物理地址空间。有几个数字上不同的虚拟地址可能都指向一个物理地址,因此指向RAM的相同物理字节。单个虚拟地址也可能映射到零个,一个或多个物理地址。
地址空间转换与标记回溯
地址空间转换是一个完全不同于操作转换的技术——操作意愿的保持是通过转换文档的地址空间,而不是转换操作本身。为了实现文档地址空间的转换,我们引入了标记(mark)技术。一个标记表示一个字符节点在一个给定的时刻是有效还是无效的。
因为一个用户不会产生两个并发的操作请求。不妨假设该用户产生了两个操作O1、O2,满足先后关系O1 →O2 时,则两操作请求对应的状态向量满足 SVi ≤SVj 且 SVi ≠SVj 。所以算法可以通过操作的状态向量和用户 ID 可惟一确定 Undo 指定的操作。即 Undo 操作通过描述 Undo 的对象操作的时间戳和用户 ID 来描述 Undo 的内容。
Undo 操作是作为一个普通操作而存在的,Undo 操作的执行也同样是修正该字符的节点的有效/无效信息,关于有效/无效信息我们会在下一节介绍。于是 Undo 操作的执行也需要首先定位到正确的字符位置,然后才可以进一步对字符的有效/无效信息进行处理。为了使Undo 操作同样可以定位到正确的位置,我们需要修改之前的地址空间转换算法,使其可以兼容Undo 操作。基于地址空间转换方法的协同编著系统是建立在三个条件上的:①执行完一组协同操作后,各节点上数据拷贝的内容应保持完全一致;②任意两个操作 O1 ,O2 ,若它们相互独立,则它们在任何节点上以任何顺序执行的结果都应与其在本地执行的预期结果一致;③操作的位置决定于产生该操作的节点已经执行了哪些操作和操作的相对位置。我们将在后面介绍了如何使用标记回溯方法实现支持 Undo 操作的一致性维护。由于地址空间转换的算法是与存储结构紧密关联的。
地址空间回溯算法
在时间戳模式下,保证因果一致性(causalitypreservation)只需要保证一个站点执行一个异地操作满足操作的执行条件:即每个操作都在保证因果顺序的情况下执行。但是即使满足操作的因果顺序,在不同的站点间操作到达的顺序不同,执行的顺序仍然会有所不同。当一个操作满足操作的执行条件的时候,Mark & Retrace 的方法通过 Control过程保证操作执行的收敛性(convergence)和维护意愿(intention preservation)。
一 个 Control 过 程 可 以 描 述 成 两 次 回 溯(retracing) 过程,第一次回溯过程将文档的地址空间回溯到操作产生时的状态,保证操作的执行可以定位到正确的位置,第二次回溯过程将文档恢复到当前的状态。由于址空间使用线性结构中从左至右有效的字符节点表示,两个有效的字符节点间可能存在多个无效的字符节点,为了保证操作执行的收敛性,Mark & Retrace 的方法引入 Range-Scan 过程进一步确定插入操作间惟一的左右关系。
Range-Scan 过程处理的是新插入的字符与已有的无效字符间的左右关系。虽然这些字符在当前状态下是无效的,但是新插入的字符仍需要与这些字符保持一致的左右关系,以保证当其中某些字符恢复有效之后,所有站点的结果是一致的。Range-Scan 过程对字符左右关系的判断只考虑字符的插入操作,通过判断插入操作的 TOrder 关系来觉得其左右顺序,而不考虑字符上其它的操作,而回溯过程又保证 Range-Scan 过程执行时,字符的有效/无效信息时确定的,则 Undo 操作的引入不会对Range-Scan 过程产生影响。
而 Undo 操作的执行也仅仅是修改有效/无效标记,不会影响字符间的左右顺序,也不会对其它类型操作的执行产生影响,于是整个 Control 过程中只有回溯过程是与操作类型相关的。由于 Mark &Retrace 过程的回溯过程没有考虑 Undo 操作,这里我们对回溯过程做出修改。设站点 S 的文档线性结构表示成 Doc S ,其中 S 的状态向量表示为 SV,设任意一个满足因果顺序的时间戳为 SV,用 CN表示文档中的每个字符节点。对于每个字符节点 CN i ,假设一个节点可能附着的插入操作和删除操作,它们的时间戳分别为:SV1 和SV2, 通过引入计数器Counter,来统计操作的意愿数量,以决定字符节点的最终有效/无效信息的状态,这里的操作意愿考虑了 Undo 操作的意愿。则修改后的回溯过程(retracing)可以表示成:
在我们的协同编著模型中操作抽象为插入、删除和 Undo 三类。除插入操作外,其它类型操作的执行都体现为对字符有效/无效信息的修改。于是可以通过被操作的字符的有效/无效信息的实际结果来描述该操作的意愿。对于回溯过程中的操作意愿,在这里我们做出说明,依据有效/无效信息结果,意愿可以分为两类:
(1)希望节点设置为无效的操作,包括“Delete操作”和“针对 Insert 的 Undo 操作”;
(2)希望节点设置为有效的操作,包括“针对Delete 的 Undo 操作”。
前面已经提到,与 Delete 操作类似, Undo 操作仍然只影响有效/无效标记,而不会对字符间的左右顺序产生影响,所以对回溯过程的上述修改并不影响算法的正确性。
操作系统
在
操作系统中,地址空间指的是某个特定
进程,在存储器中所能够使用与控制的地址区块。
参见