当前位置:首页 > 典型习题和题例分析与解答 - 图文
3.3 典型习题和题例分析与解答
题3.1 简要举出集中式串行链接、定时查询和独立请求3种总线控制方式的优缺点,同时分析硬件产生故障时通讯的可靠性。
[解答] 集中式串行链接的3种总线控制方式的优缺点,可参照本章3.2节内容要点 2中的2)的有关内容解答。
下面只就硬件产生故障时,对通讯的可靠性问题进行分析。
串行链接对通讯的可靠性,主要表现于“总线可用”线及其有关电路的失效会造成系统 整体瘫痪的问题。一旦“总线可用”线出现断路或碰地,其高电压不能顺链往下传送,就会 使后面的部件在要求使用总线时,其请求无法得到响应。为了提高可靠性,可以对“总线可 用”线及其相关电路,采取重复设置两套或多套的方法来解决。
定时查询对通讯的可靠性要比串行链接的高。因为总线控制器通过计数,查询到某个 出故障的部件时,故障部件不会给出“总线忙”信号。这样,不会影响控制器继续计数,去 查询下一个部件,所以整个总线系统的工作不会瘫痪。
独立请求对通讯的可靠性同样比串行链接的高。因为某个部件在发生故障时不发总线 请求,或即使发出总线请求,总线控制器也可以通过软件或硬件的措施,特发生故障的部件送来的请求屏蔽掉,使之不让其参与总线的分配。所以,某个部件的故障不会导致整个系统的工作处于瘫痪状态。
题3.2 设中断级屏蔽位“1”对应于开放,“0”对应于屏蔽,各级中断处理程序的中断级屏蔽位设置如表3.1所示。
(1)当中断响应优先次序为l→2→3→4时,其中断处理次序是什么? (2)如果所有的中断处理都各需3个单位时间,中断响应和中断返回时间相对中断处 理时间少得多。当机器正在运行用户程序时,同时发出第2、3级中断请求,经过两个单位时间,又同时发生第1、4级中断请求,试画出程序运行过程示意图。
表3.1 中断处理程序级别 1 2 3 4 1 0 1 1 1 2 0 0 0 0 中断级屏蔽位 3 0 1 0 1 4 0 1 0 0
[分析]为了领会中断响应排队器对中断响应的优先次序是用硬件固定的,以及通过由操作系统给各中断级服务程序现行程序状态字中的中断级屏蔽位设置不同的状态,可以改变中断处理(完)的次序这两个要点,图3.1给出了一个中断响应硬件部分的简单逻辑原理示意图。图中略去了某些实现上的具体细节,因为这些已不是本课程要讨论的内容。
中断级屏蔽位是程序状态字中的一个组成部分。程序状态字是将散布于系统各部分, 反映程序工作时某些关键性硬件的状态,组合在一起所构成的字,有的计算机也称其为处 理器状态字或程序换道区。每类程序均在主存中指定一个区域来放置其程序状态字。运行 一个程序或进程时,就会将其程序状态字从主存指定单元或区域取出送到分散于系统各部 分的寄存器或计数器中,建立起运行此程序或进程的环境。一个程序或进程在退出运行 时,也会将反映该程序状态的这些寄存器或计数器内容组拼成程序状态字,存回该程序或
进程在主存中的指定单元或区域里.因此,程序或进程的切换,只需要通过硬件启动的交 换新旧程序状态字的内容即可快速完成。例如在IBM 370系列机上,程序状态字为64位, 等于它的长字,交换程序状态字只需硬件启动经写长字和读长宇二次访存即可完成。
尽管中断请求是随机发出的,为了便于精确保存中断的断点以及在中断处理完后又能 返回到原中断处,中断响应排队器总是在每条指令执行到最后一个机器周期的最后一个时 钟周期时,对目前到达中断响应排队器入口的所有中断请求排一次队,择优进行响应。在 中断响应排队器相应的输出端产生出响应信号,此信号经中断级服务程序入口地址形成硬 件,生成该级中断服务程序的程序状态字在内存区中所存放的地址。同时,经中断响应控 制信号启动,进行新旧程序状态字的交换,完成程序的切换.被中断的程序的断点地址(即 程序计数器的内容),由硬件自动压入返回地址堆栈,予以保存。系统切换到新的程序或进 程后,继续运行下去,如果新的程序或进程是一个中断服务程序,在运行结束,执行到中 断返回指令时,就会从堆栈中弹出所保存的返回地址.再次交换程序状态字,系统又重新 返回到原先被中断的程序,恢复运行。
当然,低级的中断服务程序在处理过程中又遇到了比其更高级的中断请求时,应允许 其被中断,以实现多级中断的嵌套。利用返回地址堆栈的后进先出工作方式,就可以完成
中断嵌套时的正确返回。可以看出,只要某道程序运行时,由操作系统在现行程序的程序 状态字中,根据对各中断级的中断请求是否屏蔽,设置好中断级屏蔽位的状态,就可以控 制这些级别的中断请求是否进入中断响应排队器去参加排队。只有能进入中断响应排队器 的中断级请求,才有机会得到响应,从而就可改变中断实际处理完的次序。
应当注意的是,用户程序是不能屏蔽任何中断的。因此,用户程序的现行程序状态字 中,对各级中断级的屏蔽位,均应让其处于“开放”状态。
根据本题所给出的各级中断处理程序对中断级屏蔽位设置的状况,很容易得出其中断 处理(完)的次序应当是1→3→4→2。因为正处理l级的中断处理程序时,现行程序状态字 中的中断级屏蔽位为0000,在其执行期间,任何新的同级和低级的中断请求都不可能进入 中断响应排队器进行排队,所以,1级中断处理程序一定会先处理完。当执行3级中断服 务程序时,由于现行程序状态字中的中断级屏蔽位为1000,即对l级中断请求是“开放” 的,而对其它各级中断请求则处于“屏蔽”状态,所以,只要此时发生1级中断请求,它就 能进入中断响应排队器去排队。从而在中断请求排队的微操作发出时,就可打断3级中断 服务程序的执行,交换程序状态字。转去执行1级中断处理程序,使之被优先处理完。而在执行3级中断服务程序时,由于现行程序状态字对2、3、4级的中断请求处于被“屏蔽”的状态,所以,它们都不能打断正在执行的3级中断处理程序。其它的情况也就可以依此类推得到。
[解答] (1) 当中断响应优先次序为l→2→3→4时,中断处理(完)的次序为1→3→4→2。 (2) 由题目所给出的条件,其CPU运行程序的过程示意田如图3.2所示。图中,粗短 线部分代表进行交换程序状态字的时间,△t为1个单位时间。
题3.3 若机器共有5级中断,中断响应优先次序为l→2→3→4→5,现要求其实际的中断处理次序为l→4→5→2→3。
(1) 设计各级中断处理程序的中断级屏蔽位(令“1”对应于屏蔽,“0”对应于开放);
(2) 若在运行用户程序时,同时出现第4、2级中断请求,而在处理第2级中断未完成 时,又同时出现第l、3、5级中断请求,请画出此程序运行过程示意图。 [分析] 根据题意,中断级屏蔽位“l”对应于屏蔽,“0”对应于开放,实际上就是在图 3.1中,控制各级中断请求进入中断响应排队器入口端的与门控制端是接在各中断级屏蔽 位触发器的“0”输出端而已,并无实质上的不同。此外,正在处理某级中断服务程序时,与其同级的新的中断请求是不能被响应的,应当予以屏蔽,这是因为两者既然是属于同一优先级的,则先来的中断请求理所应当先得到响应并被处理完。所以,根据所要求的中断处;理(完)的次序,各级中断处理程序现行状态字中各中断级屏蔽位的状态就很容易被设置出来。
[解答] (1) 各级中断处理程序中的中断级屏蔽位的设置,如表3.2所示。
(2) 由已知条件可得程序运行过程的示意图如图3.3所示。图中,粗短线表示交换程序状态宇的时间。
表3.2
中断处理程序级别 1 2 3 4 5
1 1 0 0 0 0 2 1 1 0 1 1 中断级屏蔽位 3 1 1 1 1 1 4 1 0 0 1 0 5 1 0 0 1 0
共分享92篇相关文档