(16)作业指定独占设备的方式包括直接指定设备绝对号和指定设备类与相对号两种。 (17)指定绝对设备号的方式使设备分配的适应性好、灵活性强,用户程序中经常使用。 (18)在unix系统中,标准输入和标准输出都是终端设备,即键盘和显示器。 (19)在unix系统中,使用“>”或“》”可以使输出重定向,“<”可以使输入重定向。
(20)在unix系统中,管道pipe是连接在进程间的可共享文件。
(21)在unix系统中,Shell文件相当于MS-DOS的批处理文件,直接执行即可。 2、填空:通道技术的引入,实现了(处理器与设备的)并行、(设备与设备的)并行、(进程与进程的)并行。
3、把设备作为特殊文件处理,系统可以不必提供设备驱动程序。 4、下面关于设备属性的论述中正确的是(2)
(1)字符设备的一个基本特性是可寻址的,即能指定输入时的源地址和输出时的目标地址;(2)共享设备必须是可寻址的和可随机访问的设备;(3)共享设备是指在同一时刻内,允许多个进程同时访问的设备;(4)在分配共享设备和独占设备时,都可能引起死锁。
5、以下关于外部设备的说法,错误的是(4)
(1)外部设备分为存储型和I/O型两种。(2)存储型设备可以作为内存的扩充,信息传送单位为块。(3)I/O型设备负责内存与外设之间的信息传递,信息传输的单位是字符。(4)存储型设备一般属于共享设备,而I/O型设备则属于独占设备。 6、下面关于设备管理的论述中正确的是(1,2,3)
(1)所以外设的启动工作都是由系统统一来做。(2)来自通道的I/O中断事件由设备管理负责处理。(3)编制好的通道程序存放在内存中。(4)由用户给出的设备编号是设备的绝对号。
7、计算机系统启动设备是按(3)来启动的。
(1)设备名;(2)设备相对号;(3)设备绝对号;(4)设备地址
5.2 I/O控制
1、I/O控制发展的主要推动因素是什么?
答:(1)力图减少CPU对I/O操作的干预,把CPU从繁重的I/O控制中解脱出来,以充分发挥CPU数据处理的能力;(2)缓和CPU的高速性和I/O设备的低速性之间速度不匹配的矛盾,以提高CPU的利用率和系统吞吐量;(3)提高CPU和I/O设备的并行程度,使他们处于忙碌状态。
5.3缓冲管理
1 高速缓存和缓冲区的区别:
两者都是介于一个高速设备和一个低速设备之间的,但是它们之间有着很大的区别:(1)两者存放的数据不同。高速缓存上放的是低速设备上某些数据的一个拷贝,即高速缓存上有的数据低速设备上一定有;而缓冲区则是放置低速设备传递给高速设备的数据,然后再从缓冲区送到高速设备,而在低速设备上不一定有备份;(2)两者的目的不同:高速缓存是为了
31
存放低速设备上经常要被访问的数据,如果不能命中,高速设备仍然要访问低速设备;而缓冲区是为了缓和高速设备与低速设备间速度不匹配的矛盾而设置的,高速设备和低速设备间通信每次都要经过缓冲区,高速设备不会直接去访问低速设备。 2、判断:换冲技术是借用外存储器的一部分区域作为缓冲池。 3、在缓冲区实现机制中,为什么要将缓冲区的头部和缓冲体分开?
提示:(1)使系统更加安全,不会产生越界访问;(2)可以提高访问效率,比如将头部放入cache,可以减少缓冲区查找时间。
4、在某系统中,从磁盘将一块数据输入到缓冲区需要花费的时间为T,cpu对一块数据进行处理的时间为C,将缓冲区的数据传送到用户区所花的时间为M,那么单缓冲和双缓冲情况下,系统处理大量数据是,一块数据的处理时间为多少? 5、UNIX中是如何进行块设备缓冲区管理的?
6、判断:缓冲技术是以空间换取时间,而且只能在设备使用不均衡时起到平滑作用(对) 7、在多用户系统中,实现减排驱动程序需要字符缓冲技术,请给出两种实现字符缓冲的方法。
8、若数据输入一缓冲区的设计tio始终大于对该数据的处理时间tc或者反之。试问,对上述两种情况各应采取哪种缓冲区较为合适?
答:若tio大于tc,采用单缓冲;反之,应采用循环缓冲或者缓冲池。 9、unix如何管理缓冲区?
答:unix分别为字符设备和块设备设置了缓冲区。(1)字符设备缓冲区管理:系统设置了一组字符缓冲区,供各种字符设备使用。其中,每个缓冲区的大小为70字节,包括4项:第一个字符位置,最后一个字符位置,指向下一个缓冲区的指针,余下的64个字节存放数据。所有空闲缓冲区链接成一个队列。缓冲区的分配和释放均可在链首处进行。(2)块设备缓冲区管理:类似缓冲池管理。每个缓冲区分成两部分:用于存放管理控制信息的缓冲首部和存放数据的缓冲区,两者一一对应,但物理上不相连,而是独立存储,只是在缓冲首部中用一个指针指向对应的缓冲区。缓冲首部还包括设备号和块号,以分别指出对应的文件系统和磁盘上的数据块。为了对缓冲区进行管理,系统设置一个双向链接的空闲链表,系统初启时,将所有的缓冲区首部链入空闲链表中。为了加速对缓冲区的查找,系统把所有缓冲区按设备号及块号所计算的散列值组织成多个散列队列,每个散列队列仍是一个双向链表。由于每一个缓冲区都在一个散列队列中,而空闲缓冲区又应链入空闲缓冲区队列,因此一个空闲缓冲区可同时链入两个队列中,从而使对一空闲缓冲区的查找可通过两种方式进行:A 若要获取任意一个空闲缓冲区,从空闲链首摘下一个即可;B 若要寻找一特定的空闲缓冲区,则搜索散列队列更方便。
10、假定吧磁盘上一个数据块中信息输入到一单缓冲区的时间T为100μs,将缓冲区中数据传送到用户区的时间M为50μs,而CPU对这一块数据进行计算的时间C为50μs,这样系统对每一块数据的处理时间为(150μs),如果将单缓冲改为双缓冲,则系统对每一块数据的处理时间为(100μs)。
5.4 I/O软件的设计目标
补充内容:中断处理:
32
(1)中断的概念:所谓中断是指CPU对系统发生的某个事件做出的一种反应,它使CPU暂停正在执行的程序,保留现场后自动执行相应的处理程序,处理该事件后,再返回断点继续执行被“打断”的程序。
引起中断的事件称为中断源。中断源向CPU提出的处理请求称为中断请求,发生中断时,被打断的程序的暂停点称为断点。 (2)中断类型:
1)按功能划分:(1)机器故障中断,如机器校验错、电源故障、主存出错;(2)I/O中断,如打印机输出结束中断、磁盘传输出错中断;(3)外中断,如计时部件发生的计时中断;(4)程序性中断,如非法操作码、算术溢出、除数为0,地址越界等;(5)访管中断,如分配内存,分配外设进行I/O操作。 2)按中断事件来源划分:
目前,很多小型机系统和微型机系统都采用这种分类方式。①中断:它是由CPU以外的事件引起的,如I/O中断、时钟中断、控制台中断等。利用中断实现设备与CPU的通信。中断是异步的,因为从逻辑上讲,中断的产生与当前正在执行的进程无关。②异常:它是来自CPU内部的事件或程序执行中的事件引起的过程。如CPU本身故障、通路校验错、主存奇偶错、非法操作码、地址越界、页面失效、调试指令、算术操作溢出、程序故障、访管指令等引起的事件。异常是同步的,又分为出错、陷入和可编程异常。出错和陷入之间最重要的区别是处理完异常事件返回时,出错事件会重新执行导致异常的那条指令,如缺页故障;而陷入事件不会重新执行那条指令它主要用于程序调试。可编程异常是由于用户在C程序中使用了系统调用而引发的过程。异常是不能被屏蔽的,一旦出现应立即响应并加以处理。
(3)中断处理过程:
①中断响应(硬件即中断装置操作):中断处理是由软硬件结合实现的。发生中断时,CPU暂停执行当前的程序,转去处理中断。这个由硬件对中断请求作出反应的过程,称为中断响应。通常,CPU执行完一条指令后,立即检查有无中断请求(A 判别自愿性中断,只要检查操作码是否为访管指令;B 判别强迫性中断,则要检查中断寄存器内容。若为0,则无中断;若非0,则表示有中断事件发生。)。若有,而且“中断允许”触发器为1(表示CPU可以响应中断请求),则立即做出响应。一般来说,中断响应顺序执行下述三步动作: 1)暂停当前程序的执行;
2)保存原程序的断点信息(主要是PC计数器的值和程序状态字的内容);
每个程序都有一个程序状态字(PSW)来反映本状态的执行状态,如基本状态(下一条指令的地址、条件码、管态/目态、计算/等待等)、中断码和中断屏蔽位等内容。处理器设有一个“程序状态字寄存器”用来存放当前运行程序的PSW。程序状态字可分为当前PSW(当前正在占用处理器的进程的PSW)、旧PSW(保存的被中断进程的PSW)和新PSW(中断处理程序的PSW)。
当出现中断事件后,把被中断进程的PSW保存为旧PSW,即完成断点信息保护。
33
3)转到相应的中断处理程序:CPU接到中断后,就从中断控制器中得到中断号,使用中断号查询中断向量表(里面存放了中断处理程序的入口地址和中断处理时的程序状态字PSW),然后转入中断处理程序。
中断装置通过“交换PSW”过程完成此项任务,即把出现的中断事件存放到当前PSW中断码位置,然后把该当前PSW保存为旧PSW,再把操作系统中断处理程序的新PSW送到程序状态字寄存器中,成为当前的PSW.
②中断处理:
中断响应后就由软件(中断处理程序)进行相应处理。操作系统的中断处理程序对中断事件进行处理时,大致要做三方面的工作: 1)保护被中断进程的现场信息: 把中断时的通用寄存器,控制寄存器内容及旧PSW保存到被中断进程的进程控制块中或内存中一个专门设置的中断现场保护栈中。 2)分析中断原因:
根据旧PSW的中断码可知发生该中断的具体原因。 3)处理发生的中断事件
核心调用中断处理程序,对中断进行具体处理。例如,调用终端中断处理程序ttyintr,判断终端输入输出是否正常完成。如果正常完成,则驱动程序便可做结束处理;如果还有数据要传送,则继续进行传送;如果是异常结束,则根据异常原因作相应处理。
4)恢复现场:
相应中断处理程序执行以后,要退出中断。
A 选取可以立即执行的进程。通常,退出中断后,应恢复到原来被中断的进程断点继续执行。如果原来被中断的进程是在核心态下工作,则不进行进程切换,因为进程在核心态下运行的是操作系统程序,涉及整个系统资源的管理,需要优先执行。如果原来被中断进程是用户态进程,且此时系统中存在比它优先级更高的进程,则重新进行调度。
B 恢复工作现场:把先前保存在中断现场区中的信箱(如PC、PSW,各通用寄存器中的信息等)取出复原。从时间顺序上讲,先恢复环境信息(各通用寄存器内容),再恢复控制信息(PC、PSW)。通常,使用一条不可中断的特权指令来复原控制信息。 (3) 中断优先级和中断屏蔽
1) 中断优先级 是硬件设计时确定的。中断装置按预定的顺序来响应同时出现的中断事件,这个预定的顺序称为“中断优先级”。中断优先级是按中断事件的重要性和紧迫程度来确定的 ,是由硬件设计时固定下来的。一般情况下,优先级的高低顺序依次为: 硬件故障中断 、 自愿中断 、 程序性中断 , 外部中断和输入输出中断 . 2)中断的嵌套处理
3)中断屏蔽的作用。中断优先级只是规定了中断装置响应同时出现的中断的次序,当中断装置响应了某个中断后中断处理程序在进行处理时,中断装置也可能去响应另一个中断事件。因此会出现优先级低的中断事件的处理打断优先级高的中断事件的处理,使得中断事件的处理顺序与响应顺序不一致,而且会形成多重嵌套处理,使多现场保护、程序返回等工作变的复杂。
中断屏蔽技术就是为了解决上述问题而提出的在一个中断处理没有结束之前不响应其他中断事件,或者只响应比当前级别高的中断事件。于是,当中断装置检查到有中断事件后,便去查看PSW中中断屏蔽标志,如果没有屏蔽就响应该中断;否则,暂时不响应该中断,待屏蔽标志消除后再响应。自愿中断是不能屏蔽的。
4)中断禁止:是指在可引起中断的事件发生时系统部接收该中断信号,因而就不可能
34
提出中断请求而导致中断,就是不让某些事件产生中断。它常用在执行某些特殊工作的条件下,如求余运算,算术运算中强制忽略某些中断,如定点溢出等。在中断禁止的情况下,CPU正常运行,根本不理睬所发生的那些事件。
从概念上讲,中断屏蔽和中断禁止是不同的。前者表示硬件接受了中断,但系统暂时不响应,要延迟一段时间,待中断开放后,被屏蔽的中断就能被响应并得到处理。而后者,硬件不准许事件提出中断请求,从而使中断被禁止。
1、I/O软件通常设为四个层次:用户空间I/O软件、设备独立性软件、设备驱动程序和中断处理程序,问以下各项工作是在哪个层次上完成的? (1)用户进程请求打印一个输出文件;
(2)将一维磁盘块号转换为三维物理地址(柱面、磁道和扇区) (3)获得设备驱动程序的入口地址; (4)将终端输入的字符转换为ASCII码; (5)设备驱动进程被唤醒; (6)向设备寄存器写命令;
(7)检查用户是否有权使用设备;
(8)将二进制整数转化成ASCII码以便打印。(用户层) (9)维护一个最近使用块的缓存。
2、当中断发生后,进入终端处理的程序属于(用户程序;可能是用户程序,也可能是os程序;os程序;) 3、判断:在中断处理过程中,必须屏蔽中断(错)
4、由系统通过逻辑设备表实现逻辑设备到物理设备的映射。当更换物理设备时,用户的程序不用改,仅修改逻辑设备表。
5、计算机中断系统中,断点、恢复点与PC寄存器之间的关系是什么?中断源有哪些基本类型?
提示:引起中断的事件称为中断源,中断源通常由硬件发现。中断处理程序是由操作系统处理的,属于操作系统的组成部分。
6、计算机系统中判别是否有中断事件发生应是在( B ) A.进程切换时 B.执行完一条指令后
C.执行P操作后 D.由用户态转入核心态时
7、中断装置的职能主要有三点: 1)检查是否有中断事件发生。 2)若有中断发生,保护好被中断进程的断点及现场信息,以便进程在适当时候能恢复驼行。 3)启动操作系统的中断处理程序。
8、引起I/O中断的事件有(1,2)。(选项:数据传送完毕;设备出错;设备正在处理数据;指令错;缺页;访存越界)
9、如果有多个中断同时发生,系统将根据中断优先级响应优先级最高的中断请求。若要调整中断事件的响应次序,可以利用()。(选项:中断禁止;中断嵌套;中断响应;中断屏蔽) 10、当用户程序执行访管指令时,中断装置将使CPU():维持在用户态;维持在核心态;从核心态转换到用户态;从用户态转换到核心态。
35