- 1、本文档共139页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
本章要点 存储管理的任务 内存划分与分配技术 程序装入技术 简单存储管理技术 虚拟存储管理技术 3.1 存储管理的任务 存储分配 基本任务:管理内存空间的分配与回收 (1)分配基本内存空间 (2)增加新的内存空间 — 动态申请或释放内存空间 (3)回收内存空间 用于内存管理的数据结构 如位示图、空闲页框表等。 记载哪些内存被分配给了哪个进程,哪些内存空间是空闲的等信息。 若系统采用虚拟存储管理技术,还需要登记进程的程序和数据中,哪些部分在内存,哪些部分尚在外存等信息。 这些数据结构自身需要占用一定的内存空间,也需要系统花费额外的时间进行维护。 存储分配步骤 首先,根据系统的内存分配算法,在空闲的内存分区中寻找到一块满足进程需要的内存空间,将其分配给进程。 然后,更新进程的资源分配清单、内存分配情况清单等数据结构。 内存的回收 更新相应的数据结构,将回收的内存空间标识为“空闲可用”就行了。 ? 该内存空间是否可以被回收 ? 被其他进程共享 ? 属于相应的进程 ? 与相临的空闲空间进行合并 地址映射 逻辑地址,或相对地址:一般从0开始编址 物理地址,或绝对地址:标识内存中的每个存储单元。 ?逻辑地址 高级语言或汇编语言使用符号地址:变量名或标号 源程序经过编译、链接以后,其中的符号地址就会变成数字式的逻辑地址。 编译/链接程序会自动计算每一个变量或标号所对应的逻辑地址是多少。 静态映射:静态重定位 地址映射:程序装入内存以后,由操作系统将逻辑地址改为逻辑地址加上起始地址,得到实际的物理地址。 重定位(Relocation):对目标程序中的指令和数据地址进行修改的过程。 静态映射实现简单。地址变换只在程序装入时一次完成,程序运行时不再改变。 但不适合多道程序系统;不允许系统执行内存的碎片整理;无法实现虚拟存储 动态映射:动态重定位 操作系统将程序装入内存以后,并不立即把目标程序中的逻辑地址转换为物理地址,而是在处理机执行每一条指令时进行地址转换。 复杂且费时。 为了系统效率,处理机中设置了专门的高速硬件,自动完成地址转换,这样的硬件被称作地址管理部件,如图3.2所示。 存储保护 防止地址越界,防止操作越权。 地址越界:进程访问不属于自己的地址空间,或者说进程在运行时所产生的物理地址超越其自身的地址空间范围。 — 可能侵犯其他用户进程空间,也可能侵犯操作系统的存储空间 操作越权:进程对共享存储区的操作违反了系统规定的权限。 存储保护的实现 存储保护只能进程执行过程中动态地进行,不可能在运行前一次性静态完成。 若采用动态映射动态计算物理地址,可能计算出错误地址;若采用静态映射,进程执行过程中也可能出错,从而导致地址越界或操作越权。 为了提高系统效率,存储保护的主要工作必须由高速的专用硬件来完成:在地址管理部件中。 存储共享 为了进程通信和节约内存空间,两个或多个进程共用内存中相同的分区,即他们的物理空间有相交的部分。 可以共享进程的代码,也可以共享进程数据。 一般地,进程之间共享代码的目的主要是为了节约存储空间,共享数据的目的主要是为了实现进程间相互通信。 通过存储共享完成通信的过程: 一个进程将数据写入共享存储区, 另一个进程从共享存储区中读出数据。 共享代码 程序可重入:设计程序时,逻辑上将程序代码区和数据区分开。 代码区不包含运行程序时需要改变的数据,被处理的数据都放在独立的数据区。这样,进程执行过程中就不会改变代码部分的任何内容。 数据区是单独的一个段、堆栈式动态申请的分区,或通过参数传递。 共享代码 创建新进程时,不需要为该进程的代码部分另外申请内存空间,只需将该进程PCB中的进程代码空间的地址指向已有的代码空间地址。 进程的数据区,要么等到操作系统为其分配相应存储空间以后,将数据区地址填写在PCB中;要么由进程运行时向操作系统动态申请。 共享代码 可以将进程的代码视为处理数据的一组规则或公式,这一组规则或公式存储在内存中的某个分区。 进程的执行:利用这一组规则或公式来完成数据的运算。 多个进程共享代码:多个进程需要使用同一组规则或公式处理不同的数据。 PCB:告诉进程其所需的规则或公式以及需要处理的数据存储在哪里,进程的进度等 共享代码 对于高级程序的设计而言,只要相应的编译程序支持可重入的程序设计,那么,设计程序时就不需要考虑程序的可重入问题,不需要将程序代码和数据严格分开。 编译程序在编译时,会自动将欲处理的数据与程序代码分开存储,以保证代码部分是纯的、可重入的。 存储扩充 内存:速度快、容量小、价格贵 外存:容量大、速度慢、价格便宜 目的:在多道程序系统中能运行更多、更大的程序,降低系统的造价,提高系
您可能关注的文档
- 操作系统硬件基础教案分析.ppt
- 操作性条件作用理论教案分析.ppt
- 操作员命令教案分析.ppt
- 曹操短歌行教案分析.ppt
- 草房子阅读推荐课教案分析.ppt
- 草根书记扬善洲教案分析.ppt
- 草原上的永恒之火教案分析.ppt
- 测绘法律法规教案分析.ppt
- 测绘工程专业学位教育综合改革试点项目中期汇报教案分析.ppt
- 测绘新技术及仪器展示教案分析.ppt
- 基于人工智能教育平台的移动应用开发,探讨跨平台兼容性影响因素及优化策略教学研究课题报告.docx
- 高中生物实验:城市热岛效应对城市生态系统服务功能的影响机制教学研究课题报告.docx
- 信息技术行业信息安全法律法规研究及政策建议教学研究课题报告.docx
- 人工智能视角下区域教育评价改革:利益相关者互动与政策支持研究教学研究课题报告.docx
- 6 《垃圾填埋场渗滤液处理与土地资源化利用研究》教学研究课题报告.docx
- 小学音乐与美术教师跨学科协作模式构建:人工智能技术助力教学创新教学研究课题报告.docx
- 《航空航天3D打印技术对航空器装配工艺的创新与效率提升》教学研究课题报告.docx
- 教育扶贫精准化策略研究:人工智能技术在区域教育中的应用与创新教学研究课题报告.docx
- 《区块链技术在电子政务电子档案管理中的数据完整性保障与优化》教学研究课题报告.docx
- 《中医护理情志疗法对癌症患者心理状态和生活质量提升的长期追踪研究》教学研究课题报告.docx
文档评论(0)