操作系统题库之简答题部分(个人整理,附带答案)

2019-07-14 11:39发布

                                                             问答题题库1、 什么是操作系统?有哪些基本功能?操作系统定义:操作系统是计算机系统中的一个系统软件,它是这样一些程序模块的集合---他们管理和控制计算机系统中的硬件及软件资源,合理的组织计算机工作流程,以便有效的利用这些资源为用户提供一个具有足够的功能,使用方便,可扩展,安全可管理的工作环境,从而在计算机和用户之间起到接口的作用基本功能:1)处理机管理在单道作业或者单用户的情况下,处理机为一个作业或者一个用户独占,对处理机的管理十分简单,单在多道程序或者多用户的情况下,要组织多个作业同时运行,就要组织==解决处理机分配调度策略,分配实施和资源回收等问题,这就是处理机管理功能(正式因为处理机管理功能的不同,所以就有了各种操作系统)2)储存管理:对储存器进行分配,保护,扩充的管理内存分配:在内存中除了操作系统和各种系统软件外,还有一个或多个用户程序,如何分配内存,以保证系统及各用户程序的储存区互不冲突,这就是内存分配的问题储存保护:保护正在运行的多个程序不会破坏另一个程序,保证用户程序不会破坏系统程序,这就是储存保护要考虑的问题内存扩充:当用户作业所需要的内存容量远超过计算机能提供的内存容量之时,如何把内部储存器和外部储存器结合起来,为用户提供一个容量比实际内存大的多的虚拟储存器,而用户使用这个虚拟储存器和内存的使用一样方便,这就是内存扩充需要考虑的问题3)设备管理通道,控制器,输入输出设备的管理:现代计算机常常配置有种类很多的输入输出设备,这些设备具有很不相同的操作性能,特别是他们对信息传输和处理的速度差别很大,并且他们常常是通过通道控制器和主机发生联系的,设备管理的任务就是根据一定的分配策略,把通过,控制器,输入输出设备分配给请求输入输出操作的程序,并启动设备完成实际的输入输出操作,为了尽可能的发挥设备和主机并行工作的能力,常常需要采用虚拟技术和缓冲技术设备独立性:输入输出设备很多,使用方法各不相同,设备管理应该为用户提供一个良好的界面,而不必去涉及具体的特性,以方便用户能使用这些设备4)文件系统管理(针对软件资源的管理)信息的储存,共享,保密和保护5) 用户接口:程序级接口,作业级接口程序级接口:提供一组广义指令供用户程序和其他系统程序调用(或叫系统调用或者程序请求)作业级接口:提供一组控制操作命令,供用户去组织和控制自己作业的运行(shell)
2、单核操作系统与微核操作系统有啥区别?各有什么优缺点?单核操作系统简单理解就是单一内核,宏内核,编写难,修改难,效率高,效率比其他系统高很多,每一个模块又都独立服务于操作,内核代码高度集成,但是所有的模块都在同一内核空间运行,一个很小的BUG都回导致整个系统崩溃微核就是把单核改了下,把系统服务的实现和系统的基本操作规则分离开来,这样不至于因为一个小BUG而整个系统崩溃,便于维护,但是性能上要比单核低一些
3、为什么机器要分成至少两种状态:核态和用户态?开机时机器应处于哪种状态?为什么?为什么分核态核用户态:计算机里面又两种不同的程序:系统程序核用户程序,两种程序又不同的对资源核机器指令的使用权限,所以需要划分两个状态内核态
4、操作系统提供哪些虚拟技术?
5、什么是并行?什么是并发?并行:一组程序按照独立的,异步的速度执行并发:一个程序段的执行尚未结束,另一个程序段的执行已经开始
6.简述系统调用的工作机制用户在执行特权指令时,调用系统调用,陷入内核(不同的任务,所对应的系统调用号也不同,在调用系统调用陷入内核时,回向OS内核传入一个系统调用)进入内核后,根据系统调用号查找系统调用表,找到对应的系统调用处理代码,内核执行完系统调用处理代码之后,从核心态返回用户态
7.上面是多道程序涉及技术,它对操作系统的形成起到什么作用?  所谓的多道程序设计技术,即通过软件手段,运行在计算机内存中同时存放几道相互独立的作用程序,让他们对系统中的资源进行共享核竞争,以使系统中各种资源尽可能的满负荷工作,从而提高整个计算机系统的效率,基于这种考虑,计算机科学家开始把cpu,储存器,外部设备以及各种软件都视为计算机的资源,并逐步设计出一种软件来管理这些资源,不仅使他们能得到合理的利用,而且还要高校的利用,具有这种功能的软件技术操作系统,所以多道程序设计的出现,加快了操作系统的诞生
8.怎么理解虚拟机的概念?  拿操作系统来说吧,它是在裸机上加载的第一层软件,是对计算机硬件系统功能的首次扩充,从用户角度看,计算机配置了操作系统后,由于操作系统隐蔽了硬件复杂的细节,用户回感到机器使用起来更方便,容易了,这样,通过操作系统的作用展现在用户面前的是一台功能经过扩展了的机器,折腾机器不是硬件搭建而成的,现实生活中并不存在具有这种功能的真实机器,它只是用户的一种感觉而已,所以,技把这样的机器叫做虚拟机
9.对于分时系统,怎么理解“从宏观上看,多个用户同时工作,共享系统的资源,从微观上看,各终端程序是轮流运行一个时间片”?在分时系统中,系统把cpu时间划分成许多时间片,每个终端用户可以使用一个由时间片规定的cpu时间,多给终端用户就可以轮流的使用cpu,这样的效果是每个终端都开始了自己的工作,得到了及时的响应,也就是说“从宏观上看,多个用户同时工作,共享资源”,但实际上,cpu在每一时刻只为一个终端服务,即”从微观上看,各终端程序是轮流运行一个时间片“
10.操作系统包括哪些功能?处理机管理功能:包括作用核进程调度,进程控制和进程通信储存器管理功能:包括内存分配,地址映射,内存保护和内存扩充设备管理功能:包括缓冲区管理,设备分配,设备驱动,设备无关性文件管理功能:包括文件存储空间管理,文件操作的一般管理,目录管理,文件读写管理,存取控制和保护用户接口:命令接口,程序接口,图形接口
12.核心模式和用户模式核心模式一般指操作系统管理程序的运行的状态,具有较高的特权级别用户模式一般指用户程序运行时的状态,具有较低的特权级别当处理器处于管态(核态)时,全部指令包括特权指令都可以执行,可使用所有资源,并具有改变处理器状态的能力,当处理器处于用户模式时,就只能执行非特权指令,特权级别不同,可以运行指令集合也不同,特权级别越高,可以允许指令集合越大,高特权级别对于的可运行指令集合保护特权阶级的,核心模式道用户模式的唯一途径是通过中断
13.操作系统提高的服务由哪些?程序执行,IO操作,文件系统处理,通信,错误检查,资源分配,用户管理,保护
14.操作系统的结构由哪些,各种的优缺点简单结构,层次话设计,微内核优缺点:
15,虚拟机的优点:两个,一个是通过完全的保护系统资源,虚拟机提供了一个健壮的安全保护层另一个是虚拟机寻址在不干扰正常系统操作的情况下进行系统开发
16、 一个CPU,PCB表有100行,任一时刻,最多有多少个进程处于运行态、就绪态、等待状态?如果有n个CPU,请回答同样的问题。1,99,100n,99n,100n
17.画出除基本状态外还包含创建,终止状态的变迁图
18.进程之间通讯的方式有哪几种?共享储存器消息传递管道
19.在多道程序设计中,如何理解”内存中的多个程序执行过程交织在一切,大家都在走走停停“这样一个现象?在多道程序设计系统中,内存中存放多个程序,因此,从宏观上看,这些程序都开始了自己的工作,但是cpu只有一个,在任何时刻cpu只能执行一个进程程序,所以这些进程程序的执行过程是交织在一起的,也就是说,从微观上看,每个进程一会儿向前走,一会儿又停步不前,处于一种走走停停的的状态之中
20.什么是原语,特权指令,系统调用指令,访管指令,他们之间有无一定联系?特权指令和访管指令都是cpu指令系统中的指令,只是前者是一些只能在管态下执行的指令,后者是一条只能在目态下执行的指令,原语和系统调用命令都是操作系统中的功能程序,只是前者执行时不能被其他程序打断,后者没有这个要求,操作系统中有些系统调用命令是以原语形式出现的,例如创建进程就是一条原语式的系统调用命令,但并不是所有系统调用命令都是原语,以为如果那样的话,整个系统的并发性就不可能得到充分发挥
21.操作系统是如何处理源程序中出现的系统调用命令的?编译程序总是把源程序中的系统调用命令改写成为一条访管指令和相应参的参数,这样在程序被实际执行时,就通过访管指令进入操作系统,到达调用操作系统功能子程序的目的
22.系统调用与一般过程调用有什么区别?系统调用是指在用户程序中调用操作系统提供的功能子程序,一般的过程调用是指在一个程序中调用另一个程序,因此他们之间有如下三点区别:1).一般的过程调用,调用者与被调用者都允许在相同的CPU状态,即或都处于目态(用户程序调用用户程序),或都处于管态,(系统程序调用系统程序),但发生系统调用时,发出调用命令的调用者运行在目态,而被调用的对象却运行在管态,即调用者和被调用者运行在cpu的不同状态2)一般的过程调用,是直接通过转移指令转向被调用的程序,但发生系统调用时,只能通过访管指令提供一个同一的入口,由目态进入管态,进分析后,才转向相应的操作系统命令程序处理3)一般的过程调用,在被调用者执行完后,就径直返回端点继续执行,但系统调用可能会导致进程状态的变化,从而引起系统重新分配处理机,因此系统调用结束后,不一定是返回调用者断点处继续执行
23.试述创建进程原语的主要功能创建进程原语主要功能有三:为新进程申请一个PCB为创建者(即父进程)提供的新进程信息填入PCB中将新建进程设置为就绪状态,并按照所采用的调度算法,把PCB排入就绪队列中
24.处于阻塞状态的一个进程,它所等待的事件发生时,就把它的状态由阻塞改为就绪,让它到就绪队列里排队,为什么不直接将他投入运行呢?如果处于阻塞状态的一个进程,在它所等待的时间发生时就径直投入运行(也就是把cpu从当前运行的进程的手中抢过来),那么系统就无法控制cpu这种资源的管理和使用,进而也就失去了设置操作系统的作用,所以,阻塞状态的进程在它所等待的事件发生时,必须先进入就绪队列,如何再取考虑cpu的问题
25.作用调度和进程调度有什么区别?作用调度和进程调度(即cpu调度)都涉及到cpu的分配,但作用调度只是选参加CPU竞争的作用,它并不具体分配cpu,而进程调度是在作用调度完成后的基础上,把cpu真正分配给某一个具体的进程使用
26.系统中的各种进程队列都是由进程的PCB链接而成,当一个进程的状态从阻塞变为就绪状态时,它的pcb从那个队列移到那个队列?它所对应的程序也要跟着移来移去吗?,为什么?当一个进程状态从阻塞变成就绪时,它的pcb就从原先的阻塞队列移到到就绪队列里,把进程的pcb从这个队列移到另一个队列时,只移到进程的pcb,进程所对应的程序是不动的,这是以为在进程的pcb里,总是记录由它的程序的断点信息,知道了断点信息,就能够知道程序当前应该从那里开始往下执行了,这正是保护现场所起的作用
27.为什么说响应比高者优先作业调度算法是对先来先服务以及短作业优先这两种调度算法的折中?先来先服务的作用调度算法,重点考虑的是作业在后备作业队列里的等待时间,因此对短作业不利,短作业优先的作业调度算法,重点考虑的是作业所需的cpu时间(当然,这个是用户自己估计的),因此对长作业不利,响应比高者优先作业调度算法,总是在需要调度时,考虑作业以及等待的时间和所需运行时间之比,即:改作业已等待时间/该作业所需cpu时间不难看出,这个比值的分母是一个不变的量,随着时间的推移,一个作业的已等待时间会不断发生变化,也就是分子在不断的变化,显然,短作业比较容易获得较高的响应比,这是以为它的分母比较小,只要稍加等待,整个比值就会很快上升,另一方面,长作业的分母虽然很大,但随着等待时间的增加,比值也会逐渐的上升,从而获得较高的响应比,根据这种分析,可见随着响应比高者优先的作业调度算法,即照顾了短作业的利益,也照顾了长作业的利益,是对先来先服务以及短作业优先这两种调度算法的一种折中
28.短作业优先调度算法总能得到最小平均周转时间吗?为什么(所有作业的完成时间减去到达时间除以作业数)短作业优先调度算法只有在所有作业同时到达后备作业队列时,才能得到最小的平均周转时间,如果各作业不是同时到达的,这个结论是不成立的,可以用反例说明:例如,考虑5个作业A~E,运行时间分别是2,4,1,1,1到达时间分别是0,0,3,3,3按照短作业优先原则,最初只有A和B可以参与选择,因为其他三个还没有到达,于是运行顺序应该是A,B,C,D,E,他们每个的周转时间分别是2,6,4,5,6,平均周转时间是4.6,但如果按照B,C,D,E,A来调度,他们每一个的周转时间成为9,4,2,3,4,平均周转时间是4.4,结构比短作业优先调度算法好,之所以会这样,就是因为5个作业并没有同时到达
29,进程A和B共享一个变量,因此在各自程序里都有各种的临界区,现在进程A在临界区里,试问进程A的执行能被别的进程打断吗?能够被进程B打断吗?(这里打断的意思是调度新进程的运行,使进程A短暂执行)当进程A在自己的临界区里执行时,能够被别的进程打断,没有任何限制,当进程A在自己的临界区执行时,能够被B进程打断,不过这种打断是由限制的,即当进程B要求进入到自己的临界区时,就会被阻塞,这是因为它在打断进程A时,A在临界区里面没有出来,既然A在临界区,那么B就无法进入自己的临界区
30.信号量上的P,V操作只是对信号量的值进行加1减1吗?在信号量上还能执行除P,V操作外的其他操作吗?根据信号量的定义可知,P,V操作并非只是对信号量进行加1或减1的操作,更重要的是要在加1减1之后,判断运算的结果,对于p操作,判定后调用进程自己有可能继续运行,也可能阻塞等待,对于V操作,判断后调用进程自己最后总是继续运行,但之前可能会唤醒信号队列上等待的进程在信号量上出来能执行pv操作外,不能执行其他任何操作
32.系统有输入机和打印机各一台,均采用p-v操作来实现分配和释放,现在有两个进程都要使用他们,这会发生死锁吗?试说明理由采用信号量上的pv操作,只能正确的完成对设备的申请与释放,但不能控制进程对设备的申请,释放顺序,因此当进程申请和释放设备的顺序不当时,仍会发生死锁,例如进程A使用输入机和打印机的顺序是:请求打印机->请求输入机->释放打印机->释放输入机,进程B使用输入机和打印机的顺序是:请求输入机—>请求打印机—>释放输入机—>释放打印机
33.一台计算机有6台磁带机,有n个进程竞争使用,emigrants进程最多需要两台,那么n为多少时,系统才不存在死锁危险?由于1每个进程最多需要两台磁带机,考虑极端情况:每个进程都已经申请了一台,那么只要有一台空闲,就可以保证所有进程都可以完成,也就是说n=5时,系统就不存在死锁危险
34.什么是内部碎片,什么是外部碎片,各种储存管理中都可能产生何种碎片?所谓内部碎片,是指系统分配给用户使用,用户自己没有用到的那部分储存空间,所谓外部碎片,是指系统无法把它分配出去供用户使用的那部分储存空间,对于教材而言,单一联系去储存管理,固定分区储存,分页式储存管理和请求也是储存管理都回出现内部碎片,只是前两种管理造成的内部碎片比较大,浪费交严重,后两种页式储存管理,平均来说每个作业都会出现半也的内部碎片,教材中,只有可变分区储存管理才会产生外部碎片
35.叙述静态重定位与动态重定位的区别静态重定位是一种通过软件来完成的地址重定位技术,它在程序装入内存时,完成对内存指令的调整,因此,程序经过静态重定位之后,在内存中就不能移动了,如果要移动,就必须重新进行地址重定位动态重定位是一种通过硬件支持完成的地址重定位技术,作业程序被原封不动的装入内存,只有到执行某条指令时,硬件1地址转换机构才对里面的地址进行转换,正因为如此,实现动态重定位的系统,作业程序在内存里面可以移动,也就是说作业程序在内存中是可浮动的
36.一个虚拟地址结构用24个二进制位表示,其中12个二进制位表示页面尺寸,试问这种虚拟独占空间总共有多少页,每个页的尺寸是多少?由于虚拟地址中是用12个二进制位表示页面尺寸(即页内位移),所以虚拟地址空间中表示的页号页式12个二进制,这样虚拟地址空间总共有2的12次方等于4096页,每页的尺寸是2的12次方等于4k字节
37.什么叫虚拟存储器?怎样确定虚拟存储器的容量?答:虚拟存储器实际是一种存储扩充技术。它把作业程序存放在辅助存储器里,运行时只装入程序的一部分。遇到不在内存的程序时,再把所需要的部分装入。这样在内存和辅存之间调入、调出的做法,使用户的作业地址空间无需顾及内存的大小。给用户造成的印象是,无论程序有多大,它在这个系统上都可以运行。这种以辅助存储器作为后援的虚幻存储器,就称为虚拟存储器。虚拟存储器的大小是由系统的地址结构确定的。38.为什么请求分页式存储管理能够向用户提供虚拟存储器?答:请求分页式存储管理的基本思想是:操作系统按照存储块的尺寸,把用户作业地址空间划分成页,全部存放在磁盘上。作业运行时,只先装入若干页。运行过程中遇到不在内存的页时,操作系统就把它从磁盘调入内存。这样一来,用户的作业地址空间无需顾及内存的大小。这与虚拟存储器的思想是完全吻合的。所以,请求分页式存储管理能够向用户提供虚拟存储器。39.在请求分页式存储管理中,为什么既有页表,又有快表?答:在分页式或请求页式存储管理中,通常是利用内存储器构成页表的。当CPU执行到某条指令、要对内存中的某一地址访问时,因为这个地址是相对地址,所以先要根据这个地址所在的页号去查页表(访问一次内存),然后才能由所形成的绝对地址去真正执行指令(第二次访问内存)。可见,由于页表在内存,降低了CPU的访问速度。为了提高相对地址到绝对地址的变换速度,人们想到用一组快速寄存器来代替页表。这时查页表是以并行的方式进行,立即就能输出与该页号匹配的块号,这样做无疑比内存式的页表要快得多。但是,快速寄存器的价格昂贵,由它来组成整个页表是不可取的。考虑到程序运行时具有局部性,因此实际系统中总是一方面采用内存页表、另一方面用极少几个快速寄存器组成快表来共同完成地址的变换工作。这时的地址变换过程,40.试述缺页中断与页面淘汰之间的关系。答:在请求页式存储管理中,当根据虚拟地址查页表而发现所要访问的页不在内存时,就会产生缺页中断。系统响应中断后,就由操作系统到辅存把所需要的页读入内存。这时,内存可能有空闲的块,也可能没有。只有当内存中没有空闲块时,才会出现将内存现有页面淘汰出去的问题,即要进行页面淘汰。所以,缺页中断和页面淘汰之间的关系是:页面淘汰一定是由缺页中断所引起;但缺页中断则不一定引起页面淘汰。41.试述缺页中断与一般中断的区别。答:在计算机系统中,由于某些事件的出现,打断了当前程序的运行,而使CPU去处理出现的事件,这称为“中断”。通常,计算机的硬件结构都是在执行完一条指令后,去检查有无中断事件发生的。如果有,那么就暂停当前程序的运行,而让CPU去执行操作系统的中断处理程序,这叫“中断响应”。CPU在处理完中断后,如果不需要对CPU重新进行分配,那么就返回被中断进程的程序继续运行;如果需要进行CPU的重新分配,那么操作系统就会去调度新进程。由上面的讲述可以看出,缺页中断与一般中断的区别如下。(1)两种中断产生的时刻不同:缺页中断是在执行一条指令中间时产生的中断,并立即转去处理;而一般中断则是在一条指令执行完毕后,当硬件中断装置发现有中断请求时才去响应和处理。(2)处理完毕后的归属不同:缺页中断处理完后,仍返回到原指令去重新执行,因为那条指令并未执行;而一般中断则是或返回到被中断进程的下一条指令去执行,因为上一条指令已经执行完了,或重新调度,去执行别的进程程序。42.怎样理解把相对地址划分成数对:(页号,页内位移)的过程对于用户是“透明”的?答:在操作系统中,所谓“透明”,即指用户不知道的意思。对于分页式存储管理来说,用户向系统提供的相对地址空间,是一个一维的连续空间。系统接受了这个作业后,在内部把这个相对地址空间划分成若干页。由于这种划分对于用户来说是根本不知道的,所以说把相对地址划分成数对:(页号,页内位移)的过程对于用户是“透明”的。43.做一个综述,说明从单一连续区存储管理到固定分区存储管理,到可变分区存储管理,到分页式存储管理,再到请求分页式存储管理,每一种存储管理的出现,都是在原有基础上的发展和提高。答:每一种存储管理的出现,都是在原有存储管理基础上的一次发展和提高。它们从简单到复杂,从不完善到逐渐完善。44备管理完成哪些功能?缓冲区管理、设备分配,设备处理、虚拟设备、设备独立性45、I/O软件分哪几个层次,各做什么工作?用户层:设备无关层设备驱动层中断处理层46、什么是设备的独立性?应用程序独立于具体使用和物理设备47、操作系统常用的缓冲技术有哪些?单缓冲、双缓冲、循环缓冲、缓冲池48、提高磁盘访问速度的方法有哪些?1.磁盘高速缓存2 提前读3.延迟写4.优化物理块分布5.虚拟盘49基于设备的从属关系,可以把设备分为系统设备与用户设备两类。根据什么来区分一个设备是系统设备还是用户设备呢?答:所谓“系统设备”,是指在操作系统生成时就已被纳入系统管理范围的设备;所谓“用户设备”是指在完成应用任务过程中,用户特殊需要的设备。因此,判定一个设备是系统设备还是用户设备,依据是它在系统生成时,是否已经纳入了系统的管理范围。如果是,它就是系统设备;如果不是,它就是用户设备。50备管理的主要功能是什么?答:设备管理的主要功能是:(1)提供一组I/O命令,以便用户进程能够在程序中提出I/O请求,这是用户使用外部设备的“界面”;(2)记住各种设备的使用情况,实现设备的分配与回收;(3)对缓冲区进行管理,解决设备与设备之间、设备与CPU之间的速度匹配问题;(4)按照用户的具体请求,启动设备,通过不同的设备驱动程序,进行实际的I/O操作;I/O操作完成之后,将结果通知用户进程,从而实现真正的I/O操作。51结设备和CPU在数据传输的4种方式中,各自在“启动、数据传输、I/O管理以及善后处理”各个环节所承担的责任。答:使用“程序循环测试”的方式来进行数据传输,不仅启动、I/O管理和善后处理等工作要由CPU来承担,即使在数据传输时,CPU也要做诸如从控制器的数据寄存器里取出设备的输入信息,送至内存;将输出的信息,从内存送至控制器的数据寄存器,以供设备输出等工作。因此,在这种方式下,CPU不仅要花费大量时间进行测试和等待,并且只能与设备串行工作,整个计算机系统的效率发挥不出来。使用“中断”的方式来进行数据传输,启动、I/O管理以及善后处理等工作仍然要由CPU来承担,但在设备进行数据传输时,CPU和外部设备实行了并行工作。在这种方式下,CPU的利用率有了一定的提高。使用“直接存储器存取(DMA)”的方式来进行数据传输,I/O的启动以及善后处理是CPU的事情,数据传输以及I/O管理等事宜均由DMA负责实行。不过,DMA方式是通过“窃取”总线控制权的办法来工作的。在它工作时,CPU被挂起,所以并非设备与CPU在并行工作。因此,在一定程度上影响了CPU的效率。使用“通道”方式来进行数据传输,在用户发出I/O请求后,CPU就把该请求全部交由通道去完成。通道在整个I/O任务结束后,才发出中断信号,请求CPU进行善后处理。这时CPU对I/O请求只去做启动和善后处理工作,输入/输出的管理以及数据传输等事宜,全部由通道独立完成,并且真正实现了CPU与设备之间的并行操作。52用户程序中采用“设备类,相对号”的方式使用设备有什么优点?答:在用户程序中采用“设备类,相对号”的方式使用设备的优点是:第一,用户不需要记住系统中每一台设备的具体设备号,这是非常麻烦的事情;第二,在多道程序设计环境下,用户并不知道当前哪一台设备已经分配,哪一台设备仍然空闲。通过“设备类,相对号”来提出对设备的使用请求,系统就可以根据当前的具体情况来分配,从而提高设备的使用效率;第三,用户并不知道设备的好坏情况。如果是用“绝对号”指定具体的设备,而该设备正好有故障时,这次I/O任务就不可能完成,程序也就无法运行下去。但通过“设备类,相对号”来提出对设备的使用请求,系统就可以灵活处理这种情况,把好的设备分配出去。53动磁盘执行一次输入/输出操作要花费哪几部分时间?哪个时间对磁盘的调度最有影响?答:执行一次磁盘的输入/输出操作需要花费的时间包括三部分:(1)查找时间;(2)等待时间;(3)传输时间。在这些时间中,传输时间是设备固有的特性,无法用改变软件的办法将它改进。因此,要提高磁盘的使用效率,只能在减少查找时间和等待时间上想办法,它们都与I/O在磁盘上的分布位置有关。由于磁臂的移动是靠控制电路驱动步进电机来实现,它的运动速度相对于磁盘轴的旋转来讲较缓慢。因此,查找时间对磁盘调度的影响更为主要。54.解释通道命令字、通道程序和通道地址字。答:所谓“通道命令字”,是指通道指令系统中的指令。只是为了与CPU的指令相区别,才把通道的指令改称为“通道命令字”。若干条通道命令字汇集在一起,就构成了一个“通道程序”,它规定了设备应该执行的各种操作和顺序。通常,通道程序存放在通道自己的存储部件里。当通道中没有存储部件时,就存放在内存储器里。这时,为了使通道能取得通道程序去执行,必须把存放通道程序的内存起始地址告诉通道。存放这个起始地址的内存固定单元,被称为“通道地址字”。55.何为DMA?通道与DMA有何区别?答:所谓“DMA”,是指“直接存储器存取”的数据传输方式,其最大特点是能使I/O设备直接和内存储器进行成批数据的快速传输。适用于一些高速的I/O设备,如磁带、磁盘等。通道方式与DMA方式之间的区别如下。(1)在DMA方式下,数据传输的方向、传输长度和地址等仍然需要由CPU来控制。但在通道方式下,所需的CPU干预大大减少。(2)在DMA方式下,每台设备要有一个DMA控制器。当设备增加时,多个DMA控制器的使用,显然不很经济;但在通道方式下,一个通道可以控制多台设备,这不仅节省了费用,而且减轻了CPU在输入/输出中的负担。(3)在DMA方式下传输数据时,是采用“窃取”总线控制权的办法来工作的。因此,CPU与设备之间并没有实现真正的并行工作;在通道方式下,CPU把I/O任务交给通道后,它就与通道就真正并行工作。56.解释记录的成组与分解。为什么要这样做?答:往磁带、磁盘上存放信息时,经常是把若干个记录先在内存缓冲区里拼装成一块,然后再写到磁带或磁盘上。存储设备与内存储器进行信息交换时,就以块为单位。这个把记录拼装成块的过程,被称为是“记录的成组”。从磁带、磁盘上读取记录时,先是把含有那个记录的块读到内存的缓冲区中,在那里面挑选出所需要的记录,然后把它送到内存存放的目的地。这个把记录从缓冲区里挑选出来的过程,被称为是“记录的分解”。之所以这样做,一是为了提高存储设备的存储利用率;二是减少内、外存之间信息交换次数,提高系统的效率。57.试述SPOOL系统中的3个组成软件模块各自的作用。答:SPOOLING系统中的3个软件模块是预输入程序、缓输出程序和井管理程序。它们各自的作用如下。(1)预输入程序预先把作业的全部信息输入到磁盘的输入井中存放,以便在需要作业信息以及作业运行过程中需要数据时,可以直接从输入井里得到,而无需与输入机交往,避免了等待使用输入机的情况发生。(2)缓输出程序总是查看“输出井”中是否有等待输出的作业信息。如果有,就启动输出设备(如打印机)进行输出。因此,由于作业的输出是针对输出井进行的,所以不会出现作业因为等待输出而阻塞的现象。(3)井管理程序分为“井管理读程序”和“井管理写程序”。当作业请求输入设备工作时,操作系统就调用井管理读程序,把让输入设备工作的任务,转换成从输入井中读取所需要的信息;当作业请求打印输出时,操作系统就调用井管理写程序,把让输出设备工作的任务,转换成为往输出井里输出。58.试说出MS-DOS或Windows对文件名的命名规则。举几个例子,说明哪个文件名起得是对的,哪个文件名起得是不符合命名规则的。答:例如MS-DOS,它的文件名由两部分组成:文件名和扩展名。文件名由1~8个字符组成;在文件名的后面,可以跟随扩展名(可选)。扩展名总是以一个点开始,然后是1~3个字符。组成文件名和扩展名的字符可以如下。英文字母:A~Z,a~z,共52个(不区分大小写)。数字符号:0~9。特殊符号:$、#、&、@等。不能使用的字符有*、?等。例如:        test.txt abc.obj等都是正确的文件名;而:        abcdefhgijk.txty是不正确的文件名。对于Windows,文件名最多可以有256个字符,其他与MS-DOS类同。59.为什么位示图法适用于分页式存储管理和对磁盘存储空间的管理?如果在存储管理中采用可变分区存储管理方案,也能采用位示图法来管理空闲区吗?为什么?答:无论是分页式存储管理还是磁盘存储空间的管理,它们面对的管理对象——存储块(内存块或磁盘块)的数量,在系统的运行过程中是固定不变的。因此,可以很方便地用相同数量的二进制位来对应管理它们。但如果在存储管理中采用可变分区存储管理方案,那么在系统运行时,分区的数目是变化的。因此,也就无法用位示图法来管理这些分区的使用情况。60.“文件目录”和“目录文件”有何不同?答:“文件目录”是指一个文件的目录项,里面存放着文件的有关数据信息。“目录文件”则是指如果文件很多,那么文件目录项的数量也就很多。为此,操作系统经常把这些目录项汇集在一起,作为一个文件来加以管理,这就是所谓的“目录文件”。因此,“文件目录”和“目录文件”是两个不同的概念,不能混为一谈。61.一个文件的绝对路径名和相对路径名有何不同?答:在树型目录结构中,用户要访问一个文件,必须使用文件的路径名来标识文件。从根目录出发、一直到所要访问的文件,将所经过的目录名字用分隔符连接起来,所形成的字符串,就是该文件的绝对路径名。如果是从当前目录出发,一直到所要访问的文件,将所经过的目录名字用分隔符连接起来,所形成的字符串,就是该文件的相对路径名。可以看出,绝对路径名是文件的全名,必须从根目录开始。所以,一个文件的绝对路径名是惟一的。相对路径名总是从当前目录往下,所以文件的相对路径名与当前位置有关,是不惟一的。62.试述“创建文件”与“打开文件”两个系统调用在功能上的不同之处。答:所谓“创建文件”,表示原先该文件并不存在。所以创建文件时,最主要的功能是在磁盘上为其开辟存储空间,建立起该文件的FCB。文件创建后,有了它的FCB,系统才真正感知到它的存在;“打开文件”是这个文件已经存在,只是它的有关信息不在内存。因此,打开文件最主要的功能是把该文件FCB中的信息复制到内存中,以便为随后对文件的操作带来便利。63.试述“删除文件”与“关闭文件”两个系统调用在功能上的不同之处。答:“删除文件”最主要的功能是把该文件的FCB收回。文件没有了FCB,系统也就无法感知到它的存在了。所以,在执行了删除文件的命令后,这个文件就在系统里消失了;而“关闭文件”最主要的功能是把复制到内存活动目录表里的该文件的FCB信息取消。这样一来,在内存活动目录表里没有了该文件的信息,就不能够对这个文件进行读、写了。所以,关闭一个文件后,这个文件还存在,只是不能对它操作了。如果要操作,就必须再次将它打开(即把FCB里的信息复制到内存的活动目录表),然后再进行操作。64.为什么在使用文件之前,总是先将其打开后再用?答:有关文件的信息都存放在该文件的FCB里,只有找到文件的FCB,才能获得它的一切信息。但FCB是在磁盘里。因此,只要对文件进行操作,就要到磁盘里去找它的FCB。这种做法,无疑影响了文件操作的执行速度。正因为如此,操作系统才考虑在对文件进行操作前,先将其打开,把文件的FCB内容复制到内存中来。这样,查找文件的FCB,就不必每次都要去访问磁盘。65.如果一个文件系统没有提供显式的打开命令(即没有OPEN命令),但又希望有打开的功能,以便在使用文件时能减少与磁盘的交往次数。那么应该把这一功能安排在哪个系统调用里合适?如何安排?答:文件系统中设置打开命令的根本目的,是减少文件操作时与磁盘的交往次数。如果系统没有提供显式的打开命令,但又要能减少与磁盘的交往次数,那么只需把这一功能安排在读或写系统调用命令里。这时,在读、写命令功能前面添加这样的处理:总是先到内存的活动目录表里查找该文件的FCB。如果找到,则表明在此前文件已经被打开,于是就可以立即进行所需要的读、写操作;如果没有找到,那么表明在此前文件还没有打开。于是应该先按照文件名,到磁盘上去查找该文件的FCB,把它复制到内存的活动目录表里,然后再进行对它的操作。