第九章操作系统支持《计算机组成原理课件》.ppt

上传人:本田雅阁 文档编号:2072653 上传时间:2019-02-10 格式:PPT 页数:40 大小:1.10MB
返回 下载 相关 举报
第九章操作系统支持《计算机组成原理课件》.ppt_第1页
第1页 / 共40页
第九章操作系统支持《计算机组成原理课件》.ppt_第2页
第2页 / 共40页
第九章操作系统支持《计算机组成原理课件》.ppt_第3页
第3页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第九章操作系统支持《计算机组成原理课件》.ppt》由会员分享,可在线阅读,更多相关《第九章操作系统支持《计算机组成原理课件》.ppt(40页珍藏版)》请在三一文库上搜索。

1、第九章 操作系统支持,9.1 操作系统概述 9.2 调度 9.3 存储管理,9.4 虚拟存储器 9.4.1 虚拟存储器的基本概念,虚拟存储器是一个容量非常大的存储器的逻辑模型,不是任何实际的物理存储器。 虚拟存储器指的是主存外存层次。它以透明的方式给用户提供了一个比实际主存空间大得多的程序地址空间。,1、实地址与虚地址: 为何需要提出虚拟存储器? 用户编制程序时使用的地址称为虚地址或逻辑地址,其对应的存储空间称为虚存空间或逻辑地址空间; 计算机物理内存的访问地址则称为实地址或物理地址,其对应的存储空间称为物理存储空间或主存空间。 程序进行虚地址到实地址转换的过程称为程序的再定位。,逻辑地址(虚

2、地址): 由编译程序生成的,是程序的逻辑地址,其地址空间的大小只受到辅助存储器容量的限制。 虚存空间 程序的逻辑地址空间。 物理地址(实地址): 由CPU地址引脚送出,用于访问主存的地址。 物理存储空间 CPU地址总线的宽度为m位,那么物理存储空间的大小用2m来表示。,2、虚存的访问原理 虚存空间的用户程序按照虚地址编程并存放在辅存中。程序运行时,由地址变换机构依据当时分配给该程序的实地址空间把程序的一部分调入实存。 每次访存时,首先判断该虚地址所对应的部分是否在实存中:如果是,则进行地址转换并用实地址访问主存;否则,按照某种算法将辅存中的部分程序调度进内存,再按同样的方法访问主存(说明:实存

3、、内存、主存同一个硬件的称谓)。 由此可见,每个程序的虚地址空间可以远大于实地址空间,也可以远小于实地址空间。前一种情况以提高存储容量为目的,后一种情况则以地址变换为目的。后者通常出现在多用户或多任务系统中:实存空间较大,而单个任务并不需要很大的地址空间,较小的虚存空间则可以缩短指令中地址字段的长度。,有了虚存机制后,应用程序就可以透明的使用整个虚存空间。 在主存命中率很高,虚存的访问时间接近于主存访问时间,而虚存大小依赖于辅存大小 注意:虚存是一个概念模型而非物理实体 虚存对系统程序员不透明,对应用程序员透明,3、cache与虚存的异同 从虚存的概念可以看出,主存辅存的访问机制与cache主

4、存的访问机制是类似的。这是由cache存储器、主存和辅存构成的三级存储体系中的两个层次。 cache和主存之间以及主存和辅存之间分别有辅助硬件和辅助软硬件负责地址变换与管理,以便各级存储器能够组成有机的三级存储体系。cache和主存构成了系统的内存,而主存和辅存依靠辅助软硬件的支持构成了虚拟存储器。,主存辅存和cache主存的相同点,出发点相同: 二者都是为了提高存储系统的性能价格比而构造的分层存储体系,都力图使存储系统的性能接近高速存储器,而价格和容量接近低速存储器。 原理相同: 都是利用了程序运行时的局部性原理把最近常用的信息块从相对慢速而大容量的存储器调入相对高速而小容量的存储器。,主存

5、辅存和cache主存的不同点,侧重点不同: cache主要解决主存与CPU的速度差异问题;而就性能价格比的提高而言,虚存主要是解决存储容量问题,另外还包括存储管理、主存分配和存储保护等方面。 数据通路不同: CPU与cache和主存之间均有直接访问通路,cache不命中时可直接访问主存;而虚存所依赖的辅存与CPU之间不存在直接的数据通路,当主存不命中时只能通过调页解决,CPU最终还是要访问主存。 ,主存辅存和cache主存的不同点,透明性不同: cache的管理完全由硬件完成,对系统程序员和应用程序员均透明;而虚存管理由操作系统和硬件共同完成,由于软件的介入,虚存对实现存储管理的系统程序员不透

6、明,而只对应用程序员透明。 未命中时的损失不同 由于主存的存取时间是cache的存取时间的510倍,而主存的存取速度通常比辅存的存取速度快上千倍,故主存未命中时系统的性能损失要远大于cache未命中时的损失。,4、虚存机制要解决的关键问题 (1)调度问题:决定哪些程序和数据应被调入主存。 (2)地址映射问题:在访问主存时把虚地址变为主存物理地址(这一过程称为内地址变换);在访问辅存时把虚地址变成辅存的物理地址(这一过程称为外地址变换),以便换页。此外还要解决主存分配、存储保护与程序再定位等问题。 (3)替换问题:决定哪些程序和数据应被调出主存。 (4)更新问题:确保主存与辅存的一致性。 在操作

7、系统的控制下,硬件和系统软件为用户解决了上述问题,从而使应用程序的编程大大简化。,9.4.2 页式虚拟存储器,1、页式虚存地址映射 页式虚拟存储系统中,虚地址空间被分成等长大小的页,称为逻辑页;主存空间也被分成同样大小的页,称为物理页。相应地,虚地址分为两个字段:高字段为逻辑页号,低字段为页内地址(偏移量);实存地址也分两个字段:高字段为物理页号,低字段为页内地址。通过页表可以把虚地址(逻辑地址)转换成物理地址。,假设逻辑页号为0,1,2,m,物理页号为0,1,n,显然有mn,由于页的大小都取2的整数幂个字,所以,页的起点都落在低位字段为零的地址上。 虚存地址分为两个字段:高位字段为逻辑页号,

8、低位字段为页内行地址。 实存地址也分两个字段:高位字段为物理页号,低位字段为页内行地址。由于两者的页面大小一样,所以页内行地址是相等的。 页式虚拟存储器的地址映射过程见下图。,图9.5 页式虚拟存储器的地址映射过程 演示动画,在大多数系统中,每个进程对应一个页表。页表中对应每一个虚存页面有一个表项,表项的内容包含该虚存页面所在的主存页面的地址(物理页号),以及指示该逻辑页是否已调入主存的有效位。地址变换时,用逻辑页号作为页表内的偏移地址索引页表(将虚页号看作页表数组下标)并找到相应物理页号,用物理页号作为实存地址的高字段,再与虚地址的页内偏移量拼接,就构成完整的物理地址。现代的中央处理机通常有

9、专门的硬件支持地址变换。 每个进程所需的页数并不固定,所以页表的长度是可变的,因此通常的实现方法是把页表的基地址保存在寄存器中,而页表本身则放在主存中。由于虚存地址空间可以很大,因而每个进程的页表有可能非常长。例如,如果一个进程的虚地址空间为2G字节,每页的大小为512字节,则总的虚页数为231/29=222。,为了节省页表本身占用的主存空间,一些系统把页表存储在虚存中,因而页表本身也要进行分页。当一个进程运行时,其页表中一部分在主存中,另一部分则在辅存中保存。 另一些系统采用二级页表结构。每个进程有一个页目录表,其中的每个表项指向一个页表。因此,若页目录表的长度(表项数)是m,每个页表的最大

10、长度(表项数)为n,则一个进程最多可以有mn个页。 在页表长度较大的系统中,还可以采用反向页表实现物理页号到逻辑页号的反向映射。页表中对应每一个物理页号有一个表项,表项的内容包含该物理页所对应的逻辑页号。访存时,通过逻辑页号在反向页表中逐一查找。如果找到匹配的页,则用表项中的物理页号取代逻辑页号;如果没有匹配表项,则说明该页不在主存中。这种方式的优点是页表所占空间大大缩小,但代价是需要对反向页表进行检索,查表的时间很长。有些系统通过散列(哈希)表加以改进。,2、转换后援缓冲器 由于页表通常在主存中,因而即使逻辑页已经在主存中,也至少要访问两次物理存储器才能实现一次访存,这将使虚拟存储器的存取时

11、间加倍。为了避免对主存访问次数的增多,可以对页表本身实行二级缓存,把页表中的最活跃的部分存放在高速存储器中,组成快表。这个专用于页表缓存的高速存储部件通常称为转换后援缓冲器(TLB)。保存在主存中的完整页表则称为慢表。,图9.6 TLB的地址映射过程,演示动画,例题:如下图表示用快表(页表)的虚实地址转换条件,快表放在相联存贮器中,其容量为8个存贮单元,问: (1)当CPU按虚拟地址1去访问主存时主存的实地址码是多少? (2)当CPU按虚拟地址2去访问主存时主存的实地址码是多少? (3)当CPU按虚拟地址3去访问主存时主存的实地址码是多少?,3、内页表和外页表 页表是虚地址到主存物理地址的变换

12、表,通常称为内页表。与内页表对应的还有外页表,用于虚地址与辅存地址之间的变换。当主存缺页时,调页操作首先要定位辅存,而外页表的结构与辅存的寻址机制密切相关。例如对磁盘而言,辅存地址包括磁盘机号、磁头号、磁道号和扇区号等。,9.4.3 段式虚拟存储器和段页式虚拟存储器,1、段式虚拟存储器 在段式虚拟存储系统中,段是按照程序的逻辑结构划分的,各个段的长度因程序而异,虚拟地址由段号和段内地址组成。,为了把虚拟地址变换成实主存地址,需要一个段表,装入位为“1”表示该段已调入主存,为“0”则表示该段不在主存中;段的长度可大可小,所以,段表中需要有长度指示。 在访问某段时,如果段内地址值超过段的长度,则发

13、生地址越界中断。段表也是一个段,可以存在外存中,需要时再调入主存。但一般是驻留在主存中。,图9.7 段式虚存的地址映射过程 动画演示,段式虚拟存储器的优缺点,优点: 段的逻辑独立性使其易于编译、管理、修改和保护,也便于多道程序共享。 段长可以根据需要动态改变,允许自由调度,以便有效利用主存空间。 缺点: 因为段的长度不固定,主存空间分配比较麻烦。 容易在段间留下许多外碎片,造成存储空间利用率降低。 由于段长不一定是2的整数次幂,因而不能简单地像分页方式那样用虚地址和实地址的最低若干二进制位作为段内偏移量,并与段号进行直接拼接,必须用加法操作通过段起址与段内偏移量的求和运算求得物理地址。因此,段

14、式存储管理比页式存储管理方式需要更多的硬件支持。,2、段页式虚拟存储器 段页式虚拟存储器是段式虚似存储器和页式虚拟存储器的结合。 在这种方式中,把程序按逻辑单位分段以后,再把每段分成固定大小的页。程序对主存的调入调出是按页面进行的,但它又可以按段实现共享和保护。 因此,它可以兼取页式和段式系统的优点。它的缺点是在地址映象过程中需要多次查表。 目前,大中型机一般都采用这种段页式存储管理方式。,多道程序:如果有多个用户在机器上独立运行就称为多道程序。 多道程序的每一道(每个用户)需要一个基号(用户标志号),可由它指明该道程序的段表起始地址(存放在基址寄存器中)。 这样,虚拟地址应包括基号、段号、页

15、号、页内地址。格式如下:,例1:今假设有三道程序(用户标志号为A,B,C),其基址寄存器内容分别为SA,SB,SC,逻辑地址到物理地址的转移过程见下图。在主存中,每道程序都有一张段表,A程序有4段,C程序有3段。每段应有一张页表,段表的每行就表示相应页表的起始位置,而页表内的每行即为相应的物理页号。 解:地址转换过程如下: (1)根据基号C,执行SC(基址寄存器内容)加1(段号)操作,得到段表相应行地址,其内容为页表的起始地址b。 (2)执行b(页表起始地址)+2(页号),得到物理页号的地址,其内容即为物理页号10。 (3)物理页号与页内地址拼接即得物理地址。,图9.8 段页式虚存的地址变换过

16、程,9.4.4 替换算法,虚拟存储器中的页面替换策略和cache中的行替换策略有很多相似之处,但有三点显著不同: (1)缺页至少要涉及一次磁盘存取,读取所缺的页,缺页使系统蒙受的损失要比cache未命中大得多。 (2)页面替换是由操作系统软件实现的。 (3)页面替换的选择余地很大,属于一个进程的页面都可替换。,例2 假设主存只有a,b,c三个页框,组成a进c出的FIFO队列,进程访问页面的序列是0,1,2,4,2,3,0,2,1,3,2号。若采用FIFO算法,FIFO算法+LRU算法,用列表法分别求两种替换策略情况下的命中率。 【解】求解表格如下所示,例:在页式虚拟存储器中,若主存容量为16M

17、B,页面容量为4KB,程序地址空间为1G,问虚页号有多少位?页表长度为多少?页内地址有多少位? 解:由于页面容量为4KB=212B,程序地址空间=1GB=230B,故虚页号位数=30-12=18,页表长度=218行,页内地址为12位。,例:设主存容量4MB,虚存容量1GB,页面大小为4KB。 1、写出主存地址格式。 2、写出虚拟地址格式。 3、页表长度为多少? 解: 主存地址格式为: 虚拟地址格式为: 页表长度为218=256K。,9.5 存储保护,存储区域保护 访问方式保护,9.5.1 存储区域保护 当多个用户共享主存时,应防止由于一个用户程序出错而破坏其他用户的程序和系统软件,以及一个用户

18、程序不合法地访问不是分配给它的主存区域。 在虚拟存储系统中,通常采用页表保护、段表保护和键式保护方法。,1. 页表保护和段表保护 每个程序的段表和页表本身都有自己的保护功能。 每个程序的虚拟地址空间是独立的。那么只要地址映射不出问题,不论虚地址如何出错,也只能影响到相对的几个主存页面。不会侵犯其他程序空间。 段表和页表的保护功能相同,但段表中除包括段表起点外,还包括段长,偏移量超过段长操作系统进行“地址越界”中断处理。,图9.9 段页式虚拟存储系统中段表保护方式的实现过程,2. 键保护方式 这种方法是为主存的每一页配一个键,称为存储键,相当于一把“锁”。为了打开这个锁,必须有钥匙,称为访问键。

19、 访问键赋予每道程序,并保存在该道程序的状态寄存器中。当数据要写入主存的某一页时,访问键要与存储键相比较。若两键相符,则允许访问该页,否则拒绝访问。 另外还有取数保护键,为每个页面设置一个取数键寄存器。,3. 环保护方式 环保护方式可以做到对正在执行的程序本身的核心部分或关键部分进行保护。它是按系统程序和用户程序的重要性及对整个系统的正常运行的影响程度进行分层,每一层叫做一个环。 在现行程序运行前由操作系统定好程序各页的环号,并置入页表中。然后把该道程序的开始环号送入CPU的现行环号寄存器。程序可以访问任何外层空间;访问内层空间则需由操作系统的环控例行程序判断这个向内访问是否合法。,9.5.2 访问方式保护 对主存信息的使用可以有三种方式:读(R)、写(W)和执行(E),相应的访问方式保护就有R,W,E三种方式形成的逻辑组合.这些访问方式保护通常作为程序状态寄存器的保护位,并且和区域保护结合起来实现。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1