- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 基本存储管理 最理想状态:主存速度快、容量大、价钱便宜 为追求更高性价比,通用计算机中,存储层次至少有三层(由高到低):cpu寄存器、主存、辅存 又可细分为:寄存器、高速缓存、主存、磁盘缓存、固定磁盘、可移动存储介质。 前四项属于os存储管理范畴、断电丢失;后两项属于os设备管理范畴,信息可长久保存。 本章主要介绍内存管理。 目的:了解各种存储器管理的方式和他们的实现方法。 重点难点: 1、重定位的基本概念 2、动态分区分配方式 3、分页和分段存储管理方式 4、虚拟存储管理技术 5、请求分页系统的基本原理 本章知识点解析:内存管理中各种存储管理的算法,难点在于要记住解决某一个问题的算法有那几个,每一个算法的运行过程是怎么样的。这一章典型的综合应用题出现在:内存的连续分配算法,比如给出内存的申请和释放序列,要求解空闲块列表;非连续分配管理方式下虚拟地址和物理地址的转换;各种页面置换算法产生的缺页数的统计,经典的解法是表格法。至于选择题的点,这一章有比较多,除了上述综合题点都可以简化后出现在选择题中外,还需要注意内存管理的基本概念,如装入、链接、逻辑地址、物理地址、交换、覆盖等等,各种主存分配方式的工作过程以及优缺点对比,虚存的基本概念,抖动、工作集、程序局部性原理以及请求分段请求分页的基本原理。 存储管理任务 1、存储分配 基本任务:管理内存空间的分配与回收 (1)分配基本内存空间 (2)增加新的内存空间 (3)回收内存空间(是否能回收,例:判断申请者是否拥有者,判断是否共享) 用于内存管理的数据结构,如位示图,空闲页表框等 记载哪些内存被分配给了哪个进程,哪些内存空间是空闲的等信息。 若系统采用虚拟存储技术,还需要登记进程的程序和数据中,哪些部分在内存,哪些部分在外存。 这些数据结构自身需占用一定的内存空间,也需要花费系统的额外时间进行维护。 从时间和空间开销来考虑采用哪种数据结构。 存储分配步骤: 首先,根据系统的内存分配算法,在空闲的内存分区中寻找一块满足进程需要的内存空间,将其分配给进程。 然后更新进程的资源分配清单,内存分配情况清单等数据结构(占用的增加,空闲的减少) 内存的回收 更新相应的数据结构,将回收的内存空间标识为“空闲可用”。 该内存空间是否可以被回收? 是否被其他进程共享 是否属于相应进程 是否与相邻的空闲空间进行合并(跟所采取的存储管理技术有关) 2、地址映射(地址转换) 程序在外存具有的空间叫逻辑空间,内存的空间叫物理空间 逻辑地址(相对地址):一般从0开始 物理地址(绝对地址):标识内存中的每个存储单元。 逻辑地址转换为物理地址叫地址映射或地址转换。 关于逻辑地址:高级语言或汇编语言使用符号地址,变量名或标号。 源程序经过编译、链接以后,其中的符号地址就会变成数字式的逻辑地址。 编译/链接程序会自动计算每一个变量或标号所对应的逻辑地址是多少。 3、存储保护 防止地址越界,防止操作越权。 地址越界:进程访问不属于自己的地址空间,或者说进程在运行时,所产生的物理地址超越其自身的地址空间范围,也可能侵犯os的存储空间 操作越权:进程对共享存储区的操作违反了系统规定的权限 存储保护的实现 存储保护只能在进程执行过程中动态地进行,不能在运行前一次性静态完成。 若采用动态映射动态计算物理地址,可能计算出错误地址,若采用静态映射,进程执行过程中也可能出错,从而导致地址越界或操作越权。 为了提高效率,存储保护的主要工作必须由高速的专用硬件(在地址管理部件中)来完成。 4、存储共享 为了进程通信和节约内存空间,两个或多个进程公用内存中相同的分区,即他们的物理空间有相交的部分。可以共享进程的代码,也可以共享进程数据。 一般的,进程之间共享代码目的主要是为了节约存储空间,共享数据的目的主要是为了实现进程间相互通信。 共享数据: 通过存储共享完成通信的过程。 一个进程将数据写入共享存储区,另一个进程从共享分区中读出数据。 共享代码: (例:打开几个word程序,word程序区域对应着相同一段共享代码) 共享代码须实现: (1)程序可重入:设计程序时,逻辑上将程序代码区和数据分开。(可以被多个进程重复执行的,只读代码) (2)代码区不包含运行程序时需要改变的数据区,被处理的数据都放在独立的数据区,这样,进程执行进程中就不会改变代码部分的任何内容。 (3)数据是单独的一个段,堆栈式动态申请的分区,或通过参数传递 创建新进程时,不需要为该进程的代码部分另外申请内存空间,只需将该进程PCB中的进程代码空间的地址指向已有的代码空间的地址。 进程的数据区,要么等到os为其分配相应存储空间后,将数据区地址填写在PCB中,要么由进程运行时向os动态申请。 对于高级程序设计而言,只要相应的编译程序支持可重入的程序
您可能关注的文档
最近下载
- 子宫内膜异位症和子宫腺肌病课件.ppt VIP
- Unit 2 Home Sweet Home Section A(2a-2e)课件 2025人教版英语八年级上册.pptx
- (2025秋新版)人教版八年级英语上册《Unit 1 Happy Holiday》PPT课件.pptx
- 中级婴幼儿发展引导员职业技能鉴定考试题及答案.doc VIP
- 幼儿园大班开学第一课教案(通用).pptx VIP
- 《初中生文明礼仪主题班会课件》.ppt VIP
- 《音乐教学法》课件.ppt VIP
- 高考英语句子成分及句子基本结构(共32张PPT).pptx VIP
- 河道段治理工程施工方案(3篇).docx
- 广西定向就业协议书.docx VIP
文档评论(0)