全部科目 > 软件设计师 >
2024年上半年 上午试卷 综合知识
第 16 题
知识点 中断处理程序   I/O控制方式   键盘  
章/节 计算机软件知识  
 
 
在微型计算机中,管理键盘最适合采用的 I/O控制方式是(   )方式。
 
  A.  DMA
 
  B.  无条件传送
 
  C.  程序查询
 
  D.  中断
 
 




 
 
相关试题     I/O软件 

  第26题    2019年下半年  
以下关于I/O软件的叙述中,正确的是(26)。

  第3题    2022年上半年  
为了实现多级中断,保存程序现场信息最有效的方法是使用()。

  第3题    2018年上半年  
计算机运行过程中,遇到突发事件,要求CPU暂时停止正在运行的程序,转去为突发事件服务,服务完毕,再自动返回原程序继续执行,这个过程称为(3),其处理过程中保存现场的目的是(4)。

 
知识点讲解
· 中断处理程序
· I/O控制方式
· 键盘
 
        中断处理程序
        中断处理程序的作用是,当I/O操作结束时,唤醒驱动程序。中断处理过程如下。
        (1)CPU检查响应中断的条件是否满足。
        (2)如果CPU响应中断,则CPU关中断,使其进入不可再次响应中断的状态。
        (3)保存并中断进程的现场。
        (4)分析中断原因,调用中断处理子程序。
        (5)执行中断处理子程序。
        (6)退出中断,恢复被中断进程的现场或调度新进程占据CPU。
        (7)开中断,CPU继续执行。
 
        I/O控制方式
        I/O设备的控制方式主要有三种:程序循环检测、中断驱动和直接内存访问。
               程序循环检测方式
               程序循环检测方式的基本思路是:在程序当中,通过不断地检测输入/输出设备的当前状态,来控制一个输入/输出操作的完成。具体来说,在进行输入/输出操作之前,要循环地去检测该设备是否已经就绪。如果是,就向控制器发出一条命令,启动这一次的输入/输出操作。然后,在这个操作的进行过程中,也要循环地去检测设备的当前状态,看它是否已经完成。总之,在I/O操作的整个过程中,控制I/O设备的所有工作都是由CPU来完成的。这种方式也称为是繁忙等待方式或轮询方式。它的缺点主要是:在进行一个输入/输出操作的时候,要一直占用着CPU,这样就会浪费CPU的时间。
               下图是循环检测方式的一个例子。假设I/O地址采用的是内存映像编址方式,现在需要在打印机上打印一个字符串“ABCDEFGH”。对于操作系统来说,要完成这个任务,其实很简单,只要把这8个字符一个接一个地送到打印机设备的I/O端口地址就可以了。如下图(a)所示,这8个字符被保存在系统内核的一个缓冲区当中,并用指针p来指向它们。status_reg这个内存单元对应于打印机控制器里面的状态寄存器,data_register这个内存单元对应于它的数据寄存器,现在要做的事情,就是把这8个字符一个接一个地放到数据寄存器当中。
               
               程序循环检测方式的例子
               上图(b)是相应的程序。它的基本思路是:逐个地去打印字符。在打印一个字符之前,首先用一个while语句来检测打印机的当前状态,看它是否已经就绪。如果还没有就绪,就在这里循环等待;如果已经就绪,就把当前的字符送入到打印机的数据寄存器当中。在本例中,由于采用了内存映像的编址方式,因此,在程序员眼中,状态寄存器和数据寄存器都被看成是普通的内存单元,对它们的访问也是普通的赋值操作,不需要专门的I/O指令。但是这个赋值操作的功能和普通的赋值操作不同,它相当于是给打印机发出了一个命令,让它去打印一个字符。另外,每次打印完一个字符后,都要重新判断设备是否就绪。因为相对于CPU来说,打印机是一个慢速设备,它在执行打印命令时,不可能像CPU那么快,而是需要一定的时间来完成。因此,当CPU把一个字符交给它之后,必须循环等待一段时间,才能去处理下一个字符。
               中断驱动方式
               中断驱动方式的基本思路是:当一个用户任务需要进行输入/输出操作时,会去调用相应的系统调用函数,由这个函数来发起输入/输出操作,并将当前任务阻塞起来,然后调度其他的任务去使用CPU。当所需的输入/输出操作完成时,相应的设备就会向CPU发出一个中断,系统在中断处理程序当中,如果发现还有数据需要处理,就再次启动输入/输出操作。在中断驱动的控制方式下,数据的每一次读写还是通过CPU来完成,只不过当输入/输出设备在进行数据处理时,CPU不必在那里等待,而是可以去执行其他的任务。
               仍以打印字符为例,如下图所示,在中断驱动方式下,对于用户程序来说,它所做的事情可能是:把需要打印的字符串放到一个缓冲区buffer中,然后调用一个系统调用函数print。在print系统调用中,首先把用户缓冲区中的字符串复制到系统内核的字符数组p当中,然后打开中断。接下来是一个循环检测语句,判断打印机的当前状态是否就绪。当打印机就绪后,就把第一个字符放到数据寄存器里面去打印。接下来,未等该字符打印完,就去调用系统的调度器,选择另一个就绪任务去运行。而当前的这个任务,就会被阻塞起来。
               
               中断驱动示例
               当打印机完成一个字符后,将向CPU发出一个中断。在中断处理程序当中,首先判断一下,如果所有的字符都已打印完,那么就去阻塞队列中,把用户任务唤醒,使它处于就绪状态。如果还有字符需要打印,就直接把下一个字符复制到打印机的数据寄存器当中,启动打印操作,而不需要再去循环地判断打印机是否就绪。接下来是一些后继处理,先向中断控制器发出一个确认信号,然后结束中断处理程序,返回到被中断的那个任务。
               直接内存访问方式
               直接内存访问(Direct Memory Access,DMA)方式的基本思路是:让DMA控制器来代替CPU,完成输入/输出设备与内存之间的数据传送,从而释放CPU时间,去运行其他的任务。
               仍以打印字符为例,如下图所示。在DMA控制方式下,用户程序所做的事情是完全相同的,即把字符串复制一个缓冲区buffer当中,然后调用系统打印函数。在打印函数当中,首先也是把buffer当中的字符串复制到系统内核的缓冲区当中。然后对DMA控制器进行编程,设置它的各个寄存器的内容,包括内存起始地址、需要打印的字符个数、数据传输的方向等。之后,打印函数就完成了任务,因此就调用系统的调度程序,选择另一个就绪任务去运行,而当前的这个任务就会被阻塞起来。接下来,当CPU正在执行这个新任务的同时,DMA控制器会与设备控制器进行交互,把需要打印的字符,逐个地送到打印机控制器当中。在所有的字符都打印完之后,就向CPU发出一个中断,表明这一次的I/O操作已经全部完成了。因此,在中断处理程序里面,已经没有什么实质性的工作。先是向中断控制器发出一个确认信号,然后唤醒刚才被阻塞的任务。
               
               直接内存访问的例子
               采用DMA控制方式的最大优点是减少了中断的次数。原本每打印一个字符,都要产生一次中断,而现在当所有的字符都打印完后,才会产生一个中断,从而减少了中断处理的开销。
 
        键盘
        键盘的结构通常有两种形式:线性键盘和矩阵键盘。在不同的场合下,这两种键盘均得到了广泛的应用。
        线性键盘由若干个独立的按键组成,每个按键的一端与微机的一个I/O口相连。有多少个键就要有多少根连线与微机的I/O口相连,因此,只适用于按键少的场合。矩阵键盘的按键按NM列排列,每个按键占据行列的一个交点,需要的I/O口数目是N+M,容许的最大按键数是N×M。显然,矩阵键盘可以减少与微机接口的连线数,简化结构,是一般微机常用的键盘结构。根据矩阵键盘的识键和译键方法的不同,矩阵键盘又可以分为非编码键盘和编码键盘两种。
        非编码键盘主要用软件的方法识键和译键。根据扫描方法的不同,可以分为行扫描法、列扫描法和反转法3种。
        编码键盘主要用硬件来实现键的扫描和识别,通常使用8279专用接口芯片,在硬件上要求较高。



更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2023 All Rights Reserved
软考在线版权所有