- 1、本文档共179页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统 计算机网络 西方经济学
山东农业大学计算机系 第4章 存储器管理 山东农业大学计算机系 王雅琴 存储层次结构 存储管理的功能 存储分配和回收:分配和回收算法及相应的数据结构。 地址变换: 可执行文件生成中的链接技术 程序加载(装入)时的重定位技术 进程运行时硬件和软件的地址变换技术和机构 存储共享和保护: 代码和数据共享 地址空间访问权限(读、写、执行) 存储器扩充: 存储器的逻辑组织和物理组织; 由应用程序控制:覆盖; 由OS控制:交换(整个进程空间),虚拟存储的请求调入和预调入(部分进程空间) 4.1 程序的装入和链接 将用户源程序变为可在内存中执行的程序的步骤: 编译:由编译程序将用户源代码编译成若干个目标模块 链接:由链接程序将编译后形成的一组目标模块,以及它们所需要的库函数链接在一起,形成一个完整的装入模块 装入:由装入程序将装入模块装入内存,构造PCB,形成进程(使用物理地址) 4.1 程序的装入和链接 重定位方法 重定位:把程序中的逻辑地址变成内存中的物理地址的过程叫做重定位。 静态重定位:在程序执行之前进行,由专门设计的重定位装配程序完成。 动态重定位:在程序执行过程中,每次访问内存之前将程序地址变换为内存地址,这种变换是依靠硬件地址变换机构实现的。 逻辑地址、物理地址和地址映射 逻辑地址(相对地址,虚地址):用户的程序经过汇编或编译后形成目标代码,目标代码通常采用相对地址的形式。 其首地址为0,其余指令中的地址都相对于首地址来编址。 不能用逻辑地址在内存中读取信息。 物理地址(绝对地址,实地址):内存中存储单元的地址。物理地址可直接寻址。 4.1 程序的装入和链接 4.1.1 程序的装入 先介绍一个无须进行链接的单个目标模块的装入过程。此时目标模块就是装入模块。 将一个装入模块装入内存时,有三种方式: 绝对装入方式 静态重定位装入方式 动态重定位装入方式 4.1 程序的装入和链接 1. 绝对装入方式 在编译时,如果知道程序驻留在内存的什么位置,那么编译程序将产生绝对地址的目标代码。 装入模块装入内存后,程序中的逻辑地址与实际内存地址完全相同,不须对程序和数据的地址进行修改。 绝对装入(absolute loading) 优点:装入过程简单。 缺点:过于依赖于硬件结构,不适于多道程序系统。 在多道程序环境下,目标模块的起始地址通常从0开始,程序中的其他地址都是相对于起始地址计算的。因此应采用可重定位装入方式,根据内存的当前情况,将装入模块装入到内存的适当位置。 4.1 程序的装入和链接 静态重定位装入(relocatable loading) 优点:不需硬件支持,可以装入有限多道程序。 缺点:一个程序通常需要占用连续的内存空间,程序装入内存后不能移动。不易实现共享。 3. 动态重定位装入方式(dynamic run-time loading) 动态运行时的装入程序,在把装入模块装入内存后,并不立即把装入模块中的相对地址转换为绝对地址,而是把这种地址转换推迟到程序真正要执行时才进行。因此,装入内存后的所有地址都仍是相对地址。为使地址转换不影响指令的执行速度,应设置一个重定位寄存器。有关内容稍后介绍。 3. 动态重定位装入方式(dynamic run-time loading) 优点: OS可以将一个程序分散存放于不连续的内存空间,可以移动程序,有利于实现共享。 缺点:需要硬件支持,OS实现较复杂。 是虚拟存储的基础。 4.1 程序的装入和链接 4.1.2 程序的链接 静态链接:在程序运行前,将目标模块及所需的库函数链接成一个完整的装配模块,以后不再拆开。 装入时动态链接:指将用户源程序编译后所得的一组目标模块,在装入内存时,采用边装入边链接的链接方式。 运行时动态链接:指对某些目标模块的链接,是在程序执行中需要该目标模块时,才对它进行链接。 1、静态链接(static-linking) 4.1 程序的装入和链接 2. 装入时动态链接 边装入边链接。 优点: (1) 便于修改和更新 (2) 便于实现对目标模块的共享 3. 运行时动态链接 边执行边链接! 优点: 加快装入过程、节省内存空间 4.2 连续分配方式 连续分配方式,是指为一个用户程序分配一个连续的内存空间。 分类: 单一连续分配 固定分区分配 动态分区分配 可重定位分区分配 对换技术 4.2 连续分配方式 4.2.1 单一连续分配 最简单的一种存储管理方式,但只能用于单用户、单任务的操作系统中。 采用这种存储管理方式时,可把内存分为系统区和用户区两部分,系统区仅提供给OS使用,通
文档评论(0)