免费智能真题库 > 历年试卷 > 系统架构设计师 > 2010年下半年 系统架构设计师 上午试卷 综合知识
  第3题      
  知识点:   存储管理   存储系统   矩阵   内存   淘汰算法   中断   作业
  关键词:   存储系统   内存   缺页中断   算法   行序   虚拟存储   主存   最近最少使用   中断        章/节:   操作系统       

 
某虚拟存储系统采用最近最少使用(LRU)页面淘汰算法,假定系统为每个作业分配4个页面的主存空间,其中一个页面用来存放程序。现有某作业的程序如下:

设每个页面可存放200个整数变量,变量i、j存放在程序页中。初始时,程序及i、j均已在内存,其余3页为空。若矩阵A按行序存放,那么当程序执行完后共产生(3)次缺页中断;若矩阵A按列序存放,那么当程序执行完后共产生(4)次缺页中断
 
 
  A.  50
 
  B.  100
 
  C.  5000
 
  D.  10000
 
 
 

 
  第4题    2010年下半年  
   58%
某虚拟存储系统采用最近最少使用(LRU)页面淘汰算法,假定系统为每个作业分配4个页面的主存空间,其中一个页面用来存放程序。现有..
  第4题    2015年下半年  
   30%
假设系统采用段式存储管理方法,进程P的段表如下所示。逻辑地址(3)不能转换为对应的物理地址;不能转换为对应的物理地址的原因..
  第1题    2013年下半年  
   50%
某操作系统采用分页存储管理方式,下图给出了进程A和进程B的页表结构,如果物理页的大小为512字节,那么进程A逻辑地址为1111(十进..
   知识点讲解    
   · 存储管理    · 存储系统    · 矩阵    · 内存    · 淘汰算法    · 中断    · 作业
 
       存储管理
        在虚拟存储器的管理中,涉及载入(调入)、放置(放入分区)和置换(swapping)等问题。
        (1)调入策略:即何时将一页或一段从外存中调入内存,通常有两种策略,一种是请求调入法,即需要使用时才调入;另一种是先行调入法,即将预计要使用的页/段先行调入内存。
        (2)放置策略:也就是调入后,放在内存的什么位置,这与内存管理基本上是一致的。
        (3)置换策略:由于实际内存是小于虚存的,因此可能会发生内存中已满,但需要使用的页不在内存中这一情况(称为缺页中断)。这时就需要进行置换,即将一些内存中的页淘汰到外存,腾出空间给要使用的页,这个过程也称为Swapping。
               置换算法
               常见的置换算法如下:
               (1)最优(Optimized,OPT)算法:选择淘汰不再使用或将来才使用的页,这是理想的算法,但难以实现,常用于淘汰算法的比较。
               (2)随机(Rand)算法:随机地选择淘汰的页,开销小,但可能选中立即就要访问的页。
               (3)先进先出(First In and First Out,FIFO)算法:选择淘汰在内存驻留时间最长的页,似乎合理,但可能淘汰立即要使用的页。另外,使用FIFO算法时,在未给予进程分配足够的页面时,有时会出现给予进程的页面数越多,缺页次数反而增加的异常现象,这称为Belady现象。例如,若某个进程访问页面的顺序(称页面访问序列)是432143543215,当进程拥有3个主存页面时,发生缺页率比拥有4个主存页面时要小。
               (4)最近最少使用(Least Recently Used,LRU)算法:选择淘汰离当前点时刻最近的一段内使用得最少的页。例如,若某个进程拥有3个主存页面,已访问页面的顺序是4314,现在如果要访问第2页,则需要淘汰第3页,因为第1、4页刚刚使用了。这个算法的主要出发点是,如果某页被访问了,则它可能马上就要被访问。OPT算法和LRU算法都不会发生Belady异常现象。
               局部性原理
               存储管理策略的基础是局部性原理,即进程往往会不均匀地高度局部化地访问内存。局部性分为时间局部性和空间局部性。时间局部性是指最近访问存储位置,很可能不久的将来还要访问;空间局部性是指存储访问有成组的倾向:当访问了某个位置后,很可能也要访问其附近的位置。
               根据局部性原理的特征性,Denning阐述了程序性能的工作集理论。工作集是进程频繁访问的页面的集合。工作集理论指出,为使进程有效地运行,它的页面工作集应驻留内存中。否则,由于进程频繁地从外存请求页面,而出现称为“颠簸”(抖动)的过度的页面调度活动。此时,处理页面调度的时间超过了程序的执行时间。显然,此时CPU的有效利用率会急速下降。
               通常用两种等价的方法确定进程的工作集,一种是将工作集确定为在定长的页面访问序列(工作集窗口)中的页面集合,另一种是将工作集确定为在定长时间间隔中涉及页面的集合。工作集的大小依赖于工作集窗口的大小,在进程执行时,工作集会发生变化。有时,当进程进入另一个完全不同的执行阶段时,工作集会出现显著的变化。不过在一个进程的执行过程中,工作集的大小处于稳定状态的时间基本上占绝大多数。
               另一种控制颠簸的技术是控制缺页率。操作系统规定缺页率的上下限,当一个进程的缺页率高于上限时,表明该进程需要更大的内存空间,则分配较多的内存页面给它,当进程的缺页率低于下限时,表明该进程占用的内存空间过大,可以适当地收回若干内存页面。
 
       存储系统
               存储器的层次结构
               计算机的三层存储体系结构如下图所示。
               
               存储器层次结构示意框图
               三层存储结构是高速缓存(Cache)、主存储器(Main Memory,MM)和辅助存储器(外存储器)。若将CPU内部寄存器也看作存储器的一个层次,那么存储器的层次分为4层。若有些计算机没有高速缓存,那么存储器的层次分为两层,即只有主存和辅存。
               存储器的分类
               1)按位置分类
               存储器按位置分类,可分为内存和外存。
               (1)内存(主存):用来存储当前运行所需要的程序和数据,速度快,容量小。
               (2)外存(辅存):用来存储目前不参与运行的数据,容量大但速度慢。
               2)按材料分类
               存储器按材料分类,可分为磁存储器、半导体存储器和光存储器。
               (1)磁存储器:用磁性介质做成的,如磁芯、磁泡、磁盘、磁带等。
               (2)半导体存储器:根据所用元件又可分为双极型和MOS型;根据是否需要刷新又可分为静态和动态两类。
               (3)光存储器:由光学、电学和机械部件等组成,如光盘存储器。
               3)按工作方式分类
               存储器按工作方式分类,可分为读写存储器和只读存储器。
               (1)读写存储器:既能读取数据也能存入数据的存储器。
               (2)只读存储器:根据数据写入方式,又可细分为固定只读存储器、可编程只读存储器、可擦除可编程只读存储器、电擦除可编程只读存储器和闪速存储器。
               4)按访问方式分类
               存储器按访问方式分类,可分为按地址访问的存储器和按内容访问的存储器。
               5)按寻址方式分类
               存储器按寻址方式分类,可分为随机存储器、顺序存储器和直接存取存储器。
               (1)随机存储器(RandomAccessMemory,RAM):这种存储器可对任何存储单元存入或读取数据,访问任何一个存储单元所需时间都是相同的。
               (2)顺序存储器(SequentiallyAddressedMemory,SAM):访问数据所需时fi间与数据所在存储位置有关,磁带是典型的顺序存储器。
               (3)直接存取存储器(DirectAddressedMemory,DAM):采用介于随机存取和顺序存取之间的一种寻址方式。磁盘是一种直接存取控制器,它对磁道的寻址是随机的,而在一个磁道内,则是顺序寻址。
               相联存储器
               相联存储器是一种按内容访问的存储器。其工作原理是把数据或数据的某一部分作为关键字,将该关键字与存储器中的每一单元进行比较,找出存储器中所有与关键字相同的数据字。
               高速缓冲存储器(可简称为高速缓存或缓存)可用在相联存储器中,在虚拟存储器中用来作段表、页表或块表存储器,还可以用在数据库和知识库中。
               高速缓存
               高速缓存(Cache)是位于CPU和主存之间的高速存储子系统。采用高速缓存的主要目的是提高存储器的平均访问速度,使存储器的速度与CPU的速度相匹配。Cache的存在对程序员是透明的。其地址变换和数据块的替换算法均由硬件实现。通常Cache被集成到CPU内,以提高访问速度,其主要特点是容量小、速度快、成本高。
               1)Cache的组成
               Cache的组成如下图所示。Cache由两部分组成,即控制部分和缓存部分。缓存部分用来存放主存的部分复制信息。控制部分的功能是:判断CPU要访问的信息是否在Cache中,若在即为命中,若不在则没有命中。命中时直接对Cache寻址;未命中时,要按照替换原则,决定主存的一块信息放到Cache的哪一块里面。
               
               高速缓存的组成框图
               2)Cache中的地址映像方法
               因为处理机访问都是按主存地址访问的,而应从Cache中读写信息,因此这就需要地址映像,即把主存中的地址映射成Cache中的地址。地址映像的方法有3种,即直接映像、全相联映像和组相联映像。
               (1)直接映像就是主存的块与Cache中块的对应关系是固定的。主存中的块只能存放在Cache的相同块号中。因此,只要主存地址中的主存区号与Cache中的主存区号相同,则表明访问Cache命中。一旦命中,以主存地址中的区内块号立即可得到要访问的Cache中的块。这种方式的优点是地址变换很简单,缺点是灵活性差。
               (2)全相联映像允许主存的任一块可以调入Cache的任何一块的空间中。在地址变换时,利用主存地址高位表示的主存块号与Cache中的主存块号进行比较,若相同则为命中。这种方式的优点是主存的块调入Cache的位置不受限制,十分灵活;其缺点是无法从主存块号中直接获得Cache的块号,变换比较复杂,速度比较慢。
               (3)组相联映像是前面两种方式的折中。具体做法是将Cache中的块再分成组。组相联映像就是规定组采用直接映像方式而块采用全相联映像方式。这种方式下,通过直接映像方式来决定组号,在一组内再用全映像方式来决定Cache中的块号。由主存地址高位决定主存区号,与Cache中区号比较可决定是否命中。主存后面的地址即为组号,但组块号要根据全相联映像方式,由记录可以决定组内块号。
               3)替换算法
               选择替换算法的目标是使Cache获得最高的命中率。常用的替换算法有以下几种。
               (1)随机替换(RAND)算法:用随机数发生器产生一个要替换的块号,将该块替换出去。
               (2)先进先出(FIFO)算法:将最先进入的Cache信息块替换出去。
               (3)近期最少使用(LRU)算法:将近期最少使用的Cache中的信息块替换出去。这种算法比先进先出算法要好些,但此法也不能保证过去不常用的将来也不常用。
               (4)优化替换(OPT)算法:先执行一次程序,统计Cache的替换情况。有了这样的先验信息,在第二次执行该程序时便可以用最有效的方式来替换,达到最优的目的。
               4)Cache的性能分析
               若H为Cache的命中率,tc为Cache的存取时间,tm为主存的访问时间,则Cache的等效访问时间ta
               ta=Htc+(1-H)tm
               使用Cache比不使用Cache的CPU访问存储器的速度提高的倍数r可以用下式求得,即
               
               虚拟存储器
               虚拟存储器是由主存、辅存、存储管理单元及操作系统中存储管理软件组成的存储系统。程序员使用该存储系统时,可以使用的内存空间远远大于主存的物理空间,但实际上并不存在那么大的主存,故称其为虚拟存储器。虚拟存储器的空间大小取决于计算机的访存能力而不是实际外存的大小,实际存储空间可以小于虚拟地址空间。从程序员的角度看,外存被看作逻辑存储空间,访问的地址是一个逻辑地址(虚地址),虚拟存储器使存储系统既具有相当于外存的容量又有接近于主存的访问速度。
               虚拟存储器的访问也涉及虚地址与实地址的映像、替换算法等,这与Cache中的类似。前面讲的地址映像以块为单位,而在虚拟存储器中,地址映像以页为单位。设计虚拟存储系统需考虑的指标是主存空间利用率和主存的命中率。按存储映像算法,可将虚拟存储器的管理方式分为以下3种。
               (1)页式虚拟存储器。以页为信息传送单位的虚拟存储器。为实现页式管理,须建立实页与虚页间的关系表,称为页表;在页表及变换软件的控制下,可将程序的虚拟地址变换为内存的实地址。页式虚拟存储器的优点是:页表硬件少,查表速度快;主存零头少。页式虚拟存储器的缺点是:分页无逻辑意义,不利于存储保护。
               (2)段式虚拟存储器。以程序的逻辑结构形成的段作为主存分配依据的一种管理方法。为实现段式管理,须建立段表;在段地址变换机构及软件的控制下,可将程序的虚拟地址变换为主存的实地址。段式虚拟存储器的优点是:段的界线分明;支持程序的模块化设计;易于对程序段的编译、修改和保护;便于多道程序的共享。段式虚拟存储器的主要缺点是:主存利用率不高,查表速度慢。
               (3)段页式虚拟存储器。这是将段式虚拟存储器和页式虚拟存储器结合的一种管理方式。在这种虚拟存储器中,程序按逻辑结构分段,每一段再分成若干大小固定的页。程序的调入调出是按页进行的,而程序又可按段实现保护。这种管理方式兼有两者的优点,但地址变换速度比较慢。
               外存储器
               外存储器用来存放暂时不用的程序和数据,并且以文件的形式存储。CPU不能直接访问外存中的程序和数据,将其以文件为单位调入主存后方可访问。外存由磁表面存储器(如磁盘、磁带)及光盘存储器构成。
               1)磁盘存储器
               (1)磁盘存储器的构成。磁盘存储器由盘片、驱动器、控制器和接口组成。盘片用来存储信息;驱动器用于驱动磁头沿盘面径向运动以寻找目标磁道位置,驱动盘片以额定速率稳定旋转,并且控制数据的写入和读出;控制器接收主机发来的命令,将它转换成磁盘驱动器的控制命令,并实现主机和驱动器之间数据格式的转换及数据传送,以控制驱动器的读写操作;接口是主机和磁盘存储器之间的连接逻辑。
               (2)磁盘存储器的种类。根据所用材质的不同,磁盘存储器分为软盘和硬盘。
               ①软盘。为了正确存储信息,将盘片划成许多同心圆,称为磁道,从外到里编号,最外一圈为0道,往内道号依次增加。沿径向的单位距离的磁道数称为道密度,单位为tpi。将一个磁道沿圆周等分为若干段,每段称为一个扇段或扇区,每个扇区内可存放一个固定长度的数据块。磁道上单位距离可记录的比特数称为位密度,单位为bpi。因为每条磁道上的扇区数相同,而每个扇区的大小又一样,所以每个磁道都记录同样多的信息。又因为里圈磁道的圆周比外圈磁道的圆周小,所以里圈磁道的位密度要比外圈磁道的位密度高。最内圈的位密度称为最大位密度。
               磁盘容量有两种指标:一种是非格式化容量,它是指一个磁盘所能存储的总位数;另一种是格式化容量,它是指各扇区中数据区容量的总和。计算公式分别为:
               非格式化容量=面数×(磁道数/面)×内圆周长×最大位密度
               格式化容量=面数×(磁道数/面)×(扇区数/道)×(字节数/扇区)
               ②硬盘。按盘片是否固定、磁头是否移动等指标,硬盘可分为移动磁头固定盘片的磁盘存储器、固定磁头的磁盘存储器、移动磁头可换盘片的磁盘存储器和温彻斯特磁盘存储器(简称温盘)。一个硬盘驱动器内可装多个盘片,组成盘片组,每个盘片都配有一个独立的磁头。所以记录面上相同序号的磁道构成一个圆柱面,其编号与磁道编号相同。文件存储在硬盘上时尽可能放在同一圆柱面上,或者放在相邻柱面上,这样可以缩短寻道时间。
               2)光盘存储器
               (1)光盘存储器的类型。根据性能和用途,可分为只读型光盘、只写一次型光盘和可擦除型光盘。
               (2)光盘存储器的组成及特点。光盘存储器由光学、电学和机械部件等组成。特点是:记录密度高;存储容量大;采用非接触式读写信息;信息可长期保存;采用多通道记录时数据传输率可超过200Mb/s;制造成本低;对机械结构的精度要求不高;存取时间较长。
               磁盘阵列技术
               磁盘阵列是由多台磁盘存储器组成的、快速大容量且高可靠的外存子系统。现在常见的廉价冗余磁盘阵列(Redundant Array of Inexpensive Disks,RAID),就是一种由多块廉价磁盘构成的冗余阵列。虽然RAID包含多块磁盘,但是在操作系统下是作为一个独立的大型存储设备出现的。RAID技术分为几种不同的等级,分别可以提供不同的速度、安全性和性价比,如下表所示。
               
               廉价冗余磁盘阵列(RAID)
 
       矩阵
        矩阵是很多科学与工程计算问题中研究的数学对象。在数据结构中主要讨论如何在尽可能节省存储空间的情况下,使矩阵的各种运算能高效地进行。
        在一些矩阵中,存在很多值相同的元素或者是零元素。为了节省存储空间,可以对这类矩阵进行压缩存储。压缩存储的含义是为多个值相同的元素只分配一个存储单元,对零元不分配存储单元。
               特殊矩阵
               常见的特殊矩阵有对称矩阵、三角矩阵和对角矩阵等。对于特殊矩阵,由于其非零元的分布都有一定的规律,所以可将其压缩存储在一维数组中,并建立起每个非零元在矩阵中的位置与其在一维数组中的位置之间的对应关系。
               若矩阵An×n中的元素有aij=aji(1≤ijn)的特点,则称之为对称矩阵。
               若为对称矩阵中的每一对元素分配一个存储单元,那么就可将n2个元素压缩存储到能存放nn+1)/2个元素的存储空间中。不失一般性,以行为主序存储下三角(包括对角线)中的元素。假设以一维数组Bnn+1)/2]作为n阶对称矩阵A中元素的存储空间,则Bk](0≤k<nn+1)/2)与矩阵元素aijaji)之间存在着一一对应的关系。
               
               对角矩阵是指矩阵中的非零元素都集中在以主对角线为中心的带状区域中,即除了主对角线上和直接在对角线上、下方若干条对角线上的元素外,其余的矩阵元素都为零。一个n阶的三对角矩阵如下图所示。
               
               三对角矩阵示意图
               若以行为主序将n阶三对角矩阵An×n的非零元素存储在一维数组Bk](0≤k<3n-2)中,则元素位置之间的对应关系为:
               k=3×(i-1)-1+j-i+1=2i+j-3(1≤ijn
               其他特殊矩阵可作类似的推导和计算,这里不再一一说明。
               稀疏矩阵
               在一个矩阵中,若非零元素的个数远远少于零元素的个数,且非零元素的分布没有规律,则称之为稀疏矩阵。
               对于稀疏矩阵,存储非零元素时必须同时存储其位置(即行号和列号),所以三元组(ijaij)可唯一确定矩阵中的一个元素。由此,一个稀疏矩阵可由表示非零元素的三元组及其行、列数唯一确定。
               一个6行7列的稀疏矩阵如下图所示,其三元组表为(1,2,12),(1,3,9),(3,1,-3),(3,6,14),(4,3,24),(5,2,18),(6,1,15),(6,4,-7))。
               
               稀疏矩阵示意图
               稀疏矩阵的三元组表构成一个线性表,其顺序存储结构称为三元组顺序表,其链式存储结构称为十字链表。
 
       内存
        除了CPU,内存也是影响系统性能的最常见的瓶颈之一。看系统内存是否够用的一个重要参考就是分页文件的数目,分页文件是硬盘上的真实文件,当操作系统缺少物理内存时,它就会把内存中的数据挪到分页文件中去,如果单位时间内此类文件使用频繁(每秒个数大于5),那就应该考虑增加内存。具体考察内存的性能的参数包括内存利用率、物理内存和虚拟内存的大小。
 
       淘汰算法
        当Cache产生了一次访问未命中之后,相应的数据应同时读入CPU和Cache。但是当Cache已存满数据后,新数据必须淘汰Cache中的某些旧数据。最常用的淘汰算法有随机淘汰法、先进先出法(First In and First Out, FIFO)和近期最少使用淘汰法(Least Recently Used, LRU)。其中平均命中率最高的是LRU算法。
 
       中断
        中断是异步发生的,是来自处理器外部的I/O设备的信号的结果。硬件中断不是由任何一条专门的指令造成的,从这个意义上来说它是异步的。硬件中断的异常处理程序常常被称为中断处理程序(interrupt handler)。
               硬中断与软中断
               硬中断是由硬件产生的,例如磁盘、网卡、键盘、时钟等。每个设备或设备集都有它自己的IRQ(中断请求)。基于IRQ,CPU可以将相应的请求分发到对应的硬件驱动上。
               软中断是一组静态定义的下半部分接口,可以在所有的处理器上同时执行,即使两个类型相同也可以。但是一个软中断不会抢占另外的一个软中断,唯一可以抢占软中断的是硬中断。
               可屏蔽中断与不可屏蔽中断
               可屏蔽中断和不可屏蔽中断都属于外部中断,是由外部中断源引起的。不可屏蔽中断源一旦提出请求,CPU必须无条件响应,而对可屏蔽中断源的请求,CPU可以响应,也可以不响应。
               CPU一般设置两根中断请求输入线:可屏蔽中断请求INTR(Interrupt Require)和不可屏蔽中断请求NMI(Non Maskable Interrupt)。对于可屏蔽中断,除了受本身的屏蔽位控制外,还都要受一个总的控制,即CPU标志寄存器中的中断允许标志位IF(Interrupt Flag)的控制,IF位为1,可以得到CPU的响应,否则,得不到响应。IF位可以由用户控制,指令STI或Turbo C的Enable()函数,将IF位置1(开中断),指令CLI或Turbo_c的Disable()函数,将IF位清0(关中断)。
               中断优先级
               当多个中断源同时请求中断时,而CPU一次只能响应其中的一个中断,同时为了能响应所有中断,就引入中断优先级来处理。系统会根据引起中断事件的重要性和紧迫程度,将中断源分为若干个级别,称作中断优先级。中断优先级有两种:查询优先级和执行优先级。
               查询优先级是不可以更改和设置的,在该方式下当多个中断源同时产生中断信号时,中断仲裁器会选择中断源优先处理的顺序,此过程与是否发生中断服务程序的嵌套毫不相干。当CPU查询各个中断标志位的时候,会依照优先级顺序依次查询,当数个中断同时请求的时候,会优先查询到高查询优先级的中断标志位,但并不代表高查询优先级的中断可以打断已经并且正在执行的低查询优先级的中断服务。
               由于可屏蔽的中断源很多,故需要对其进行管理,如区分是哪个中断源发出的中断信号?哪个中断源最优先及怎样处理多级中断嵌套等。为此,可使用中断控制器对多个可屏蔽中断源进行管理。
               中断控制器能够对中断进行排队管理,避免中断信号的丢失,同时支持对不同中断进行优先级的配置,使高优先级中断能够中断低优先级中断,满足系统中具有更高时间约束特性功能的需要。
               中断嵌套
               当处理器正在处理一个中断时,有比该中断优先级高的中断源发出中断请求时,如果处理器正在执行中断处理程序,那么处理器会对高优先级的中断进行立即处理,处理完之后再返回到低优先级的中断服务程序继续执行。这样就形成了中断服务程序中套用中断服务程序的情况,即中断嵌套。可嵌套中断的处理流程和中断服务框图如下图所示。
               
               可嵌套中断处理流程
 
       作业
        作业(Job)是用户提交给操作系统计算的一个独立任务。一般每个作业必须经过若干个相对独立又相互关联的顺序加工步骤才能得到结果,其中,每一个加工步骤称一个作业步(Job Step),例如,一个作业可分成编译、连接装配和运行三个作业步,往往上一个作业步的输出是下一个作业步的输入。作业由用户组织,作业步由用户指定,一个作业从提交给系统,直到运行结束获得结果,要经过提交、收容、执行和完成四个阶段。
   题号导航      2010年下半年 系统架构设计师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第3题    在手机中做本题