操作系统第六章课后习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.试说明I/O系统的基本功能。
答:I/O系统第一、二方面的功能是为了方便用户使用I/O设备;第三、四方面的功能是用于提高CPU和I/O设备的利用率;第五、六方面的功能是为用户在共享设备时提供方便,以保证系统能有条不紊的运行,当系统发生错误时能及时发现错误,甚至于能自动修正错误。
2.简要说明I/O软件的四个层次的基本功能。
答:用户层I/O软件,实现与用户交互的接口,用户可直接调用该层所提供的、与I/O 操作有关的库函数对设备进行操作;设备独立性软件,用于实现用户程序与设备驱动器的统一接口、设备命名、设备的保护以及设备的分配与释放等,同时为设备管理和数据传送提供必要的存储空间;设备驱动程序,与硬件直接相关,用于具体实现系统对设备发出的操作指令,驱动I/O设备工作的驱动程序;中断处理程序,用于保存被中断进程的CPU环境,转入相关的中断处理程序进行处理,处理完毕再恢复被中断进程的现场后,返回到被中断的进程。
3.I/O系统接口与软件/硬件(RW/HW)接口分别是什么接口?
答:I/O系统接口是I/O系统与上层系统之间的接口,向上层提供对设备进行操作的抽象I/O命令,以方便高层对设备的使用;软件/硬件(RW/HW)接口,它的上面是中断处理程序和用于不同设备的设备驱动程序,它的下面是各种设备的控制器。
4.与设备无关性的基本含义是什么?为什么要设置该层?
答:用户不仅可以使用抽象的I/O命令,还可使用抽象的逻辑设备名来使用设备,另一方面,也可以有效地提高OS的可移植性和易适应性,对于OS本身而言,应允许在不需要将整个操作系统进行重新编译的情况下,增加新的设备驱动程序,以方便新的I/O 设备的安装。
5.试说明设备控制器的组成。
答:设备控制器与处理机的接口、设备控制器与设备的接口、I/O逻辑。
6.为了实现CPU与设备控制器间的通信,设备控制器应具备哪些功能?
答:接受和识别命令、数据交换、标识和报告设备的状态、地址识别、数据缓冲区、差错控制。
7.什么是内存映像I/O?它是如何实现的?
答:驱动程序将抽象I/O命令转换出的一系列具体的命令、参数等数据装入设备控制器的相应寄存器,由控制器来执行这些命令,具体实施对I/O设备的控制。
内存映像I/O 在编址上不再区分内存单元地址和设备控制器中的寄存器地址,都采用k。
当k值处于0~n-1时,被认为是内存地址,若k大于等于n时,被认为是某个控制器的寄存器地址。
内存映像I/O方式统一了对内存和对控制器的访问方法,简化了I/O的编程。
8.为什么说中断是OS赖以生存的基础?
答:中断是多道程序得以实现的基础,没有中断,就不可能实现多道程序,因为进程之间的切换是通过中断来完成的。
另一方面,中断也是设备管理的基础,为了提高处理机的利用率和实现CPU与I/O设备并行执行,也必需有中断的支持。
中断处理程序是I/O 系统中最低的一层,它是整个I/O系统的基础。
9.对多中断源的两种处理方式分别用于何种场合?
答:屏蔽(禁止)中断:当处理机正在处理一个中断时,将屏蔽掉所有的中断,即处理机对任何新到的中断请求,都暂时不予理睬,而让它们等待。
直到处理机已完成本次中断的处理后,处理机再去检查是否有中断发生。
若有,再去处理新到的中断,若无,则返回被中断的程序。
该方法中,所有中断都将按顺序依次处理。
嵌套中断:在设置了中断优先级的系统中,按这样的规则来进行优先级控制:当同时有多个不同优先级的中断请求时,CPU优先响应最高优先级的中断请求;高优先级的中断请求可以抢占正在运行的低优先级中断的处理机,该方式类似于基于优先级的抢占式进程调度。
10.设备中断处理程序通常需要完成哪些工作?
答:进行进程上下文的切换,对处理中断信号源进行测试,读取设备状态和修改进程状态。
11.简要说明中断处理程序对中断进行处理的几个步骤。
答:测定是否有未响应的中断信号、保护被中断进程的CPU环境、转入相应的设备处理程序、中断处理、恢复CPU的现场并退出中断。
12.试说明设备驱动程序具有哪些特点。
答:驱动程序是实现在与设备无关的软件和设备控制器之间通信和转换的程序,具体说,它将抽象的I/O请求转换成具体的I/O操作后传送给控制器。
又把控制器中所记录的设备状态和I/O操作完成情况,及时地反映给请求I/O的进程;驱动程序与设备控制器以及I/O设备的硬件特性紧密相关,对于不同类型的设备,应配置不同的驱动程序。
但可以为相同的多个终端设置一个中断驱动程序;驱动程序与I/O设备所采用的I/O控制方式紧密相关,常用的I/O控制方式是中断驱动和DMA方式;由于驱动程序与硬件紧密相关,因而其中的一部分必须用汇编语言书写;驱动程序应允许可重入。
一个正在运行的驱动程序常会在一次调用完成前被再次调用。
13.设备驱动程序通常要完成哪些工作?
答:当设备完成了I/O之后设备控制器向CPU发送一个中断请求CPU响应后即可转向中断处理程序。
中断处理程序的工作可分为以下几步:唤醒等待该I/O的进程、保护被中断进程的CPU运行环境、分析中断原因转入相应的中断处理程序、进行中断处理、恢复被中断进程的现场。
14.简要说明设备驱动程序的处理过程可分为哪几步。
答:将抽象要求转换为具体要求、对服务请求进行校验、检查设备的状态、传送必要的参数、启动I/O设备。
15.试说明推动I/O控制发展的主要因素是什么。
答:随着DMA控制器的出现,从以字节为单位,改为以数据块为单位进行传输,大大地改善了块设备的I/O性能。
I/O通道的出现,又使对I/O操作的组织和数据的传送都能独立进行,而无需CPU的干预。
16.有哪几种I/O控制方式?各适用于何种场合?
答:有使用轮询的可编程I/O方式、使用中断的可编程I/O方式、直接存储器访问方式。
使用轮询的可编程I/O方式:在处理机向控制器发出一条I/O指令,启动输入设备输入数据时,要同时把状态寄存器中的忙/闲标志busy置为1,然后便不断地循环测试busy(称为轮询)。
busy=1,表示输入机尚未输完一个字(符),处理机应继续对该标志进行测试,直至busy=0,表明输入机已将输入数据送入控制器的数据寄存器中。
于是处理机将数据寄存器中的数据取出,送入内存指定单元中,这样便完成了一个字(符)的I/O。
使用中断的可编程I/O方式:当某进程要启动某个I/O设备工作时,便由CPU向相应的设备控制器发出一条I/O命令,然后立即返回继续执行原来的任务。
设备控制器于是按照该命令的要求去控制指定I/O设备。
此时,CPU与I/O设备并行操作。
直接存储器访问方式:数据传输的基本单位是数据块,即在CPU与I/O设备之间,每次传送至少一个数据块、所传送的数据是从设备直接送入内存的,或者相反、仅在传
送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成的。
可见,DMA方式较之中断驱动方式又进一步提高了CPU与I/O设备的并行操作程度。
17.试说明DMA的工作流程。
答:CPU要从磁盘读入一数据块时,便向磁盘控制器发送一条读命令。
该命令被送入命令寄存器CR中。
同时,需要将本次要读入数据在内存的起始目标地址送入内存地址寄存器MAR中。
将要读数据的字(节)数送入数据计数器DC中。
还须将磁盘中的源地址直接送至DMA控制器的I/O控制逻辑上。
然后,启动DMA控制器进行数据传送。
以后,CPU便可去处理其它任务,整个数据传送过程由DMA控制器进行控制。
当DMA 控制器已从磁盘中读入一个字(节)的数据,并送入数据寄存器DR后,在挪用一个存储器周期,将该字(符)传送到MAR所指示的内存单元中。
然后便对MAR内容加1,将DC内容减1,若减1后DC内容不为0,表示传送未完,便继续传送下一个字(节);
否则,由DMA控制器发出中断请求。
18.为何要引入与设备的无关性?如何实现设备的独立性?
答:为了方便用户和提高OS的可适应性与可扩展性,在现代OS的I/O系统中,都无一例外地增加了与设备无关的I/O设备,以实现设备独立性。
实现设备的独立性以物理设备名使用设备、引入了逻辑设备名、逻辑设备名称到物理设备名称的转换。
19.与设备的无关的软件中,包括了哪些公有操作的软件?
答:设备驱动程序的统一接口、缓冲管理、差错控制、对独立设备的分配与回收、独立于设备的逻辑数据块。
20.在考虑到设备的独立性时,应如何分配独占设备?
答:系统为实现对独占设备的分配,必须在系统中配置相应的数据结构。
设备分配中的数据结构,记录了对设备或控制器进行控制所需的信息。
在进行设备分配时需要如下的数据结构:设备控制表DCT:包括用于指示设备类型的字段type和设备标识字段deviceid,设备队列队首指针、忙/闲标志、重复执行次数;控制器控制表;通道控制表;系统设备表。
21.何谓设备虚拟?实现设备虚拟时所依赖的关键技术是什么?
答:设备虚拟是指把独占设备经过某种技术处理改造成虚拟设备。
可虚拟设备是指一台物理设备再采用虚拟技术后,可变成多台逻辑上的的虚拟设备,则可虚拟设备是可共享的设备1,将它同时分配给多个进程使用,并对这些访问该物理设备的先后次序进行控制。
22.在实现后台打印时,SPOOLing系统应为请求I/O的进程提供哪些服务?
答:由输出进程再输出井中为之申请一空闲盘块区,并将要打印的数据送入其中;输出进程为用户进程申请一张空白的用户打印表,并将用户的打印要求填入其中,再将该表挂到请求打印队列上;一旦打印机空闲,输出进程便从请求打印队列的队首取出一张请求打印表,根据表中的要求将要打印的数据从输出井传送到内存缓冲区,再由打印机进行打印。
23.假脱机系统向用户提供共享打印机的基本思想是什么?
答:SPOOLing技术是低速输入输出设备与主机交换的一种技术,通常也称为“假脱机真联机”,他的核心思想是以联机的方式得到脱机的效果。
24.引入缓冲的主要原因是什么?
答:缓和CPU和I/O设备间速度不匹配的矛盾、减少对CPU的中断频率,放宽对CPU中断响应时间的限制、解决数据粒度不匹配的问题、提高CPU和I/O设备之间的并行性。
25.在单缓冲情况下,为什么系统对一块数据的处理时间为max(C,T)+M?
答:在块设备输入时,假定从磁盘把一块数据输入到缓冲区的时间为T,OS将该缓冲区中的数据传送到用户区的时间为M,而CPU对这一块数据处理(计算)的时间为C。
由于T和C是可以并行的,当T>C时,系统对每一块数据的处理时间为M+T;反之则为M+C,故可把系统对每一块数据的处理时间表示为Max(C,T)+M。
26.为什么在双缓冲情况下,系统对一块数据的处理时间为max(T,C)?
答:写入者花费时间将数据写满一个缓冲区后再写另一个缓冲区;读出者花费时间M将一个缓冲区数据送到用户区后再传送另一个缓冲区数据,计算者读出用户区数据进行处理。
由于将数据从缓冲区传到用户区操作必须与读用户区数据处理串行进行,而且可以与从外存传送数据填满缓冲区的操作并行。
因此耗时大约为max(C+M,T)。
考虑M是内存数据块的移动耗时非常短暂可以省略,因此近似地认为系统对一块数据处理时间为max(C,T)。
27.试绘图说明把多缓冲用于输出时的情况。
28.试说明收容输入工作缓冲区和提取输出工作缓冲区的工作情况。
答:收容输入:输入进程可调用Getbuf(emq)过程,从空缓冲队列emq的队首摘下一空缓冲区,把它作为收容输入工作缓冲区hin。
然后,把数据输入其中,装满后再调用Putbuf(inq,hin)过程,将它挂在输入队列inq队列中;
提取输出:输出进程可调用Getbuf(outq)过程,从输出队列的队首取得一装满输出数据的缓冲区,作为提取输出工作缓冲区sout。
在数据提取完后,再调用Putbuf(emq,sout)过程,将它挂在空缓冲队列末尾。
29.何谓安全分配方式和不安全分配方式?
答:安全分配是一种“摒弃请求和保持条件”的资源分配方式。
在这种方式中,一个进程请求资源一旦获得(例如I/O请求时获得所需的设备),该进程就由运行状态变为阻塞状态,使它不可能再请求新资源。
相反,当该进程再开始运行时(例如I/O完成后被唤醒),它已不再占有该资源。
因此,这种分配摒弃了造成死锁的一个条件,分配是安全的。
这种分配方式的缺点时进程推进速度慢,因为进程与I/O是串行的。
不安全的分配方式是指进程在提出字请求时(例如I/O请求)并不将它阻塞,而是允许它继续使用CPU,并提出第二次资源请求。
这样,若第二次请求的资源已被其他今年成占用使该进程被阻塞时,则该进程具备了“请求和保持”条件,可能产生死锁,因而说,这种分配是不安全的分配。
30.磁盘访问时间由哪几部分组成?每部分时间应如何计算?
答:由寻道时间Ts、旋转延迟时间Tτ、传输时间Tt三部分组成。
寻道时间Ts是启动磁臂的时间s与磁头移动n条磁道所花费的时间之和,即Ts=m*n+s; 旋转延迟时间Tτ:对于硬盘,平均旋转延迟时间Tτ为2ms,对于软盘,平均Tτ为50~100ms;传输时间Tt=b/rN。
31.目前常用的磁盘调度算法有哪几种?每种算法优先考虑的问题是什么?
答:有扫描(SCAN)、循环扫描(CSCAN)、NStepSCAN和FSCAN调度算法;
扫描(SCAN):不仅考虑到欲访问的磁道与当前磁道间的距离,更优先考虑的是磁头当前的移动方向;循环扫描(CSCAN):为了减少进程的请求被推迟的情况,CSCAN 算法规定磁头单向移动;N步SCAN是将磁盘请求队列分成若干个长度为N的子队列,磁盘调度将按FCFS算法依次处理这些子队列;FSCAN算法实质上是N步SCAN算法的简化,即FSCAN只将磁盘请求队列分成两个子队列。