


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十一讲 存储器管理之基本概念存储器是计算机系统的重要部分,存储器是一种宝贵的资源,因此要合理的管理和利用。存储器管理的主要对象是内存。存储管理的主要任务是为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率以及从逻辑上扩充存储器。存储器管理应该具有下面功能:n 实现内存的分配和回收n 地址变换n “扩充”内存容量n 进行存储保护1 程序的装入和链接在多道程序环境下,要使程序运行,必须创建进程,而创建进程第一件事就是将程序和数据装入内存。一个用户源程序要变为在内存中可执行的程序,通常要进行以下处理:(1)编译:由编译程序将用户源程序编译成若干个目标模块(2)链接:由链接程序将目标模块和相应的库函数链接成装入模块(3)装入:由装入程序将装入模块装入内存1.1 一些概念u 逻辑地址-用户程序经编译后,每个目标模块以0为基地址进行的顺序编址。也就是相对与初始地址的,逻辑地址又称相对地址,相对基地址而言。u 物理地址-内存中各物理存储单元的地址从统一的基地址进行的顺序编址。物理地址又称绝对地址,它是数据在内存中的实际存储地址。u 地址空间(名空间):指用户程序使用的全部地址。地址空间中的每个地址单元编号称为逻辑地址(logical address),由于通常逻辑地址都是相对于程序的起始地址的,故又称为相对地址(relative address)。u 存储空间:指内存中存储数据的物理单元的集合。这些物理单元的集合称为物理地址(physical address)或绝对地址(absolute address)。u 重定位:当作业的地址空间与存储空间不一致时,所进行的地址调整以便使作业能够执行的过程称为重定位。重定位实质是地址变换,即作业地址空间中的逻辑地址变换为主存空间的物理地址。根据地址变换进行的时间及采用技术手段不同,可分为静态重定位和动态重定位两类。静态重定位(static relocation):在作业装入时根据目标程序装入内存的位置来对目标程序中的地址进行修改(变换),使之能正确运行。在完成装入后,在作业执行期间不再进行地址修改,因此也不允许作业在内存中移动。静态重定位的优点是地址变换由软件实现,不需硬件变换机构,但缺乏灵活性,不利于改善内存的利用率。动态重定位(dynamic relocation):指把用户程序地址空间中的逻辑地址,变换为内存空间的物理地址的过程,是在程序执行每条指令时,由地址变换机构硬件自动完成的。动态重定位的优点是灵活,有利于提高主存的利用率及对程序段的共享。1.2 程序的装入将装入模块装入内存时。可以有以下装入方式。1.2.1 绝对装入方式思想:编译时,若知道程序将驻留内存的什么位置,则编译程序将产生绝对地址的目标代码,链接得到装入模块。绝对装入程序按照装入模块中的地址,将程序和数据装入内存。装入模块被装入内存后,由于程序中的逻辑地址与实际内存地址完全相同,因此不用对程序和数据进行修改。那么是谁知道程序将驻留在内存的什么位置呢?程序员,因此此方式要求程序员要很熟悉内存使用情况。适用:单道程序环境1.2.2 可重定位装入方式基本思想:在多道环境下,不可能预知程序应该放在内存的哪个位置,装入程序在装入时根据内存的实际情况把相对地址(逻辑地址)转换为绝对地址,装入到适当的位置。(在装入时进行地址转换)静态重定位。适用:用于多道程序环境。课本例子见下图P1041.2.3动态运行时装入方式思想:在把装入模块装入内存后,并不立即进行地址转换,而是把相对地址到绝对地址的的地址转换推迟到程序真正开始运行的时候再进行。需要一个重定位寄存器支持。其本质就是在程序运行的过程中进行地址转换。适用:多道环境中程序在内存中改变位置。1.2.4 三种装入方式的对比绝对装入方式只能将装入模块装入到内存中事先指定的位置,在多道程序环境下是不可能事先知道每一道程序在内存中的位置的,因此这种装入方式只能用于单道程序环境。地址转换时机:程序中所使用的绝对地址,既可在编译或汇编时给出,也可由程序员直接赋予。适用于单道 环境。可重定位装入方式可将装入模块装入到内存中任何允许的位置,故可用于多道程序环境;然而它不允许程序在运行中移动位置。地址转换时机发生于程序装入内存时发生。适用于动态运行时装入方式允许程序在运行中移动位置,需要特殊硬件的支持。地址转换时机发生于程序运行时。适用于1.2 程序的链接由链接程序将目标模块和相应的库函数链接成装入模块。按照链接时间不同分为三种:1.2.1 静态链接方式思想:我们常说静态链接实在生成可执行文件时进行的。是一种事先链接方式,即在程序运行之前,先将各目标模块及它们所需的库函数,链接成一个完整的装入模块(执行文件),以后不再拆开。实现静态链接应解决的问题:(1)相对地址的修改。每个模块中所有相对地址的修改。比如,原起始地址为0,现在为L。则模块中所有相对地址都要加L。(2)变换外部调用符号。每个模块中所用的外部调用符号也都要变换。存在问题:(1)不便于对目标模块的修改和更新(2)无法实现对目标模块的共享如图1.2.2 动态链接在装入或运行时进行链接。通常被链接的共享代码称为动态链接库(DLL, Dynamic-Link Library)或共享库(shared library)。优点 共享:多个进程可以共用一个DLL,节省内存,减少文件交换。 部分装入:一个进程可以将多种操作分散在不同的DLL中实现,而只将当前操作相应的DLL装入内存。 便于局部代码修改:即便于代码升级和代码重用;只要函数的接口参数(输入和输出)不变,则修改函数及其DLL,无需对可执行文件重新编译或链接。 便于运行环境适应:调用不同的DLL,就可以适应多种使用环境和提供不同功能。如:不同的显示卡只需厂商为其提供特定的DLL,而OS和应用程序不必修改。1.2.2.1 装入时动态链接思想:指将一组目标模块在装入内存时,边装入边链接的方式。具有便于修改和更新、便于实现对目标模块的共享
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 冷轧厂各岗位应急预案编制(3篇)
- 房建工程施工方案(3篇)
- 湖南交通工程学院《信息技术在农业上的应用》2024-2025学年第一学期期末试卷
- 2024年天水市清水县城区中小学幼儿园选调教师真题
- 江苏航空职业技术学院《日用陶瓷创新设计》2024-2025学年第一学期期末试卷
- 拍卖师考试(拍卖概论)综合试题及答案(黑龙江省2025年)
- 商洛职业技术学院《生物药物检测技术与设备》2024-2025学年第一学期期末试卷
- 拍卖师资格考试(拍卖经济学)模拟试题及答案三
- 新疆科技职业技术学院《房屋建筑学A》2024-2025学年第一学期期末试卷
- 衡水学院《软件工程项目》2024-2025学年第一学期期末试卷
- 2025年陕西省综合评标评审专家库考试历年参考题库含答案详解(5套)
- 软件开发项目进展汇报
- 六安市辅警真题2024
- 海南省省直辖县级行政单位2024-2025学年七年级下学期7月期末考试语文试卷(含答案)
- 2025年《资料员》考试题库附答案【模拟题】
- 磷石膏砌块项目可行性研究报告
- 现场调试合同协议书模板
- DB65∕T 4791-2024 水工隧洞敞开式TBM施工技术规范
- 工行金库资产管理办法
- DG-TJ08-2144-2025 公路养护工程质量检验评定标准
- 医疗集团薪酬管理办法
评论
0/150
提交评论