2016第四章存储管理1讲解.ppt

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 存储管理 4.1 存储器 存储器(storage, memmory) 能接收数据和保存数据、而且能根据命令提供这些数据的装置。 4.1.1、存储器的层次 目前计算机系统采用层次结构的存储系统。 寄存器 高速缓存 主存储器 磁盘缓存 固定磁盘 可移动存储介质 访问速度越快 价格越高 存储容量越小 主存储器用于保存进程运行时的程序和数据。 由于主存储器的访问速度远低于CPU执行指令的速度,为缓和这一矛盾,引入了寄存器和高速缓存。 为了扩充主存储器的存储空间,在磁盘上建立磁盘缓存,操作系统自动实现主存储器和磁盘缓存之间的程序和数据的调进调出,从而面向用户提供比实际主存容量大得多的存储空间。 寄存器 主存 辅存 寄存器、高速缓存、主存储器、磁盘缓存属于操作系统存储管理范畴,掉电后所存储的信息不复存在。 固定磁盘和可移动介质属于设备管理的对象,所存储的信息将被持久保存。 4.1.2、地址转换与存储保护 源程序是不能直接执行的,源程序要经过编译、链接、装入这3个阶段处理后才能装入主存运行。 (静态)链接 动态重定位 静态重定位 … 源程序模块1 源程序模块2 源程序模块n … 目标代码1 目标代码2 目标代码n 可重定位目标代码(装载代码)(辅存) 编译 装入 执行 程序名字 空间 逻辑地址 空间 物理地址 空间 可执行二进制代码(主存) 库代码 可执行二进制代码(主存) ...... 1.程序编译 形成目标代码 记录引用发生位置 内部符号表 外部符号表 供链接使用 … 源程序模块1 源程序模块2 源程序模块n … 目标代码1 目标代码2 目标代码n 可重定位目标代码(装载代码)(辅存) 程序名字空间 逻辑地址空间 物理地址空间(内存) 可执行二进制代码(主存) 库代码 可执行二进制代码(主存) 编译 编译 内存 Load A [200] 3456 0 100 200 (简化后) 目标代码 2.链接 静态链接:装入内存前拷贝有关目标文件合成可重定位目标代码(执行程序),放在辅助存储器中。不便共享。 … 源程序模块1 源程序模块2 源程序模块n … 目标代码1 目标代码2 目标代码n 可重定位目标代码(装载代码)(辅存) 程序名字空间 逻辑地址空间 物理地址空间 可执行二进制代码(主存) 库代码 可执行二进制代码(主存) 辅助存储器(硬盘中)中 动态链接:装入内存时(在内存中)将有关目标文件找到(如果内存找不到,从辅存中找到并读进内存)并合成一个可重定位目标代码,放在内存中。便于共享。 … 源程序模块1 源程序模块2 源程序模块n … 目标代码1 目标代码2 目标代码n 可重定位目标代码(装载代码)(辅存) 程序名字空间 逻辑地址空间 物理地址空间(内存) 可执行二进制代码(主存) 库代码 可执行二进制代码(主存) 动态链接 目标代码2 装入时合成 装入时合成 运行时链接:内存中执行时(在内存中)将有关目标文件找到(如果内存找不到,从辅存中找到并读进内存)并合成一个可执行二进制代码,用于执行。便于共享。适用控制在装入时无法知道本次运行要运行目标模块的。 … 源程序模块1 源程序模块2 源程序模块n … 目标代码1 目标代码2 目标代码n 可重定位目标代码(装载代码)(辅存) 程序名字空间 逻辑地址空间 物理地址空间(内存) 可执行二进制代码(主存) 库代码 可执行二进制代码(主存) 目标代码2 执行时合成 执行时合成 3.程序装载 绝对装载:模块中出现的地址就是内存物理地址;(逻辑地址与物理地址合一) 内存 Load A [200] 3456 。 。 200 物理地址空间 Load A [200] 3456 0 100 200 逻辑地址空间 (可装载)目标程序 0 100 装入 可重定位装载:模块内使用的是相对地址;根据装入时的情况,将装载代码放入内存的物理地址; 内存 Load A [200] 3456 。 。 1200 物理地址空间 Load A [200] 3456 0 100 200 逻辑地址空间 BA=1000 (可装载)目标程序 1000 执行load指令有问题吗? 动态运行时装载:模块内使用的是相对地址;允许程序运行时换入/换出到磁盘,而且每次可以出现在不同内存位置。 内存 Load A [200] 3456 。 。 1200 物理地址空间 Load A [200] 3456 0 100 200 逻辑地址空间 (可装载)目标程序 BA=1000 1000 BA=1050 1050 1250

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档