计算机操作系统教程PPT

上传人:ji****72 文档编号:48582649 上传时间:2018-07-17 格式:PPT 页数:115 大小:1.55MB
返回 下载 相关 举报
计算机操作系统教程PPT_第1页
第1页 / 共115页
计算机操作系统教程PPT_第2页
第2页 / 共115页
计算机操作系统教程PPT_第3页
第3页 / 共115页
计算机操作系统教程PPT_第4页
第4页 / 共115页
计算机操作系统教程PPT_第5页
第5页 / 共115页
点击查看更多>>
资源描述

《计算机操作系统教程PPT》由会员分享,可在线阅读,更多相关《计算机操作系统教程PPT(115页珍藏版)》请在金锄头文库上搜索。

1、第三章内存管理存储的层次结构 第3章 内存管理 3.1内存介绍 3.1.1 内存管理 1存储的层次结构高速缓存 2. 高速缓存 目前存储的技术是设置CPU的三级缓存: (1)L1 Cache(一级缓存)是CPU第一层高速缓存,分为数据缓存和指令缓存。内置的L1高速缓存的容量和结构对CPU的性能影响较大,不过高速缓冲存储器均由静态RAM组成,结构较复杂,在CPU管芯面积不能太大的情况下,L1级高速缓存的容量不可能做得太大。一般服务器CPU的L1缓存的容量通常在32KB256KB。 高速缓存 (2)L2 Cache(二级缓存)是CPU的第二层高速缓存, 分内部和外部两种芯片。内部的芯片二级缓存运行

2、速度 与CPU主频相同,而外部的二级缓存则只有CPU主频的 一半。L2高速缓存容量也会影响CPU的性能,原则是越 大越好,现在家庭用CPU容量最大的是512KB,而服务 器和工作站上用CPU的L2高速缓存为1MB,有的高达 2MB或者4MB。 (3)L3 Cache(三级缓存),分为两种,早期的是外置 ,现在的都是内置的。而它的实际作用是可以进一步降 低内存延迟,同时提升大数据量计算时CPU的性能。降 低内存延迟和提升大数据量计算能力对游戏有很大帮助 ,在服务器领域增加L3缓存对性能有显著的提升。比如 具有较大L3缓存的配置利用物理内存会更有效,故它比 较慢的磁盘I/O子系统可以处理更多的数据

3、请求。高速缓存与内存速度的对比内存空间的分配和回收 3. 内存管理的主要功能 (1)内存空间的分配和回收 操作系统中的内存管理能根据所记录的存储区状态作为 内存分配的依据。当用户提出申请时,实施存储空间的 分配管理,并能及时回收系统或用户释放的存储区,以 供其它用户使用。为此,这种存储分配机制应能完成如 下工作: 记住存储区域的状态,哪些是已经分配的,哪些是未分 配的。保存存储区域的状态的数据结构称为内存分配记 录表。 实施分配。在系统程序或用户提出申请时,按所需的量 给予分配,并修改相应的内存分配记录表。 接收系统或用户释放的存储区域,并相应地修改内存分 配记录表。地址转换 (2)地址转换

4、程序设计人员在进行程序设计中,访问信息时所用到的一系列地址单元的集合称为逻辑地址,而存储空间是内存中物理地址的集合。在多道程序环境下,程序不是事先约定存放位置,而是在执行过程中可以动态浮动,故程序的逻辑地址和物理地址是不一致的,因此需要内存管理机制提供地址映射转换功能,把程序地址空间中的逻辑地址转换为内存空间中对应的物理地址。内存的共享和存储保护 (3)内存的共享和存储保护 由于内存区域为多个用户程序共同使用,所以存储共享 有两方面的含义: 多个用户程序共同使用内存空间,各个程序使用各自不 同的存储区域; 多个用户程序共同使用内存中的某些程序和数据区,这 些共享程序和数据区称为共享区。 因此内

5、存管理必须研究如何保护各存储区中的信息不被 破坏和偷窃,同时当多个程序共享一个存储区时,也要 对共享区进行保护,确保信息的完整性和一致性。内存空间的扩充 (4)内存空间的扩充 计算机在实际的应用中,常常出现内存容量大小无法满足大程序的要求。同时,内存容量受到实际存储单元的限制。因而,内存管理机制必须提供相应的技术,来达到内存单元逻辑上的扩充。现在采用的一般是覆盖技术、交换技术和虚拟存储技术。程序名空间3.1.2 相关概念 1程序名空间 源程序中的各种符号名的集合所限定的空间称为程序名 空间。如源程序中的数据和子程序通常是用符号名进行 访问的,这些符号名与存储器地址无任何直接关系。 在程序名空间

6、中提到地址时,都是用符号来代替的,比 如Basic中的行号或Goto语句后面的标识符。程序名空 间中的地址概念只限于编辑器中,方便用户对程序的逻 辑设计。如图3-3a所示,主程序和各个子程序都有各自 不同的起始地址标识,变量也有自己的地址标识。三种空间地址空间与存储空间 2地址空间(Address Space) 经编译后,源程序中的各种符号名转换成机器指令和数 据组成的目标程序,且用实际地址码替换符号地址。把 目标代码所限定的地址域叫该程序的地址空间。这些程 序的地址都是从“0”开始的,程序中的其它地址都是相对 于起始地址“0”来计算的。地址空间中的地址叫做相对地 址(或逻辑地址,又叫虚地址)

7、。 3存储空间(Memory Space) 存储空间是指物理存储器中全部物理存储单元的集合所 限定的空间,也称为内存空间。每个存储单元都有它自 己的编号地址。该地址被称为绝对地址,或物理地址, 或实地址。存储空间的大小由系统的硬件配置决定的, 即计算机中内存容量的大小。直接存储分配方式 4. 存储分配的几种形式 解决存储分配问题有三种方式: (1)直接存储分配方式 编程人员在程序设计过程中,或汇编程序对源程序进行 编译时,所用的是实际物理地址,以确保各程序所用的 地址之间互不重叠。 很显然,直接存储分配方式要求内存的可用空间已经确 定,这对于单用户计算机系统来说是不成问题的。在多 道程序设计发

8、展初期,通常将存储空间划分成若干个固 定的不同大小的分区,并对不同的作业指定不同的分区 。对于程序设计人员或编译系统而言,内存的可用空间 是已知的。这样,不仅用户感到不方便,而且内存的利 用率也不高。静态存储分配方式 (2)静态存储分配方式 采用静态存储分配方式时,用户在编写程序或由编译系 统产生的目标程序中采用的地址空间为逻辑地址。当连 接程序对它们进行装入、连接时,才确定它们在内存中 的物理位置,从而产生可执行程序。这种分配方式要求 用户在进行装入、连接时,系统必须分配其要求的全部 内存空间,若内存空间不够,则不能装入该用户程序。 同时,用户程序一旦装入到内存后,它将一直占据着分 配给它的

9、内存空间,直到程序结束时才释放该空间。其 次,在整个运行过程中,用户程序所占据的内存空间是 固定不变的,也不能动态地申请内存空间。 显然,这种分配方式不仅不能实现用户对内存空间的动 态扩展,而且也不能有效地实现内存资源的共享。动态存储分配方式 (3)动态存储分配方式 动态存储分配方式是一种能有效使用内存的方法。用户 程序在内存空间中的位置也是在装入时确定的,但是它 不必一次性将整个程序装入到内存中,可根据执行的需 要,一部分一部分地动态装入。同时,装入内存的程序 不执行时,系统可以收回该程序所占据的内存空间。再 者,用户程序装入内存后的位置,在运行期间可根据系 统需要而发生改变。此外,用户程序

10、在运行期间也可动 态地申请内存空间以满足程序需求。动态存储分配通常 可采用覆盖与交换技术实现。 由此可见,动态存储分配方式在内存空间的分配和释放 上,表现得十分灵活,现代的操作系统常采用这种存储 分配方式。地址重定位(Address Relocation ) 5地址重定位(Address Relocation) 在一般情况下,用户的一个程序在装入时所分配的存储空间和它的地址空间是不一致的,因此,用户程序在 CPU上执行时,其所要访问的指令和数据的物理地址和地址空间中的相对地址是不同的,如图3.3b&c所示。显然,如果用户程序在装入或执行时,不对有关地址进行修改,则将会导致错误的结果,这种由于用

11、户程序的装入而引起的地址空间中的相对地址转化为存储空间中的绝对地址的地址变换过程,称为地址重定位,也称地址映射或地址变换。静态重定位 (1)静态重定位动态重定位 (2)动态重定位内存共享及保护 6内存共享及保护 在多道程序设计的环境下,系统中有系统程序和多个用 户程序同时存在,用户程序间可以共享内存中的信息, 但要保证用户程序不破坏系统程序,用户程序之间不相 互干扰,这就是存储保护所要解决的问题。 存储保护的目的有两个: 保护系统程序区不被用户侵犯(有意或无意的)。如果 一个菜鸟级的程序员,他的程序可以改变操作系统所在 的内存区域内容,那这个系统还有谁敢用? 不允许用户程序读写不属于自己内存空

12、间的数据。正迎 合了宋代陈元靓事林广记警世格言的那句名言:“ 自家扫取门前雪,莫管他人屋上霜。”上下界寄存器保护 (1)界限保护 上下界寄存器保护基址、限长寄存器保护 基址、限长寄存器保护 【例】有一程序装入内存的首地址是500,末地址是 1500,访问内存的逻辑地址是500、345、1200。 基址寄存器:500 限长寄存器:1000 判别式:逻辑地址限长寄存器 500 1000 345 1000 1200 1000 这里只判断地址的合法性,如果要计算物理地址,还需 要加上基址寄存器的值。访问方式保护 (2)访问方式保护 (3)内存共享单道系统的内存管理 3.2 单道系统的内存管理单道系统的

13、内存管理固定分区管理 3.3 多道系统的分区管理 3.3.1 固定分区管理 固定分区是指系统在初始化时,将内存空间划分为若干 个固定大小的区域1. 分区原则 (1)分区大小可以不相等 分区大小相等:适合于多个相同程序的并发执行,如图 3-10a所示; 分区大小不等:多个小分区、适量的中等分区、少量的 大分区。根据程序的大小,分配当前空闲的、适当大小 的分区。如图3-10b所示。 (2)分区个数不变,大小不变固定分区管理 2. 分区的管理固定分区管理分区的分配与回收 3. 分区的分配与回收固定分区分配算法分区原则3.3.2 动态分区管理 1. 分区原则 采用动态分区分配方式,在系统初启时,除了操

14、作系统 中常驻内存部分以外,只存在一个空闲分区。随后,分 配程序将该区依次划分给调度程序选中的进程,并且分 配的大小是根据用户进程对内存的需求而定,如图3-14 所示。 (1)根据作业的大小动态地划分分区,使分区的大小 正好等于作业大小; (2)各分区的大小是不定的; (3)内存中分区的数目也是不定的。 显然,这种分配方式不会产生“内碎片”现象,从而大大 提高了内存的利用率,但随着频繁的调入调出,系统会 产生大量的“外碎片”。动态分区存储分配分区说明表 2. 分区管理 (1)分区说明表带有表格信息的分区格式 (2)空闲区链表空闲区双向链表 位图 (3)位图分区的分配与回收 3. 分区的分配与回

15、收 通常,分区的回收有四种情况: (1)释放区与上下两个空闲区相邻 在这种情况下,将三个空闲区合并为一个空闲区。新空 闲区起始地址为上空闲区的起始地址,大小为三个空闲 区之和。同时,修改可用分区表或空闲区链表或位图中 的表项目。 (2)释放区与上空闲区相邻 在这种情况下,将释放区与上空闲区合并为一个空闲区 ,其起始地址为上空闲区的起始地址,大小为释放区和 上空闲区之和。同时,修改可用分区表或空闲区链表或 位图中的表项目。分区的分配与回收 (3)释放区与下空闲区相邻 在这种情况下,将释放区与下空闲区合并为一个空闲区,其起始地址为释放区的起始地址,大小为释放区和下空闲区之和。同时,修改可用分区表或空闲区链表或位图中的表项目。 (4)释放区与上下两个空闲区都不相邻查找算法 3.3.3 查找算法 不论是空闲区链表管理还是空闲区表格管理,链和表 中的空闲区都可按一定规则排列,例如,按空闲区从 大到小排或从小到大排,以方便空闲区的查找和回收 。常用的动态分区管理的空闲区查找算法有五种: 1最佳匹配(best fit) 2首次匹配(first fit) 3下次匹配(next fit) 4最坏匹配(worst fit) 5. 快速匹配(quick fit)地址转换与存储保护 3.3.4 可重定位分区分配 1. 地址转换与存储保护移动技

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号