- 1、本文档共171页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
04、存储器管理
第4章 存储器管理 第4章 存储器管理 存储器是计算机系统的重要组成部分,虽然内存容量在不断扩大,但内存仍是宝贵资源,如何提高主存储器利用率,并扩充大主存,对主存信息实现有效保护是存储器管理主要任务,也是各种不同存储管理方法的目标。 存储管理是指存储器资源(主要指内存并涉及外存)的管理 存储器的功能是保存数据,存储器的发展方向是高速、大容量和小体积 访问速度方面的发展:DRAM,SDRAM,SRAM,DDR等 硬盘技术在大容量方面的发展:接口标准、存储密度等 第4章 存储器管理 存储组织是指在存储技术和CPU寻址技术许可的范围内组织合理的存储结构。 其依据是访问速度匹配关系、容量要求和价格。 “寄存器-内存-外存”结构 “寄存器-缓存-内存-外存”结构; 微机中的存储层次组织: 访问速度越慢,容量越大,价格越便宜; 最佳状态应是各层次的存储器都处于均衡的繁忙状态(如:缓存命中率正好使主存读写保持繁忙); 4.1 程序的装入和链接 4.1 程序的装入和链接 逻辑地址(相对地址,虚地址):用户的程序经过汇编或编译后形成目标代码,目标代码通常采用相对地址的形式。 其首地址为0,其余指令中的地址都相对于首地址来编址。 不能用逻辑地址在内存中读取信息。 物理地址(绝对地址,实地址):内存中存储单元的地址。物理地址可直接寻址。 地址映射:将用户程序中的逻辑地址转换为运行时由机器直接寻址的物理地址。 当程序装入内存时, 操作系统要为该程序分配一个合适的内存空间,由于程序的逻辑地址与分配到内存物理地址不一致, 而CPU执行指令时,是按物理地址进行的,所以要进行地址转换。 4.1 程序的装入和链接 4.1 程序的装入和链接 4.1.1 程序的装入 绝对装入方式(Absolute Loading Mode) 在编译时,如果知道程序将驻留在内存中指定的位置。编译程序将产生绝对地址的目标代码。 装入模块被装入内存后,由于程序中的逻辑地址与实际内存地址完全相同,故不需对程序和数据的地址进行修改。 绝对地址,既可在编译或汇编时给出, 也可由程序员直接赋予。 但在由程序员直接给出绝对地址时, 不仅要求程序员熟悉内存的使用情况,而且一旦程序或数据被修改后,可能要改变程序中的所有地址。因此,通常是宁可在程序中采用符号地址,然后在编译或汇编时,再将这些符号地址转换为绝对地址。 4.1.1 程序的装入 可重定位装入方式(Relocation Loading Mode) 在可执行文件中,列出各个需要重定位的地址单元和相对地址值。当用户程序被装入内存时,一次性实现逻辑地址到物理地址的转换,以后不再转换(一般在装入内存时由软件完成)。 装入时根据所定位的内存地址去修改每个重定位地址项,添加相应偏移量。 优点:不需硬件支持,可以装入有限多道程序。 缺点:一个程序通常需要占用连续的内存空间,程序装入内存后不能移动。不易实现共享。 4.1.1 程序的装入 可重定位装入方式(Relocation Loading Mode) 4.1.1 程序的装入 动态运行时装入方式(Denamle Run-time Loading) 在把装入模块装入内存后,并不立即把装入模块中的相对地址转换为绝对地址,而是把这种地址转换推迟到程序真正要执行时才进行 装入内存后的所有地址都仍是相对地址。 优点: OS可以将一个程序分散存放于不连续的内存空间,可以移动程序,有利用实现共享。 能够支持程序执行中产生的地址引用,如指针变量(而不仅是生成可执行文件时的地址引用)。 缺点:需要硬件支持,OS实现较复杂。 它是虚拟存储的基础。 4.1.2 程序的链接 链接的分类 : 源程序经过编译后,可得到一组目标模块,再利用链接程序将这组目标模块链接。形成装入模块。根据链接时间不同,可把链接分成如下三种: 静态链接:程序运行前进行链接。 装入时动态链接:将用户源程序编译后,在装入内存时,边装入边链接。 运行时动态链接:对某些目标模块的链接,是在程序执行中需要该模块时,才对它进行的链接。 4.1.2 程序的链接 静态链接: 静态链接是在生成可执行文件时进行的。在目标模块中记录符号地址(symbolic address),而在可执行文件中改写为指令直接使用的数字地址。 4.1.2 程序的链接 装入时动态链接(Load time Dynamic Linking) : 将用户源程序编译后,在装入内存时,边装入边链接。 装入时动态链接方式有以下优点: 便于修改和更新。 便于实现对目标模块的共享。 4.1.2 程序的链接 运行时动态链接(Run-time Dynamic Linking) : 将对某些模块的链接推迟到执行时才执行。 在执行过程中,当发现一个被调用模块尚未装入内存时,立
文档评论(0)