首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >进程的地址空间是什么?

进程的地址空间是什么?
EN

Stack Overflow用户
提问于 2011-04-07 08:22:11
回答 1查看 3K关注 0票数 0

请有人告诉我地址空间是什么意思吗?为什么叫成这样?也是关于虚拟内存?

提前感谢

问候帕文库马尔

EN

回答 1

Stack Overflow用户

发布于 2011-04-07 08:46:42

我认为地址空间指的是细分市场

在实模式下(英特尔的XT和286)段只是一种使程序独立于内存空间的方法。当程序被编译时,地址(变体、标签-函数)被硬编码到一个程序中。-这样就很难同时加载两个程序,因为它们都想使用相同的地址。

我们需要使用相对地址而不是绝对地址。相对地址和物理地址之间的分辨率是相对于的。如果一个程序是从段0x200开始加载的,而另一个程序是从0x600开始加载的,那么他们可以自由地使用相同的地址(例如0x41),因为这将相对于它们各自的段。在我们的示例(实模式)中,段0x200将被转换为物理地址0x2000 (通过将其乘以0x10),在添加相对地址之后,得到的物理地址将是0x2041

有许多段可以使用。默认情况下,数据操作是相对于程序的数据段(保存在cpu的DS寄存器中)进行的,代码操作是相对于代码区(保存在CS寄存器中)进行的。堆栈地址使用堆栈段 (SS寄存器)解析为物理地址。

但在实际模式下,您可以自由地使用这些段,您可以访问其他程序的段或输入任意值,这些值将被解析为任意物理地址。

在保护模式下,整个概念发生了变化。段不再保存地址。他们持有选择器。它们只引用表中的一个元素,其中保存了真正的基址。该表还包含限制,因此您不能再寻址任何物理地址,只在内存的一部分,这是由操作系统给你的程序。这引入了进程对内存块所有权的概念。

我认为这是足够的开始,欢迎阅读更多的维基百科或其他好的来源。这个话题已经有了很好的记录。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5578035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档