- 1、本文档共176页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章 存储器管理 4.1 引言 4.2 基本的内存管理技术 4.3 对换技术 4.4 分页技术 4.5 分段技术 4.6 虚拟存储器 4.7 请求分页技术 4.8 页面置换算法 4.9 内存块分配算法和抖动问题 4.10 段式虚拟存储器 4.11 段页式结合系统 4.12 Linux系统的存储管理 习题 4.1 引 言 内存(Main Memory或Primary Memory或Real Memory)也称主存, 是指CPU能直接存取指令和数据的存储器。 磁盘、 磁鼓和磁带等存储器, 一般称为外存或辅存(Secondary Storage)。 内存是现代计算机系统进行操作的中心, 如图4-1所示, CPU和I/O系统都要和内存打交道。 4.1.1 用户程序的主要处理阶段 我们用高级语言编程解决某个特定的任务时, 通常先对它进行数学抽象, 确定相应的数据结构和算法, 然后用高级程序设计语言(如PASCAL、 C语言等)或者汇编语言进行程序设计。 这种用高级语言或汇编语言编写的程序就称为源程序。 从用户的源程序进入系统到相应程序在机器上运行, 要经历一系列步骤, 主要处理阶段有: 编辑、 编译、 连接、 装入和运行。 如图4-2所示。 1. 编辑阶段 用户键入编辑命令, 如vi, 进入编辑方式。 在编辑方式下用户将所编写的源程序输入到机器内, 存放在相应的文件(如filel.c)中。 这种存放源程序的文件叫做源文件。 2. 编译阶段 源程序并不能直接在机器上运行, 因为CPU不能识别源程序, 它仅仅认识由规定范围内的一系列二进制代码所组成的指令和数据, 并按预定含义执行一系列动作。 3. 连接阶段 用户程序可以分别进行编译, 从而得到不同的目标模块。 而且用户程序中往往要调用系统库程序和应用程序, 这些程序是预先就编译好的。 这些目标代码不能简单地合并在一起, 因为各自分配的内存地址可能有冲突, 并且调用者还不知道被调用模块放在什么地方, 仅知道它的符号名称。 4. 装入阶段 程序必须装到内存才能运行。 这就需要装入程序根据内存的使用情况和分配策略, 将上述装入模块放入分到的内存区中。 5. 运行阶段 为了运行装入内存中的程序, 需要键入运行命令。 在UNIX/Linux环境中, 可直接键入可执行文件的名称。 此时, 终端进程创建一个子进程。 当这个进程被调度程序选中后, CPU就去执行该进程的可执行代码。 就是说, 该用户程序被执行了。 4.1.2 重定位 由于内存地址是从统一的一个基址0开始按序编号的, 就像是一个大数组那样, 因此, 内存空间是一维的线性空间。 用户程序和数据装入内存时, 需要进行重定位。 例如, 图4-3表示程序A装入内存前后的情况。 在地址空间100号单元处有一条指令“LOAD 1, 500”, 它实现把500号单元中的数据12345装到寄存器1中去。 1. 静态重定位 静态重定位是在目标程序装入内存时, 由装入程序对目标程序中的指令和数据的地址进行修改, 即把程序的逻辑地址都改成实际的内存地址。 对每个程序来说, 这种地址变换只是在装入时一次完成, 在程序运行期间不再进行重定位。 按照静态重定位方式, 图4-3所示的程序A装入内存时的情况就变成如图4-4所示的样子。 它的主要缺点是: (1) 程序的存储空间只能是连续的一片区域, 而且在重定位之后就不能再移动。 这不利于内存空间的有效使用。 (2) 各个用户进程很难共享内存中的同一程序的副本。 2. 动态重定位 动态重定位是在程序执行期间每次访问内存之前进行重定位。 这种变换是靠硬件地址变换机构实现的。 通常采用一个重定位寄存器, 其中放有当前正在执行的程序在内存空间中的起始地址, 而地址空间中的代码在装入过程中不发生变化。 动态重定位的过程如图4-5所示。 如果用(BR)表示重定位寄存器中的内容, 用addr表示操作对象的相对地址, 则操作对象的绝对地址就是(BR)+addr的值。 动态重定位的主要优点是:
您可能关注的文档
- 常用工具软件案例教程 教学课件 作者 谢树新 第6章 计算机安全工具.ppt
- 操作系统(第二版)(冯耀霖) 第6章.ppt
- 城乡规划 教学课件 作者 解万玉 第1单元 认识城乡与城乡规划.ppt
- 仓储业务管理 教学课件 作者 郑克俊 (课件PDF格式) 项目2 库场规划与设施配置.pdf
- 操作系统(第二版)(冯耀霖) 第7章.ppt
- 城乡规划 教学课件 作者 解万玉 第2单元 城乡规划体系及工作内容.ppt
- 常用工具软件案例教程 教学课件 作者 谢树新 第7章 系统维护工具.ppt
- 城乡规划 教学课件 作者 解万玉 第3单元 城乡规划的调查研究与发展战略.ppt
- 操作系统(第二版)(冯耀霖) 第8章.ppt
- 城乡规划 教学课件 作者 解万玉 第4单元.ppt
文档评论(0)