"《计算机操作系统》(第三版) - 汤小丹、梁红兵、哲凤屏、汤子瀛 著"
在计算机科学领域,操作系统是至关重要的组成部分,它负责管理计算机系统的资源并提供给用户和应用程序接口。在程序的执行过程中,装入和链接是两个关键步骤,尤其在多道程序环境下。本文主要围绕程序的装入和链接进行阐述,出自《计算机操作系统》一书,作者包括汤小丹、梁红兵、哲凤屏和汤子瀛,这是一部针对计算机专业本科教育的规划教材。
程序的装入通常涉及三种方式:
1. 绝对装入方式:在这种方法中,编译后的目标模块在链接后生成的装入模块的地址是绝对的,即代码和数据的地址在装入时就已确定,直接装入到内存的特定位置。这种方法简单,但不适用于多道程序环境,因为内存可能无法提供所需的固定地址空间。
2. 可重定位装入方式:为了解决绝对装入方式的问题,引入了可重定位装入。装入程序会在装入时根据内存的实际情况对程序的地址进行调整,使得程序可以装入到内存的任意位置。这种方式允许多个程序共享内存空间,适应了多道程序设计的需求。
3. 动态运行时装入方式:在程序运行时进行地址的重新定位,这样即使程序在内存中的位置未知或不断变化,也能正确执行。这种方式提高了内存的利用率,减少了内存碎片,但需要额外的硬件支持,如基址寄存器和界限寄存器。
程序的链接是将编译后的多个目标模块以及它们依赖的库函数组合成一个完整的可执行文件的过程。链接可以分为静态链接和动态链接:
- 静态链接:在程序编译期间,链接器会将所有必要的目标模块和库函数合并成一个单一的可执行文件。这种链接方式在程序运行时不需要额外的链接操作,但可能导致文件体积大且不易更新。
- 动态链接:在程序运行时才进行链接,仅加载必要的库函数,从而节省内存空间。动态链接库可以在多个程序间共享,便于代码的更新和维护。
《计算机操作系统》这本书还涵盖了其他操作系统的重要概念,如进程和线程管理、内存管理、设备管理、文件系统、用户接口、网络安全以及UNIX系统内核结构等,旨在全面介绍操作系统的设计原理和技术。
此书适合用作计算机专业本科教学的教材,同时也适合作为计算机及相关领域技术人员的参考书籍,帮助读者深入理解操作系统的工作机制和实现方法。