存储空间分配指南.docVIP

  • 4
  • 0
  • 约1.45万字
  • 约 11页
  • 2017-06-28 发布于湖北
  • 举报
第4章 存储空间分配 $Revision: 2.3 $ $Date: 1999/06/15 03:30:36 $ 链接器或加载器的首要任务是存储分配.一旦分配了存储空间后,链接器就可以继续 进行符号绑定和代码调整.在一个可链接目标文件中定义的多数符号都是相对于文件内的存 储区域定义的,所以只有存储区域确定了才能够进行符号解析. 与链接的其它方面情况相似,存储分配的基本问题是很简单的,但处理计算机体系结 构和编程语言语义特性的细节让问题复杂起来.存储分配的大多数工作都可以通过优雅和相 对架构无关的方法来处理,但总有一些细节需要特定机器的专门技巧来解决. 段和地址 每个目标或可执行文件都会采用目标地址空间的某种模式.通常这里的目标是目标计 算机的应用程序地址空间,但某些情况下(例如共享库)也会是其它东西.在一个重定位链 接器或加载器中的基本问题是要确保程序中的所有段都被定义并具有地址,并且这些地址不 能发生重叠(除非有意这样). 每一个链接器输入文件都包含一系列各种类型的段.不同类型的段以不同的方式来处 理.通常,所有相同类型的段,诸如可执行代码段,会在输出文件中被合并为一个段.有时 候段是在其它段的基础上合并得到的(如Fortran的公共块),以及在越来越多的情况下 (如共享库和C++专有特性),链接器本身会创建一些段并将其放置在输出中. 存储布局是一个两遍的过程,这是因为每个段的地

文档评论(0)

1亿VIP精品文档

相关文档