版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章课后习题存储管理的功能是什么?参考答案:存储管理(通常指内存管理)是操作系统的核心职能,其主要功能包括内存分配与回收、地址转换、内存保护与共享以及内存扩充。具体而言,它负责根据进程的需求动态分配主存空间,并在进程结束后回收以供复用,以维持系统资源的有序利用;通过地址转换机制(重定位),将程序生成的逻辑地址映射为实际的物理地址,使程序能灵活加载到内存任意位置;利用保护机制防止进程越界访问或非法操作,同时支持进程间共享代码和数据以提高效率;最后,通过虚拟存储技术利用外存空间逻辑上扩展内存容量,让用户程序拥有比实际物理内存更大的地址空间,从而支持多道程序的高效并发运行。实现地址重定位的方法有哪几种?参考答案:实现地址重定位的方法主要依据地址转换发生的时机,分为静态重定位和动态重定位两种。静态重定位是在程序装入内存时一次性完成的。由装入程序(Loader)负责将程序中的所有逻辑地址修改为对应的物理地址。动态重定位则将地址转换推迟到程序执行期间,在CPU每次访问内存时才进行。什么是虚拟存储器?参考答案:虚拟存储器是一种由软硬件结合实现的内存管理技术,它利用外存空间来逻辑上扩充物理内存,为每个进程提供一个独立、连续且容量远超实际物理内存的虚拟地址空间。其核心工作原理基于程序的局部性。试述实现分区存储管理两种方法的原理。分区存储管理能实现虚拟存储器吗?为什么?参考答案:分区存储管理主要有两种实现方法:固定分区和可变分区。固定分区在系统启动时,就将内存的用户区预先划分为若干个大小固定的连续区域。每个分区可以大小相同或不同,但一旦划分,其数量和大小在运行期间不再改变。当有作业需要装入时,系统会选择一个足够大的空闲分区分配给它。这种方法实现简单,但容易造成分区内部的内存浪费,即“内碎片”。可变分区的划分是动态的。当作业需要装入内存时,系统会根据作业的实际大小,从空闲内存中开辟一个恰好能容纳它的分区。这种方式消除了内碎片,提高了内存利用率,但随着作业的频繁装入和撤出,会产生许多不连续的小块空闲内存,即“外碎片”。分区存储管理不能实现虚拟存储器。其根本原因在于,无论是固定分区还是可变分区,都要求将一个作业的全部代码和数据一次性完整地装入一个连续的内存空间后才能开始运行。而虚拟存储器的核心思想是“部分装入,按需调页”,即只将程序当前运行所需的部分装入内存,其余部分留在外存,在程序执行过程中根据需要动态地进行内外存交换。分区管理这种“全有或全无”的连续分配方式,不具备支持程序部分装入和动态交换的能力,因此无法实现虚拟存储。有作业序列:作业A要求21K;作业B要求30K,作业C要求25K。系统中空闲区如下图所示,先给出三种算法组成的空闲区链表,再分析哪种算法合适。参考答案:对于[A:21K,B:30K,C:25K]访问顺序,最先适配算法和最佳适配无法给C分配内存,但最差适配可以完美给三个进程分配内存。对于[A:18K,B:25K,C:30K]访问顺序,最先适配和最差适配算法无法给C分配内存,但最佳适配可以完美给三个进程分配内存。什么是覆盖与交换技术?二者有何区别?参考答案:覆盖与交换技术都是早期操作系统为了在有限的物理内存中运行更大程序或更多进程而采用的内存扩展技术。覆盖技术主要解决在单个进程内运行比物理内存更大的程序的问题。它的核心思想是,程序员需要手动将一个大程序划分为多个功能上相对独立的模块,并规定好它们之间的执行顺序和覆盖关系。程序运行时,只有当前需要的模块被加载到内存中一个被称为“覆盖区”的共享空间,当需要执行另一个模块时,就将新模块从磁盘加载进来,覆盖掉旧的模块。交换技术则是在多个进程之间进行内存调度。当系统内存不足时,操作系统会将一个暂时无法运行的整个进程从内存完整地移动到磁盘的交换区,这个过程叫“换出”;当需要运行另一个进程时,再将其从磁盘完整地加载回内存,这个过程叫“换入”。二者的主要区别体现在以下几个方面:作用对象不同:覆盖技术作用于单个进程内部,是在程序的不同模块之间进行替换;交换技术作用于不同的进程之间,是对整个进程进行调度。管理方式不同:覆盖技术需要程序员手动划分程序模块并设计覆盖结构,对用户不透明;交换技术则由操作系统自动完成,对用户和程序员都是透明的。数据交互不同:覆盖技术涉及将程序模块从磁盘加载到内存的覆盖区;交换技术则是将整个进程的内存映像与磁盘交换区进行完整的数据交换。简单来说,覆盖是让一个大程序“分批次”运行,而交换是让多个程序“轮流”使用内存。什么是页式存储管理?静态页式管理能实现虚拟存储器吗?为什么?参考答案:页式存储管理是一种将进程的虚拟地址空间划分为固定大小的“页”,并将物理内存划分为同样大小的“页框”的内存管理技术。它通过页表建立虚拟页与物理页框之间的映射关系,使得进程可以被离散地分配到内存中,从而有效解决了内存碎片问题。静态页式管理并不能实现虚拟存储器。其根本原因在于,静态页式管理要求一个进程的所有页面在执行前必须被一次性全部装入内存。这意味着进程的大小仍然受到物理内存可用页框总数的限制,无法运行比物理内存更大的程序。已知某分页系统,主存容量为64K,页面大小为1K,对于一个4页大小的作业,其0、1、2、3页分别被分配到主存的2、4、6、7页面中。将十进制的逻辑地址1023、3500、4500转换为物理地址,以1023为例解释并画出地址变换过程。参考答案:根据题目给出的分页系统参数,我们首先明确系统的基本配置:主存容量为64KB,页面大小为1KB,这意味着页内偏移量占地址的低10位。给定的页表映射关系为:逻辑页号0对应物理块号2,逻辑页号1对应物理块号4,逻辑页号2对应物理块号6,逻辑页号3对应物理块号7。三个逻辑地址与物理地址的对应关系为:1023对应3071,3500对应7596,4500时,该作业只有4页(页号0,1,2,3)。逻辑地址4500对应的页号为4500÷1024=4。结果页号4超出了该作业的地址空间范围(越界),因此该逻辑地址是非法的,无法转换为有效的物理地址,系统会产生越界中断。以1023为例:系统首先将逻辑地址1023分解。由于页面大小为1024字节,通过计算1023/1024得到页号P=0,通过1023%1024得到页内偏移W=1023。系统查找该作业的页表。页表寄存器中存放着页表的起始地址。在页表中找到索引为0的表项,读取其中存放的物理块号f=2。将物理块号2与页内偏移1023拼接(或计算2×1024+1023),最终得到物理地址3071。内存的分配和替换策略有哪些?参考答案:在动态页面管理中,内存的分配与替换策略是确保虚拟存储器高效运行的关键。在内存分配方面,系统首先需要确定为每个进程分配多少个物理块,这主要涉及固定分配局部置换、可变分配全局置换以及可变分配局部置换这三种策略。在页面替换方面,常见的策略包括理论上的最佳置换算法、简单但性能较差且可能出现Belady异常的先进先出算法、基于局部性原理性能较好但开销较大的最近最久未使用算法,以及目前广泛使用的、通过循环扫描和访问位来判断的时钟置换算法,这些算法旨在以最小的系统开销实现最低的缺页率。设某计算机的逻辑地址空间和物理地址空间均为64KB,按字节编址。若某进程最多需要6页,页的大小为1KB,操作系统采用固定分配局部置换策略为此进程分配4个块。当前时刻,要访问逻辑地址为17CAH(十六进制)的数据,请回答下列问题:该逻辑地址对应的页号是多少?参考答案:由题地址空间为64KB,页的大小为1K,按字节编址,可知逻辑地址和物理地址均为16位,高6位作为页号,其余10位为页内偏移地址。又有17CAH=0001011111001010B,因此,该逻辑地址的页号为000101H=5,其不在内存,页内地址为970。(2)若分别采用先进先出、最近最久未使用、改进型Clock算法进行页面置换,置换后该逻辑地址对应的物理地址分别是多少(用十进制、十六进制表示均可)。参考答案:采用先进先出,应置换出3号页,对应帧号为9=1001B,则物理地址为1001B和1111001010B拼接,得10011111001010B=27CAH(9*1024+970=10186);采用最近最久未使用,应置换出0号页,对应帧号为7=0111B,则物理地址为0111B和1111001010B拼接,得01111111001010B=1FCAH(7*1024+970=8138);采用改进型Clock算法,应置换出2号页,对应帧号为2=0010B,则物理地址为0010B和1111001010B的拼接,得00101111001010B=0BCAH(2*1024+970=3018)。对于一个将页表放在内存中的分页系统,如果访问内存需要0.2ms,那么CPU访问一条指令或数据的有效时间是多少?如果增加一个快表,且假定在快表中找到页表项的几率为90%,则有效访问时间为多少?(假定访问快表的时间忽略不计)参考答案:在没有快表时,每次访问都需要先查页表再取数据,共需2次内存访问,因此有效访问时间是2×0.2ms=0.4ms;引入快表且命中率为90%(忽略快表查找时间)后,90%的情况只需1次内存访问,10%的情况需要2次内存访问,计算加权平均值为0.9×0.2ms+0.1×0.4ms=0.22ms。什么是Belady现象?请举例说明,并解释产生的原因。参考答案:Belady现象是指在采用先进先出页面置换算法时,出现的一种违反直觉的异常现象:即当分配给进程的物理块数量增加时,缺页率反而上升的情况。例如,对于页面引用串1,2,3,4,1,2,5,1,2,3,4,5,当分配3个物理块时缺页次数为9次,而当分配4个物理块时缺页次数反而增加到了10次。产生这种现象的根本原因是FIFO算法的置换策略与进程的局部性原理相悖,FIFO算法仅依据页面进入内存的时间早晚进行淘汰,完全不考虑页面的使用频率或近期是否被访问过,导致在物理块增加后,原本会被保留的常用页面可能因为入队较早而被过早置换出去,从而引发了更多的缺页中断。什么是段式管理?它与页式管理有何区别?参考答案:段式管理是一种依据程序逻辑结构将内存划分为若干个长度可变“段”的技术,通过段表记录每段的基址和长度来实现地址映射与保护。它与页式管理的核心区别在于:段式管理按逻辑模块划分,段长不固定,因此支持以逻辑段为单位的精细共享与保护,但会产生外部碎片且地址结构为二维;而页式管理按固定大小的物理块划分,对用户透明,虽无外部碎片但存在内部碎片,且共享保护粒度较粗,地址结构为一维。为什么提出段页式管理?它的缺点是什么?有什么改进方法?参考答案:段页式管理是为了结合段式管理和页式管理两者的优点而提出的,旨在解决分段产生的外部碎片问题以及分页导致的逻辑割裂问题。它的主要缺点是硬件成本和管理开销大,因为地址转换过程需要经过“查段表→查页表→访问内存”三次访存操作,导致指令执行速度变慢。针对这一缺点的改进方法是引入快表,利用高速缓存存储常用的段页映射信息,在地址转换时优先查找快表,若命中则可直接获取物理块号,从而大幅减少访问内存的次数并提高系统效率。一个程序的段表见表6.3,写出下列指令在执行时产生的结果。STORER1,[0,70]参考答案:从段表中可知,0号段的存在位为0,表示相应的段没有装入内存,因此产生缺段中断;STORER1,[1,20]
参考答案:从段表中可知,1号段的存在位为1,且地址合法。但指令对内存的访问方式为写与存取控制字段的只读不符,故产生越权中断;LOADR1,[3,20]
参考答案:从段表中可知,3号段的存在位为1,且地址合法,内存起始地址为8000,段长80,存取控制为读,访问方式也合法。形成物理地址8000+20=8020后,指令把该单元的内容载入到寄存器R1中;LOADR1,[3,100](5)JMP[2,100]参考答案:从段表中可知,2号段的存在位为1,且地址合法,访问权限合法。形成物理地址3000+100=3100,跳转到内存单元3100继续执行。什么是局部性原理?什么是抖动现象?如何减少系统的抖动现象?参考答案:局部性原理是指程序在执行过程中,其访问的指令和数据在地址上呈现出聚集性的规律,主要表现为时间局部性(近期被访问的单元在不久的将来很可能再次被访问)和空间局部性(访问某单元后,其邻近单元很可能随后被访问)。抖动现象是指在虚拟存储系统中,由于分配给进程的物理内存块过少(小于其工作集),导致进程运行中频繁产生缺页中断,系统不得不花费大量时间在内存与外存之间进行页面的调入调出,致使CPU利用率急剧下降甚至系统瘫痪的现象。为了减少系统的抖动现象,可以采取以下措施:采用更高效的页面置换算法、适当增加分配给进程的物理内存块数量、限制系统中并发进程的数量,或者采用工作集模型和缺页率监控法来动态调整进程的内存分配。
第七章课后习题1.叙述在中断控制方式中输入请求I/O处理的详细过程。参考答案:在使用中断控制方式的系统中,执行输入请求的处理过程如下。1)应用进程请求读操作。2)设备启动程序(设备驱动程序的高层部分)査询设备控制器的状态寄存器,确定设备是否空闲。若设备忙,则设备启动程序等待,直到其变为空闲为止。3)设备启动程序把输入命令存入设备控制器的命令寄存器中,从而启动设备。4)设备启动程序将相应信息写入到设备控制表(DCT)的设备对应表项中,如最初调用的返回地址以及I/O操作的一些特定参数等。然后CPU就可以分配给其他进程使用了,因此设备管理器调用进程管理器的调度程序执行,原进程的执行被暂停。5)经过一段时间后,设备完成了I/O操作,设备控制器发出中断请求,中断CPU上运行的进程,从而引起CPU运行中断处理程序。6)中断处理程序确定是哪个设备引起的中断,然后转移到该设备对应的设备处理程序(设备驱动程序的低层部分)执行。7)设备处理程序重新从设备控制表(DCT)找到等待I/O操作的状态信息。8)设备处理程序复制设备控制器的数据寄存器的内容到用户进程的内存区。9)设备处理程序返回给应用进程控制权,从而继续运行。2.I/O控制方式可用哪几种方式实现?各有什么优缺点?参考答案:I/O控制方式的实现有4种方式,即程序I/O方式、中断控制方式、DMA控制方式和通道控制方式。程序I/O方式:其优点是控制简单,不需要很多硬件支持。但CPU和外设之间只能串行工作,并且CPU的大部分时间处于循环测试状态,这使得CPU的利用率大大降低;CPU在一段时间内只能和一台外设交换数据信息,从而不能实现设备之间的并行工作;由于程序I/O方式依靠测试设备状态标志来控制数据传送,因此无法发现和处理因设备或其他硬件所产生的错误。所以,程序I/O方式只适用于执行速度较慢且外设少的系统。中断控制方式:其优点是能实现CPU和设备、设备与设备间的并行操作,CPU的利用率比程序I/O方式有了很大提高。但I/O控制器的数据缓冲寄存器通常较小,且数据缓冲寄存器装满数据后将会发出中断,因此一次数据传送过程会中断较多次,消耗了大量CPU时间;若系统中配置的外设数目较多,且都以中断方式进行控制,则将消耗大量CPU时间或因为CPU来不及处理而造成数据丢失。DMA控制方式:与中断控制方式相比,DMA控制方式的优点是在一批数据传送完成后中断CPU,从而大大减少了CPU进行中断处理的次数,并且DMA控制方式下的数据传送是在DMA控制器控制下完成的,在数据传输过程中无须CPU干预。但DMA方式仍有一定的局限,如对外设的管理和某些操作仍由CPU控制,且多个DMA控制器的使用也不经济。通道控制方式:通道是一个专管输入/输出工作的处理器。在通道控制方式下,CPU只需发出I/O指令,通道就能完成相应的I/O操作,并在I/O操作结束时向CPU发出中断信号。由此可见,CPU仅在I/O操作开始和结束时花极短的时间处理与I/O操作有关的事宜,其余时间都与通道并行工作,此外,一个通道还能控制多台设备。但是通道价格较高,从经济的角度出发不宜过多使用。3.为什么要引入设备独立性?如何实现设备独立性?参考答案:引入设备独立性可使应用程序独立于具体的物理设备。此时,用户用逻辑设备名来申请使用某类物理设备,当系统中有多台该类型的设备时,系统可以将其中的一台分配给请求进程,而不必局限于某一台指定的设备,这样可以显著改善资源的利用率及可适应性。独立性还可以使用户程序独立于设备的类型,如进行输出时,既可用显示终端,也可以用打印机。有了这种适应性,就可以很方便地进行输入/输出重定向。为了实现设备独立性,必须在设备驱动程序之上设置一层设备独立性软件,用来执行所有I/O设备的公用操作,并向用户层软件提供统一接口。关键是系统中必须设置一张逻辑设备表(LUT)用来进行逻辑设备到物理设备的映射,其中每个表目中包含逻辑设备名、物理设备名和设备驱动程序穴口地址;当应用程序用逻辑设备名请求分配I/O设备时,系统必须为它分配相应的物理设备,并在LUT中建立一个表目,以后进程利用该逻辑设备名请求I/O操作时;便可从LUT中得到物理设备名和驱动程序入口地址。4.为什么要设置内存I/O缓冲区?通常有哪几类缓冲区?参考答案:缓和CPU和I/O设备间速度不匹配的矛盾。一般情况下,程序的运行过程是时而进行计算,时而进行I/O。以输出为例,若没有缓冲区,则程序在输出时,必然由于打印机速度跟不上而使CPU等待;然而在计算阶段,打印机又因无输入数据而无事可做。如果设置一个缓冲区,程序可以将待输出的数据先输出到缓冲区中,然后继续执行;而打印机可以从缓冲区取出数据慢慢打印。2)减少中断CPU的次数。例如,假定设备只用一位二进制位接收从系统外传来的数据,则设备每收到一位二进制数就要中断CPU一次,若数据通信速率为9.6kbit/s,则中断CPU的频率也为9.6kHz,若设置一个具有8位的缓冲寄存器,则可使CPU被中断的次数降为前者的1/8。3)提高CPU和I/O设备之间的并行性。由于在CPU和设备之间引入了缓冲区,CPU可以从缓冲区中读取或向缓冲区写入信息;相应地,设备也可以向缓冲区写入或从缓冲区读取信息。在CPU工作的同时,设备也能进行输入/输出操作,这样CPU和I/O设备可以并行工作。通常有4类缓冲区:单缓冲、双缓冲、循环缓冲和缓冲池。5.什么是DMA方式?它与中断方式的主要区别是什么?参考答案:DMA是DirectMemoryAccess的缩写,也就是直接存储器访问。DMA是用DMA控制器来控制一个数据块的传输,而CPU只需在一个数据块传输的开始阶段设置好传输所需的控制信息并在传输的结束阶段做进一步处理即可的传输控制方式。其基本思想是在I/O设备和内存间开启一个可以直接传输数据的通路。中断驱动I/O控制方式是每个数据传输后即发岀中断,而DMA方式是在一批数据传输完毕后才中断;中断驱动I/O控制方式的传输是由CPU控制的,而DMA方式中只有数据块传输的开始和结束阶段在CPU控制下,在传输过程中都是由DMA控制器控制的。所以DMA方式相比于中断方式,通过硬件的增加大大减少了中断的次数。6.下列描述了SPOOLing技术的原理,请根据上下文分别写出I~V对应的术语。I在一段时间内只能由一个用户使用,使许多进程因等待而阻塞,影响了整个系统的效率。另一方面,分配到I的进程,在整个运行期间并非持续使用设备,利用率较低。SPOOLing技术通过共享设备来虚拟I,将I改造成II,从而提高了设备利用率和系统的效率。采用SPOOLing技术,可以预先从低速的输入型I上将程序运行需要的数据传送到III上的IV中,当用户程序运行时,可以直接从IV中将数据读入V。由于III是II,多个用户进程可以共享使用IV。这样,就将输入型I改造成了可共享使用的虚拟设备。改造输出型I的方法与此类似。参考答案:I、独占设备II、共享设备II、磁盘III、输入井IV、内存7.以下分别是对中断、中断处理、中断响应、关中断、开中断、中断屏蔽、陷入、软中断的解释,请在解释文字前的括号中填入正确的概念。(中断屏蔽)中断请求能否参加判优,需根据屏蔽字的状态决定,若某屏蔽为1,其对应的请求无效,不可参加判优。(开中断)当允许中断标志为1时,表明现行程序的优先级低于所有中断请求的优先级,因此一旦出现中断请求,处理机便能响应。(软中断)系统调用引发的事件。(中断处理)对中断请求的整个处理过程是由硬件和软件结合起来而形成的一套中断机构实施的。发生中断时,处理机暂停执行当前的程序而转去处理中断。该过程由硬件对中断请求做出反应。(中断)处理机对系统发生的某个时间做出的一种反应,即处理机暂停正在执行的程序,保留现场后自动地转去执行相应的处理程序,处理完该事件后再返回断点,继续执行被“打断”的程序。(软中断)利用硬件中断的概念,用软件方式进行模拟,实现宏观上的异步执行效果。(中断响应)大致分为4个阶段;保存被中断程序的现场,分析中断原因,转入相应的处理程序进行处理,恢复被中断程序的现场。(关中断)为保证在中断周期中,指令操作的执行不受外部干扰,将允许中断标志位清即表明现行程序的优先级比所有请求的优先级都高,任何请求都不响应。8.在某系统中,从磁盘将一块数据输入到缓冲区需要的时间为T,处理机对一块数据进行处理的时间为C,将缓冲区的数据传送到用户区所需的时间为M,那么在单缓冲和双缓冲情况下,系统处理大量数据时,一块数据的处理时间分别是多少?参考答案:1)在单缓冲的情况下,应先从磁盘把一块数据输入缓冲区,所花费的时间为T;然后由操作系统将缓冲区的数据传送到用户区,所花的时间为M;接下来便由CPU对这一块数据进行计算,计算时间为C。由于CPU的计算操作与磁盘的数据输入操作可以并行,因此一块数据的处理时间为max(C,T)+M。2)在双缓冲的情况下,初始时两个缓冲区都是空的。应先从磁盘把一块数据输入第一个缓冲区,当装满第一个缓冲区后,操作系统可将第一个缓冲区的数据传送到用户区并对第一块数据进行计算,与此同时可将磁盘输入数据送入第二个缓冲区;当计算完成后,若第二个缓冲区已装满数据,则又可以将第二个缓冲区中的数据传送至用户区并对第二块数据进行计算,与此同时可将磁盘输入数据送入第一个缓冲区,如此反复交替使用两个缓冲区。CPU处理一个缓冲区中的数据的耗时为C+M,而准备好另一个缓冲区内的数据的耗时为T。因此,当C+M>T时,CPU刚处理完一个缓冲区的数据,另一个缓冲区的数据就已经准备好了,就可以紧接着处理下一块数据,因此平均来看,每处理一块数据耗时为C+M。而当C+M9.考虑56kbit/s调制解调器的性能,驱动程序输出一个字符后就阻塞,当一个字符打印完毕后,产生一个中断通知阻塞的驱动程序,输出下一个字符,然后再阻塞。如果发消息,输出一个字符和阻塞的时间总和为0.1ms,那么由于处理调制解调器而占用的处理机时间比率是多少?假设每个字符有一个开始位和一个结束位,共占10位。参考答案:因为一个字符占10位,因此在56kbit/s的速率下,每1s传送:56000/10=5600个字符,即产生5600次中断。每次中断需0.1ms,故处理调制解调器占用CPU时间总共为5600*0.1ms=560ms,占560ms/1s=56%CPU时间。10.在某计算机系统中,时钟中断处理程序每次的执行时间为2ms(包括进程切换开销),若时钟中断频率为60Hz,试问处理机用于时钟中断处理的时间比率为多少?参考答案:时钟中断频率为60Hz,故时钟周期为(l/60)s,每个时钟周期中用于中断处理的时间为2ms,故比率为0.002/(1/60)=12%。11.一个串行线能以最大50000B/S的速度接收输入。数据平均输入速率是20000B/s。如果用轮询来处理输入,不管是否有输入数据,轮询例程都需要3μs来执行。若在下一个字节到达时,控制器中仍有未取走的字节,这些未取走的字节将会丢失。那么最大的安全轮询时间间隔是多少?参考答案:串行线接收数据的最大速度为50000B/S,即每20μs接收1B,而轮询例程需3μs来执行,因此,最大的安全轮询时间间隔是17μs。12.在一个32位100MHz的单总线计算机系统中(每10ns一个时钟周期),磁盘控制器使用DMA以40MB/S的速率从存储器中读出数据或者向存储器写入数据。假设处理机在没有被周期挪用的情况下,在每个周期中读取并执行一个32位指令。若这样做,磁盘控制器使指令的执行速度降低了多少?参考答案:首先由题目得知DMA的传输速率是40MB/S,即4B/100ns,即平均每100ns传输32bit的数据就能达到DMA的传输要求。由于系统总线被CPU和DMA共用,因此要在DMA传输数据时暂停CPU对总线的使用。为了得到DMA使用总线的频率,需要知道总线的传输速度。由题中条件可知,CPU在对总线完全占用的情况下,每个时钟周期(10ns)可以传输32bit的指令,因此总线的速度是32bit/10ns。而DMA的要求是100ns传输32bit,也就是说,平均10个时钟周期内,只需挪用一个周期用来传输数据就能达到DMA的传输要求。由此可以得到,DMA挪用周期的频率是每10个周期挪用一个,因此磁盘控制器使指令的执行速度降低了10%。13.一个SPOOLing系统由输入进程I、用户进程P、输出进程0、输入缓冲区和输出缓冲区组成。进程I通过输入缓冲区为进程P输入数据,进程P的处理结果通过输出缓冲区交给进程0输出。进程间的数据交换以等长度的数据块为单位。这些数据块均存储在同一磁盘上。因此,SPOOLing系统的数据块通信原语保证始终满i+o≤max其中,max为磁盘容量(以该数据块为单位);i为磁盘上输入数据块总数;o为磁盘上输出数据块总数。该SPOOLing系统运行时,只要有输入数据,进程I终究会将它放入输入缓冲区;只要输入缓冲区有数据块,进程P终究会读入、处理,并产生结果数据,写到输出缓冲区;只要输出缓冲区有数据块,进程0终究会输出它。请说明该SPOOLing系统在什么情况下死锁。请说明如何修正约束条件“i+o≤max”来避免死锁,同时仍允许输入数据块和输出数据块均存储在同一个磁盘上。参考答案:这是一个综合性很强的题目,题目中出现了缓冲区、SPOOLing技术、进程共享资源(共享同一个缓冲区)死锁等概念。而究其本质,其实本题考的是死锁现象的判断,就是要考生找出该系统的一种死锁的可能。考生可以先画出该系统的大致结构草图,如下图所示下面找到一种导致该SPOOLing系统死锁的情况:当磁盘上输入数据块总数i=max时,那么磁盘上输出数据块总数o必然为零。此时,进程I发现输入缓冲区已经满了,所以不能再把输入数据放入到缓冲区中;进程P此时有一个处理好了的数据,打算把结果数据放入缓冲区,但是也发现没有空闲的空间可以存放结果数据,因为o=0,所以没有输出数据可以输出,于是进程O也无事可做。这时进程I、P、O各自都等待着一个事件的发生,如果没有外力的作用,它们将一直等待下去,这种僵局显然是死锁。将条件“i+o≤max”只需要修改为“i+o≤max,且i≤max-1”,这样就不会再发生死锁。也就是说,产生的数据不能达到缓冲区总和的上限,至少保证能够有一个非输入数据有缓冲空间可以存放,以便进程P和进程O正常运行。在其他类似题目中,通常都会在临界条件处发生死锁,因此可以通过验证临界值来考查条件是否能完全满足要求。
第八章习题:某磁盘文件系统使用链接分配方式组织文件,簇大小为4KB。目录文件的每个目录项包括文件名和文件的第一个簇号,其他簇号存放在文件分配表FAT中。1)假定目录树如图8.17左,各文件占用的簇号及顺序如图8.17右,其中dir、dir1是目录,file1、file2是用户文件。请给出所有目录文件的内容。图8.17目录树及对应文件簇号2)FAT的每个表项仅存放簇号,占2B,则FAT的最大长度为多少字节?该文件系统支持的文件长度最大是多少?3)系统通过目录文件FAT实现对文件的按名存取,说明file1的106、108两个簇号分别存放在FAT的哪个表项中?4)假设仅FAT和dir目录文件已读入内存,若需将文件dir/dirl/file1的第5000B读入内存,则要访问哪几个簇?参考答案:1)两个文件dir和dir1的内容如下图所示。(3分)2)由于FAT的号为2B,即16bit,因此在FAT表中最多允许216(65536)个表项,一个FAT文件最多包含216(65536)个簇。FAT的最大长度为216*2B=128KB(1分)。文件的最大长度是216*4KB=256MB。3)在FAT的每个表项中存放下一个簇号。filel的簇号106存放在FAT的100号表项中(1分),簇号108存在FAT的106号表项中(1分)。4)先在dir目录文件里找到dir1的簇号,然后读取48号簇,得到dir1目录文件,接着找到filel的第一个族号,据此在FAT里查找file1的第5000B所在的簇号,最后访问磁盘中的该簇。因此,需要访问目录文件dir1所在的48号簇(1分),及文件file1的106号簇(1分)。2.如图8.18所示的文件目录结构。图8.18文件目录结构1)可否进行下列操作,为什么?①在目录D中建立一个文件,取名为A。②将目录C改名为A。2)若E和G是两个用户各自的目录,问:①使用目录E的用户要共享文件M,如何实现?②在一段时间内,使用目录G的用户主要使用文件S和T应如何处理?其目的是什么?3)对使用目录E的用户加以保护,不允许别人使用,应如何实现?参考答案:1)①可以在目录D中建立一个文件名为A的文件,因为目录D中不存在已命名为A的文件或目录。②目录C不可以改名为A,因为目录C所在的目录里已经有一个名为A的目录。2)①用户E若要共享文件M,需要用户E有访问文件M的权限。用户E通过自己的主目录E找到其父目录C,再访问到目录C的父目录(即根目录),然后依次通过目录D、目录G、目录K和目录O即可访问到文件M。②用户G需要通过依次访问目录K和目录P才能访问到文件S和文件T。为了提高访问速度,可以在目录G下建立两个链接文件,分别链接到文件S及文件T上。这样,用户G就可以直接访问这两个文件了。3)用户E可以通过修改文件I的存取权限控制表对文件I进行保护,不让别的用户使用。具体地说,就是在文件I的存取控制表中,仅留下用户E的访问权限,而不让其他用户访问。3.有一个文件系统,根目录常驻内存如图4-22所示。文件目录采用链接结构,每个目录下最多存放80个文件或目录(称为下级文件)。每个磁盘块最多可存放10个文件目录项:若下级文件是目录文件,则上级目录项指向该目录文件的第一块地址。假设目录结构中文件或子文件按自左向右的次序排列,“...”表示尚有其他的文件或子目录。1)普通文件采用UNIX三级索引结构即文件控制块中给出13个磁盘地址,前10个磁盘地址指出文件前10个块的物理地址,第11个磁盘地址指向一级索引表,一级索引表给出256个磁盘地址,即指出该文件第11块至第266块的物理地址;第12个盘地址指向256个一级索引表的地址;第13个磁盘地址指向三级索引表,三级索引表指出256个二级索引表的地址,主索引表存放在目录项中。若要读入/A/D/G/I/K的第7456块,至少启动硬盘多少次,最多几次?2)若普通文件采用链接结构,要读取/A/D/G/I/K的第175块,最少启动硬盘多少次,最多几次?3)若将I设置为当前目录,则可以减少几次启动硬盘的次数?图8.19某文件系统根目录参考答案:1)一个文件的所有块可以通过以下方式找到:直接提供FCB找到前10块,通过一级索引找到256块,通过二级索引找到256*256块,通过三级索引找到256*256*256块,所以一个文件最大可以有(10+256+256*256+256*256*256)块=16843018块。如果要找/A/D/G/I/K中的某一块,首先要找到其FCB,最好的情况是:每次读取目录描述信息时都在第一块找到下级目录或文件,所以要找到该文件至少要读取A、D、G和I四个目录项的第一块,读取K的FCB,总共五次启动磁盘;最坏的情况是:每次读取目录描述信息时都在最后一块找到下级目录或文件,所以要找到该文件至少要读取A的第一块,D、G和I三个目录项的所有八个块,因此读取K的FCB,总共需要(1+8*3+1)次=26次启动磁盘。找到FCB后再读取某一块,如果这一块在前10块之列,那么启动一次硬盘就可以找到这一块;如果这一块在最后一块,那么可能需要通过三级索引找到这一块,这总共需要读取三级索引和最后一块共(3+1)次=4次磁盘。综上所述,最好的情况下,只需要启动(5+1)次=6次磁盘。最坏的情况下,需要启动(26+3+1)次=30次磁盘。2)为读取FCB所启动的硬盘次数和1)一样,最少为5次,最多为30次,而读取数据需启动175次,因此读取第175块最少需要启动(5+175)次=180次硬盘,最多需要启动(30+175)次=205次磁盘。3)若将I设置为当前目录,就可以直接读取K的FCB,而无须读取A、D、G、I的目录项,根据1)中的分析,最多可以少启动磁盘29次,最少可以少启动磁盘4次。4.有一个文件系统如图8.20所示,图中的矩形表示目录,圆圈表示普通文件。根目录常驻内存,目录文件组织成索引顺序文件,不设文件控制块,普通文件组织成索引文件。目录表指示下一级文件名及其磁盘地址(各占2B,共4B)。若下级文件是目录文件,指其第一个磁盘块地址。若下级文件是普通文件,指示其文件控制块的磁盘地址。每个目录文件磁盘块最后4B供指针使用。下级文件在上级目录文件中的次在图中为从左至右。每个盘块有512B,与普通文的一页等长。图8.20某文件系统目录结构普通文件的索引结点结构见表4-6,其中每个磁盘地址占2B,前10个地址直接指示该文件前10页的地址。第11个地址指示一级索引表地址,一级索引表中每个磁盘地址指示一个文件页地址;第12个地址指示二级索引表地址,二级索引表中每个地址指示一个一级索引表地址;第13个地址指示三级索引表地址,三级索引表中每个地址指示一个二级索引表地址。试问:1)一个普通文件最多可有多少个文件页?2)若要读取文件J中的某一页,最多启动磁盘多少次?3)若要读取文件W中的某一页,最多启动磁盘多少次?4)就3)而言,为了最大限度减少启动磁盘的次数,可用什么方法?此时,磁盘最多启动多少次?表8.1普通文件的索引结点结构序号该文件的有关描述信息1磁盘地址2磁盘地址3磁盘地址...11磁盘地址12磁盘地址13磁盘地址参考答案:1)因为磁盘块大小为512B,所以索引块大小也为512B,每个磁盘地址大小为2B。因此,一个一级索引表可容纳256个磁盘地址。同样,一个二级索引表可容纳256个一级索引表地址,一个三级索引表可容纳256个二级索引表地址。这样,一个普通文件最多可有的文件页数为:10+256+256*256+256*256*256=16843018页。2)由图4-21可知,目录文件A和D中的目录项都只有两个,因此这两个目录文件都只占用一个物理块。要读文件J中的某一项,首先从内存的根目录中找到目录A的磁盘地址,将其读入内存(已访问磁盘1次)。然后从目录A找出目录文件D的磁盘地址读入内存(己访问磁盘2次)。再从目录D中找出文件J的文件控制块地址读入内存(已访问磁盘3次)。在最坏的情况下,该访问页存放在三级索引下,这时需要一级一级地读三级索引块才能得到文件J的地址(已访问磁盘6次)。最后读入文件J中的相应页(共访问磁盘7次)。所以,若要读文件J中的某一页,最多启动磁盘7次。3)由图4-21可知,目录文件C和U的目录项较多,可能存放在多个连接在一起的磁盘块中。在最好的情况下,所需的目录项都在目录文件的第一个磁盘块中。先从内存的根目录中找到目录文件C的磁盘地址读入内存(己访问磁盘1次)。在C中找出目录文件I的磁盘地址读入内存(已访问磁盘2次)。在I中找出目录文件P的磁盘地址读入内存(已访问磁盘3次)。从P中找到目录文件U的磁盘地址读入内存(已访问磁盘4次)。从U的第一个磁盘块中找到文件W的文件控制块读入内存(已访问磁盘5次)。在最好的情况下,要访问的页在文件控制块的前10个直接块中,按照直接块指示的地址读文件W的相应页(己访问磁盘6次)。所以,若要读文件W中的某一页,最少启动磁盘6次。4)为了减少启动磁盘的次数,可以将需要访问的W文件挂在根目录的最前面的目录项中。此时,只需要读内存中的根目录就可以找到W的文件控制块,将文件控制块读入内存(已访问磁盘1次)。在最差的情况下,需要的W文件的那页挂在文件控制块的三级索引下,那么读3个索引块需要访问磁盘3次(己访问磁盘4次)得到该页的物理地址,再去读这个页(己访问磁盘5次)。此时,磁盘最多启动5次。在UNIX操作系统中,给文件分配外存空间采用的是混合索引分配方式,如图8.21所示,UNIX系统中的某个文件的索引结点指出了为该文件分配的外存的物理块的寻找方法。在该索引结点中,有10个直接块(每个直接块都直接指向一个数据块),有一个一级间接块一个二级间接块以及一个三级间接块,间接块指向的是一个索引块,每个索引块和数据块的大小均为4KB,而UNIX系统中地址所上空间为4B(指针大小为4B)。假设以下问题都建立在该索引结点已经在内存中的前提下。1)文件的大小为多大时可以只用到索引结点的直接块?2)该索引结点能访问到的地址空间大小总共为多大?要求小数点后保留2位。3)若要读取一个文件的第10000B的内容,需要访问磁盘多少次?4)若要读取一个文件的第10MB的内容,需要访问磁盘多少次?参考答案:本题考查的是对索引分配方式的理解,只需明白索引分配方式组织外存分配的原理即可。计算其实并不难,其中要牢牢抓住的一点是:索引块其实也是物理块,也需要存储在外存上。1)对于只用到索引结点的宜接块,这个文件应该能全部在10个直接块指向的数据块中放下,而数据块的大小为4KB,所以该文件大小应该≤4KBX10=40KB,即文件的大小小于或等于40KB时,可以只用到索引结点的直接块。2)只需要算出索引结点指向的所有数据块的块数,再乘以数据块的大小即可。直接块指向的数据块数=10块。一级间接块指向的索引块里的指针数=4KB/4B=1024个,所以一级间接块指向的数据块数为1024块。二级间接块指向的索引块里的指针数=4KB/4B=1024个,指向的索引块里再拥有4KB/4B=1024个指针数。所以二级间接块指向的数据块数=(4KB/4B)2=10242块。三级间接块指向的数据块数=(4KB/4B)3=10243块。所以,该索引结点能访问到的地址空间大小为3)因为10000B/4KB=2.44,所以第10000B的内容存放在第3个直接块中,因此若要读取一个文件的第10000B的内容,需要访问磁盘1次。4)因为10MB的内容需要数据块数=10MB/4KB=2.5K块。直接块和一级间接块指向的数据块数=10+(4KB/4B>1034块<2.5K块。直接块和一级间接块以及二级间接块的数据块数=10+(4KB/4B)+(4KB/4B)2>1M块>2.5K块。所以第10MB的数据应该在二级间接块下属的某个数据块中,若要读取一个文件的第10MB的内容,需要访问磁盘3次。文件F由200条记录组成,记录从1开始编号。用户打开文件后,欲将内存中的一条记录插入到文件F中,作为其第30条记录。请回答下列问题,并说明理由。1)若文件系统釆用连续分配方式,每个磁盘块存放一条记录,文件F存储区域前后均有足够的空闲磁盘空间,则完成上述插入操作最少需要访问多少次磁盘块?F的文件控制块内容会发生哪些改变?2)若文件系统釆用链接分配方式,每个磁盘块存放一条记录和一个链接指针,则完成上述插入操作需要访问多少次磁盘块?若每个存储块大小为1KB,其中4B存放链接指针,则该文件系统支持的文件最大长度是多少?参考答案:1)系统采用顺序分配方式时,插入记录需要移动其他的记录块,整个文件共有200条记录,要插入新记录作为第30条,而存储区前后均有足够的磁盘空间,且要求最少的访问存储块数,则要把文件前29条记录前移,若算访盘次数,移动一条记录读出和存回磁盘各是一次访盘,29条记录共访盘58次,存回第30条记录访盘1次,共访盘59次。F的文件控制区的起始块号和文件长度的内容会因此改变。2)文件系统釆用链接分配方式时,插入记录并不用移动其他记录,只需找到相应的记录,修改指针即可。插入的记录为其第30条记录,因此需要找到文件系统的第29块,一共需要访盘29次,然后把第29块的下块地址部分赋给新块,把新块存回磁盘会访盘1次,然后修改内存中第29块的下块地址字段,再存回磁盘,一共访盘31次。4B共32位,可以寻址232=4G块存储块,每块的大小为1KB,即1024B,其中下块地址部分占4B,数据部分占1020B,因此该系统的文件最大长度是4G*l020B=4080GB。7.假设某分时操作系统釆用树形目录结构。用户usera目录的路径名是/usr/home/usera,用户userb目录的路径名是/home/userb。usera在其目录下创建了目录文件asdf和普通文件my.c,并在asdf目录下创建了普通文件filel和file2;userb在其目录下创建了目录文件asdf和普通文件hustl,并且在目录文件下创建了普通文件filel和file2,其中usera的filel和userb的hustl是同一个文件。1)画出上述文件系统的树形目录结构(要求画出目录项中的必要信息)。2)试分别写出usera的文件filel和userb的文件filel的路径名。3)用户userb的目录文件asdf下的文件file2要换名为userb目录下的文件newfile,文件系统如何处理?参考答案:1)文件目录结构如下图所示。2)用户usera的filel的文件路径名为/usr/name/usera/asdf/filel;用户userb的filel的文件路径名为/name/userb/asdf/filel。3)要将用户userb的目录文件asdf下的文件file2换名为userb目录下的newfile,先从userb的主目录name查起,将此目录项中的各个目录项与asdf相比较,直至找到asdf;再取出asdf中各个目录项与file2相比,直到找到file2;将file2的目录项读入内存指定区域,将file2改写为newfile,再写回userb目录中;最后要删除asdf目录中file2的目录项。8.请分别解释在连续分配方式、隐式链接分配方式、显式链接分配方式和索引分配方式中如何将文件的字节偏移量3500转换为物理块号和块内位移量(设盘块大小为1KB,盘块号需要占4B)。参考答案:文件的字节偏移量到磁盘物理地址的转换,关键在于对文件物理组织(或磁盘分配方式)的理解。连续分配方式是指为文件分配一段连续的文件存储空间;隐式链接分配则是指为文件分配多个离散的盘块,并将下一个盘块的地址登记在文件分配到的前一个盘块中;显式链接分配则通过FAT来登记分配给文件的多个盘块号;而索引分配方式则将多个盘块号登记在文件的索引表中。同时,在FCB的物理地址字段中,还登记有文件首个物理块的块号或指向索引表的指针(对于索引分配方式)。将字节偏移量3500转换成逻辑块号和块内位移:3500/1024商为3,余数为428,即逻辑块号为3,块内位移为428。1)在连续分配方式中,可从相应文件的FCB中得到分配给该文件的起始物理盘块号,例如a0。故字节偏移量3500相应的物理盘块号为a0+3,块内位移为428。2)在隐式链接方式中,由于每个盘块中需要留出4B(通常是最后4B)来存放分配给文件的下一个盘块的块号,因此字节偏移量3500的逻辑块号为3500/1020的商3,而块内位移为余数440。从相应文件的FCB中可获得分配给该文件的首个(第0个)盘块的块号,例如凶。然后可通过读b0块获得分配给文件的第1个盘块的块号,如bl。依次类推,得到第3块,b3o如此便可得到字节偏移量3500对应的物理块号b3,而块内位移则为440。3)在显式链接方式中,可从文件的FCB中得到分配给文件的首个盘块的块号,如c0。然后可在FAT的第c0项中得到分配给文件的第1个盘块的块号,如cl。依次类推,找到第3个盘块的块号,如c3。如此,便可获得字节偏移量3500对应的物理块号c3,而块内位移则为428。4)在索引分配方式中,可从文件的FCB中得到索引表的地址。从索引表的第3项(距离索引表首字节12B的位置)可获得字节偏移量3500对应的物理块号,而块内位移为428。9.在磁盘上有一个文件系统,磁盘每块512字。假定每个文件在目录中占有一个目录项;该目录项给出了文件名、第一个索引块的地址、文件长度(块数)。在索引块中(包含第一个索引块)前面511个字指向文件块,即第i个索引项(i=0,1,...,510)指向文件的i块,索引块中最后一个字指向下一个索引块,最后一个索引块中最后一个字为nil。假定目录在存储器中,每个文件的逻辑块号均从0号开始标号,逻辑块长与物理块长相同,对于这样的索引物理结构,该系统应如何将逻辑块号变换成物理块号?参考答案:根据题意,首先将题设条件转化为磁盘存储结构,如下图所示。假设逻辑地址为L,逻辑块号为n。逻辑块号变换成物理块号的过程为:首先根据逻辑文件的文件名找到目录表中该文件对应的目录项,找出第一个索引块的地址d1,若n<511,取出第一个索引块第n项的值,即为找逻辑块号所对应的物理块号w。如果n≥511,得到第二个索引块的地址d2,令n=n-511,若此时n≥511,则继续令d2-511,得到第三个索引块地址d3。依次类推,直到n<511时取出第i个索引块第n项的值,即为查找逻辑块号所对应的物理块号w。10.现有3名学生S1、S2和S3上机实习,程序和数据都存放在同一磁盘上。若3人编写的程序分别为P1、P2和P3,要求这3个学生用自编的程序调用同一个数据文件A进行计算,问:1)若文件A作为共享文件,系统应釆用何种目录结构?画出示意图。2)若学生S1、S2、S3都将自己的程序名起为P,则1)中的目录结构能否满足要求?3)对于2),系统是如何使每个学生获取其程序和数据的?参考答案:1)系统采用二级目录结构即可满足需要,其示意图如图所示上图可见,用户录的P1、P2、P3均改为P即可,由图4-27可看出,这3个P均指向各自不同的程序。3)在学生存取程序和数据时,文件系统会先搜索主文件目录,找到该学生的用户目录后即可在用户目录中找到指定的文件,如对学生S1,由路径/S1/P找到的文件就是S1的序文件,因为它与学生S2的程序文件/S2/P不是同一个文件,所以不会引起冲突。文件/S1/A和文件/S2/A是同一个文件,因此学生S1能够取到所需要的数据。当然,文件A可由3个学生同时打开执行读操作。11.学生甲有两个文件A、B,学生乙有3个文件A、C、D。其中甲文件的A和的乙的文件A不是同一个文件,甲文件的B与乙文件的C是同一个文件,为了不引起混乱,请拟定个目录组织方案,并画图说明。参考答案:为了改变单级目录文件中文件命名冲突问题和提高对目录表的搜索速度需要采用二级目录结构。在二级目录结构中,各个文件的说明信息被组织成目录文件,且以用户为单位把各自的文件说明划分为不同的组。然后,这些不同的有关组名的存取控制信息存放在主目录(MFB)的目录项中。与MFD相对应,用户文件的文说明所组成的目录文件被称为用户文件目录(UFD)。这样,MFD和UFD就构成了二级目录。二级目录结构如下图所示12.某文件系统空间的最大容量为4TB(1TB=240B),以磁盘块为基本分配单位,磁盘块大小为IKB。文件控制块(FCB)包含一个512B的索引表区。请回答以下问题:1)假设索引表区仅采用直接索引结构,索引表区存放文件占用的磁盘块号。索引表项中块号最少占多少字节?可支持的单个文件最大长度是多少字节?2)假设索引表区釆用如下结构:第0~7B釆用〈起始块号,块数〉格式表示文件创建时预分配的连续存储空间,其中起始块号占6B,块数占2B;剩余504B采用直接索引结构,一个索引项占6B,则可支持的单个文件最大长度是多少字节?为了使单个文件的长度达到最大,请指出起始块号和块数分别所占字节数的合理值并说明理由。参考答案:1)文件系统中所能容纳的磁盘块总数为4TB/1KB=232。要完全表示所有磁盘块,索引项中的块号最少要占32/8=4B。而索引表区仅釆用直接索引结构,因此512B的索引表区能容纳512B/4B=128个索引项。每个索引项对应一个磁盘块,所以该系统可支持的单个文件最大长度是128*1KB=128KB。2)这里考查的分配方式不同于我们熟悉的三种经典分配方式,但题目中给出了详细的解释。所求的单个文件最大长度一共包含两部分:预分配的连续空间和直接索引区。连续区块数占2B,共可表示216个磁盘块,即226B。直接索引区共504B/6B=84个索引项。所以该系统可支持的单个文件最大长度是226B+84KB。为了使单个文件的长度达到最大,应使连续区的块数字段表示的空间大小尽可能接近系统最大容量4TB。分别设起始块号和块数占4B,这样起始块号可以寻址的范围是232个磁盘块,共4TB,即整个系统空间。同样,块数字段可以表示最多232个磁盘块,共4TB。13.当前磁盘读写位于柱面号20,此时有多个磁盘请求以下列柱面号顺序送到磁盘驱动器:10、22、2、40、6、38。在寻道时,移动一个柱面需要6ms,按照先来先服务算法和电梯算法(方向从0到40)计算所需的总寻道时间。参考答案:1)先来先服务算法:寻道的次序为20、10、22、2、40、6、38。总的寻道时间为(10+12+20+38+34+32)*6ms=876ms。2)电梯算法(方向从0到40):寻道的次序为20、22、38、40、10、6、2。总的寻道时间为(2+16+2+30+4+4)*6ms=348ms。14.假设磁盘的每个磁道分为9个块,现有一文件有A,B,…,I共9个记录,每个记录的大小与块的大小相等,设磁盘转速为27ms/r,每读出一块后需要2ms的处理时间,若忽略其他辅助时间,试问:1)如果这些记录被顺序存放于一个磁道上,文件处理程序顺序读取且顺序处理记录,处理文件要多长时间?2)文件处理程序顺序读取且顺序处理记录,记录如何存放可使文件的处理时间最短?参考答案:磁盘转速为27ms/转,每个磁道存放9条记录,因此读出1条记录的时间为27/9=3ms。1)读出并处理记录A需要5ms,此时磁头已转到记录B的中间,因此为了读出记录B,必须再转接近一圈(从记录B的中间到记录B)。后续8条记录的读取及处理与此类似,但最后一条记录的读取与处理只需5ms。于是,处理9条记录的总时间8*(27+3)+(3+2)=245ms【另解】注意,从开始读A到最后读完I一共转了9圈,即处理完前8条记录+读第9条记录的时间一共是27*9=243ms,加上最后的2ms处理时间,一共是243+2=245ms。2)由于每读出一条记录后需要2ms的处理时间,当读出并处理记录A时,不妨设记录A放在第1个盘块中,读写头已移到第2个盘块的中间,为了能顺序读到记录B,应将它放到第3个盘块中,即应将记录按下表顺序存放:盘块123456789记录AFBGCHDIE这样,处理一条记录并将磁头移到下一条记录的时间是3(读出)+2(处理)+1(等待)=6ms所以,处理9条记录的总时间为6*8+(3+2)=53ms.15.存放在某个磁盘上的文件系统釆用混合索引分配方式,其FCB中共有13个地址项,第0~9个地址项为直接地址,第10个地址项为一次间接地址,第11个地址项为二次间接地址,第12个地址项为三次间接地址。假设每个盘块的大小为512B,若盘块号需要占3B,而每个盘块最多存放170个盘块地址,则:1)该文件系统允许文件的最大长度是多少?2)将文件的第5000B、15000B、150000B转换成物理块号和块内位移。3)假设某个文件的FCB己在内存,但其他信息均在外存,为了访问该文件中某个位置的内容,最少需要几次访问磁盘?最多需要几次访问磁盘?参考答案:在混合索引分配方式中,FCB的直接地址中登记有分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理课程图示设计
- 护理老年护理院护理实践
- 2026普外科职称面试题及答案
- 2026认知定位面试题及答案
- 如何体面地辞退员工及其注意事项
- 2026数媒编辑面试题及答案
- 2026讨论式面试题目及答案
- 2026铜箔厂岗位面试题及答案
- 可编程控制器技术应用课件 7起保停设计法
- 2026维稳面试题及答案
- 销售配件管理制度大全
- 中暑热衰竭电解质紊乱护理查房
- 铸造工安全培训课件
- DGTJ08-2240-2017 道路注浆加固技术规程
- 药品技术转移管理制度
- 【鄂尔多斯】2024年内蒙古鄂尔多斯职业学院人才引进39人笔试附带答案详解
- 2024衡阳蒸湘区中小学教师招聘考试试题及答案
- DB32-T 4910-2024 大水面生态渔业资源监测与资源量评估技术规范 湖泊与水库
- DB52T 1161-2016 贵州省旅游购物场所等级划分与评定
- NB-T35026-2022混凝土重力坝设计规范
- 标准施工招标文件2007版
评论
0/150
提交评论