《计算机操作系统教程(机类本科)第4章》由会员分享,可在线阅读,更多相关《计算机操作系统教程(机类本科)第4章(81页珍藏版)》请在金锄头文库上搜索。
1、第四章 存储管理第四章 存储管理4.1 存储管理的基本概念存储管理的基本概念4.2 早期的存储管理早期的存储管理4.3 分页存储管理分页存储管理4.4 请求分页存储管理请求分页存储管理4.5 分段存储管理分段存储管理4.6 段页式存储管理段页式存储管理4.7 WindowsNT虚拟内存管理虚拟内存管理第四章 存储管理4.1 存储管理的基本概念存储管理的基本概念4.1.1 存储管理研究的课题存储管理研究的课题(1) 存储分配问题。 重点是研究存储共享和各种分配算法。(2) 地址再定位问题。 研究各种地址变换机构, 以及静态和动态再定位方法。 (3) 存储保护问题。 研究保护各类程序、 数据区的方
2、法。(4) 存储扩充问题。 主要研究虚拟存储器问题及其各种调度算法。第四章 存储管理4.1.2 地址再定位地址再定位1. 地址空间和存储空间地址空间和存储空间图 4.1 名空间、 地址空间和存储空间第四章 存储管理2. 地址的再定位地址的再定位80 KB50 KB030 KOSOS作业A地址空间作业A地址空间030 KB0110 KB 主存主存80 KB图 4.1 名空间、地址空间和存储空间第四章 存储管理图 4.3 动态地址再定位L 1,5001 2 3 4 5作业地址空间0100500 600L 1,5001 2 3 4 501000 1100150016001000500处理机一侧 存储
3、器一侧+BR有效地址再定位寄存器600LR界限寄存器主存第四章 存储管理4.1.3 虚拟存储器概念的引入虚拟存储器概念的引入虚拟存储器的基本思想是把作业地址空间和实际主存的存储空间, 视为两个不同的概念。一个计算机系统为程序员提供了一个足够大的地址空间,而完全不必考虑实际主存的大小。 由此,可以引出虚拟存储器更一般的概念, 即把系统提供的这个地址空间,想象成有一个存储器(虚存)与之对应,正像存储空间有一个主存与之对应一样。这就是说,虚拟存储器实际上是一个地址空间。第四章 存储管理根据地址空间结构不同, 虚拟存储器有两种形式。 一种是单段式虚存, 它是一个连续的线性地址空间,其地址顺序为:0,1
4、,2,n-1。其中n=2k, k为CPU给出的有效地址的长度。另一种是多段式虚存,它是把地址空间分成若干段,而每一段Si是一个连续的线性地址空间。每个地址可用Si, W来表示,Si为段名或段号,W为段内的相对地址。第四章 存储管理4.2 早期的存储管理早期的存储管理4.2.1 单一连续分配单一连续分配作业操作系统未用32 KB64 KB160 KB分配给用户作 业的空间图图 4.4 单一连续分配单一连续分配第四章 存储管理4.2.2 分区分配分区分配(a)分区号1 2 3 4 5容量8 KB 32 KB 32 KB 120 KB 520 KB位置312 KB 320 KB 352 KB 384
5、 KB 504 KB状态在使用 在使用在使用未用 未用(b)操作系统504 KB384 KB352 KB320 KB312 KB0520 KB120 KB32 KB32 KB8 KB312 KB图 4.5 固定式分区第四章 存储管理表 4 1 固定式分区举例539 KB 173 KB 712 KB 合 计7KB 23KB 23KB 87KB 399KB1KB 9KB 9KB 33KB 121KB8KB 32KB 32KB 120KB 520KB1 2 3 4 5剩余容量作业容量分区容量分区号剩余容量作业容量分区容量分区号第四章 存储管理2. 可变式分区法可变式分区法作业6 256 KB作业5
6、128 KB作业4 24 KB作业3 (120 KB)作业2 (32 KB)作业1 (8 KB)OS1024 KB504 KB384 KB352 KB320 KB312 KB0作业6 (256 KB)作业5 (128 KB)作业4 (24 KB)888 KB632 KB376 KB作业3 (120 KB)作业2 (32 KB)作业1 (8 KB)OS1024 KB504 KB384 KB352 KB320 KB312 KB0作业1 (8 KB)OS0作业6 (256 KB)作业5 (128 KB)作业4 (24 KB)1624 KB504 KB352 KB320 KB312 KB888 KB6
7、32 KB376 KB图 4.6 可变式分区的例第四章 存储管理表 4 - 2(a) 已分配的分区状态表已分配 已分配 空 项 已分配 空 项321KB 320KB - 384KB -8KB 32KB - 120KB -1 2 3 4 5状 态分区位置分区容量分区号第四章 存储管理申请分配一个 xKB大小的分区置空白区号f =1f 大于最后 一个空白区号?空白区可用?保存空白区的起始地址空白区 f 的大小xKB空白区的 状态=空项修改空白区的大小 和起始地址在已分配表中找一个状 态=空项的分区号 P置分区P的大小为 xKB 置分区起始地址置分区状态为已分配返回一个 分区号此次无法分配f +1
8、fYYNN=图4.7可变式分区中请求一个分区的流程第四章 存储管理请求释放 一个分区 P保存分区P的 大小和起始地址置分区的 状态为空项分区P有邻 接的空白区?修改新空白区的大小 起始地址和状态返回修改空白 区的状态修改新空白区的 大小和起始地址在未分配表 中找一空表目置新空白区大小 和起始地址置空白区状 态为可用在两个空 白区之间有一个 空白区N图4.8可变式分区中释放一个分区的流程第四章 存储管理3. 可再定位式分区分配 可再定位式分区分配 图 4.9 可再定位式分区分配的靠拢过程作业7 (256 KB)(a)(b)(c)作业6 (256 KB)作业5 (128 KB)作业4 (24 KB
9、)作业1 (8 KB)OS作业7 (256 KB)作业6 (256 KB)作业5 (128 KB)作业4 (24 KB)作业1(8 KB)OS01024 KB504 KB352 KB320 KB312 KB888 KB652 KB376 KB作业6 (256 KB)作业5 (128 KB)作业4 (24 KB)作业1 (8 KB)OS第四章 存储管理图 4.10 利用浮动寄存器进行地址变换L 1,352 K + 980001557100352 KB352 KB + 50352 KB + 9800376 KB352 KB + 9800-32 KB+L 1,352 KB + 98000155710
10、0320KB320 KB + 50320 KB + 9800344 KB计算地址地址变换有效地址浮动寄存器第四章 存储管理图图 4.11 可再定位式分区分配算法流程可再定位式分区分配算法流程请求分配 一个大小为 xKB的分区有大于 xKB的空白区 吗?空白区的总 和xKB?执行靠拢操作 并修改状态表分配一个分区并修 改状态表返回一个 分区号此时无 法分配YYNN第四章 存储管理4. 多重分区分配 多重分区分配 如果我们不想采用靠拢的办法,又想使存储器分区的碎片问题适当地得到解决,那么可以采用多重分区分配方案。通常一个作业由一些相对独立的程序段和数据段组成,如主程序、子程序、数据组等。这些程序段
11、中的每一个在逻辑上必须是连 续的, 但是相应的各分区却不要求是连续的,只要有足够的保护措施就可以了。例如一个要求 100 KB存储空间的作业,实际上由五个 20 KB的段组成时,则可以分配给该作业一个100 KB的分区或者五个20 KB的分区,或者两个 40 KB的分区和一个 20 KB的分区等等。这种给一个作业分配一个以上分区的方法,称为多重分区分配。采用这种方法时,作业可以在其 执行期间申请附加的分区。 第四章 存储管理5. 分区的保护措施分区的保护措施作业2 的分区60 KB124 KB256 KB0 60 KB基址寄存器64 KB限长寄存器作业2 的分区60 KB124 KB256 K
12、B0 60 KB下界寄存器124 KB上界寄存器图 4.12 分区的界地址寄存器保护第四章 存储管理6. 分区分配方案的评价分区分配方案的评价 分区分配方案的主要优点可归纳如下: (1) 实现了主存的共享,因而有助于多道程序设计,更有 效地利用了处理机和I/O设备,从而使系统的吞吐量和作业周转时间得到了相应的改善。至于主存利用率,可变式分区 比固定式分区高些, 可再定位式分区则更高些。 (2) 相对于后面介绍的存储管理方式,本方案为实现分区分配所使用的表格、占用的存储容量相对较少,算法也相 对简单。 (3) 实现存储保护的措施也比较简单。 (4) 多重分区分配方案能实现对子程序、 数据段的共享
13、。第四章 存储管理分区分配的主要缺点有: (1) 主存仍不能充分利用,除了可再定位式分区法外,都存在着严重的碎片问题。另外,即使不把存储器分碎,整个空白区也可能因容纳不下一个作业而造成浪费。 例如,有 156 KB的存储空间可用,而某个作业序列是由 100 KB和 60 KB的作业组成的。如果分配了一个 100 KB的分区后,则剩下的 56 KB存储空间就要浪费掉。第四章 存储管理(2) 不能实现对主存的扩充。 因此, 作业的大小受到主存可用空间的限制。 (3) 和单一连续分配一样,要求一个作业在执行之前必须全部装入主存,因此在主存中可能包含从未使用过的信息。 (4) 采用靠拢方法,虽然能解决
14、碎片问题,但有时需移动大量信息,从而损失了处理机时间。 (5) 除多重分区外,几个共行作业之间不能共享存入主存的单一信息副本(如公用子程序、数据段等)。第四章 存储管理4.3 分页存储管理分页存储管理4.3.1 分页原理分页原理作业2(0页)操作系统作业2(1页)作业3(0页)作业1(0页)作业1(1页)作业2(2页)051601224708作业1作业2作业31 KB2 KB001 KB2 KB03 KB1 KB0逻辑地址空间页面变换表物理地址空间页号块号1 KB2 KB3 KB4 KB5 KB6 KB7 KB 8 KB9 KB 10 KB图4.13分页存储管理第四章 存储管理L 1,2KB+
15、6001557100021427L 1,2K+600155710005181 KB 2 KB2 KB+60作业2的地址空间页面变换表存储空间2 KB8 KB7 KB+607 KB6 KB5 KB4 KB3 KB图4.14页面变换表保证了作业的正确执行第四章 存储管理4.3.2 地址变换机构地址变换机构1. 动态地址变换机构动态地址变换机构DAT 首先,让我们考察某计算机系统中的一条典型指令: L R1, D2(X2, B2)其中, X2、B2、D2 为第二操作数域使用的变址寄存器、基址寄存器和位移量, R1 是第一操作数域的通用寄存器。指令格式为D2B2X2R1L0 7 8 11 12 15
16、16 19 20 31第四章 存储管理指令的第二操作数的有效地址为 E2=(X2)+(B2)+D2 该指令的有效地址占 24 位。因此,逻辑地址空间最大可达 224=16 MB。现在假定页面大小为 4 KB,于是逻辑地址空间最多可达 4096 个页面,每个页面 4096 个字节。 于是 24 位的有效地址自然地被划分为两部分,前 12 位为页号,后 12 位为页内地址。页内地址页 号0 7 8 19 20 31 第四章 存储管理动态地址变换机构自动地将所有地址划分为页号和页内地址两部分。它利用PMT表将页号代之以块号, 这样就得到了要使用的物理存储地址。 图 4.15 给出了逻辑地址变换到物理存储地址的实例。假定原来作业 2