首页 > 知识点讲解
       I/O软件
知识路径: > 嵌入式系统软件基础知识 > 嵌入式操作系统基础知识 > 设备管理 > 设备驱动程序 > 
被考次数:2次     被考频率:低频率     总体答错率:49%     知识难度系数:     
相关知识点:5个      
        设备管理软件的设计水平决定了设备管理的效率,为了更好地管理系统当中各式各样的I/O设备,在软件上通常采用分层的体系结构,把各种设备管理软件组织成一系列的层次。其中,低层软件是面向硬件的,与硬件特性密切相关,它把硬件和上层的软件隔离开来。而较高层的软件是面向用户的,负责向用户提供一个友好、清晰、统一的编程接口。一般来说,这个层次结构可以分四层:中断处理程序、设备驱动程序、设备独立的I/O软件和用户空间的I/O软件。
               中断处理程序
               中断处理程序与设备驱动程序密切配合,来完成特定的I/O操作。当一个用户程序需要某种输入/输出服务时,它会去调用相应的系统调用函数,而这个函数又会去调用相应的设备驱动程序。然后,在驱动程序中会启动输入/输出操作,并且被阻塞起来。直到这个I/O操作完成,之后将产生一个中断,并跳转到相应的中断处理程序。然后在中断处理程序中,将会唤醒被阻塞的驱动程序。至于阻塞和唤醒的具体实现,可以采用各种任务间通信的方式,如P、V原语。
               在中断处理过程中,还需要执行如下指令,如保存CPU的运行上下文、为中断服务子程序设置一个运行环境、向中断控制器发出应答信号以及执行相应的中断服务子程序等,这些都需要一定的时间开销。
               设备驱动程序
               设备驱动程序是直接同输入/输出设备交互,直接对它们进行控制的软件模块。设备驱动程序的基本任务就是接收来自于上层I/O软件的抽象请求,并且去执行这个请求。例如,抽象的读操作、写操作、设备的初始化操作等。上层的I/O软件通过这些抽象的函数接口与设备驱动程序打交道,这些接口是标准的、稳定不变的。而硬件设备的具体细节被封装在设备驱动程序里面。这样,即使硬件设备发生了变化,只要更新相应的设备驱动程序即可,不会影响到上层软件对它的使用。
               设备驱动程序与具体的设备类型密切相关。每一个I/O设备都需要相应的设备驱动程序,而每一个设备驱动程序一般也只能处理一种类型的设备。因为对于不同类型的设备,它们的控制方式是不同的。例如,对于一个鼠标驱动程序来说,它需要从设备控制器中读取各种各样的信息,包括鼠标移动的位置、哪一个键被按下了等等。而对于一个磁盘驱动程序来说,它为了进行磁盘的读写操作,就必须知道扇区、磁道、柱面、磁头等各种各样的参数,并使用这些参数来控制磁盘控制器。
               一般而言,在具体实现一个设备驱动程序的时候,可以采用一种通用的结构。
               (1)检查输入的参数是否有效,如果无效,就返回一个出错报告;如果有效,就把输入的抽象参数转换为控制设备所需要的具体参数。
               (2)检查设备当前是否空闲,如果设备正忙,那么这一次的I/O请求就暂时没法完成,因此把它加入等待队列,稍后再处理。如果设备空闲,再检查硬件的状态,看是否具备了运行的条件。
               (3)设备驱动程序向设备控制器发出一连串的命令,即把这些命令写入到控制器的各个寄存器当中。
               (4)在发出控制命令后,如果这个I/O操作需要一定的处理时间,不能马上完成,那么驱动程序就会把自己阻塞起来,直到I/O操作完成。这时会发生一个中断,在这个中断处理程序里面把驱动程序唤醒。
               (5)I/O操作完成后,驱动程序还要检查出错情况。若一切正常,就返回一些状态信息给调用者。如果这是一个输入操作,还要把输入的数据上传给上一层的系统软件。
               事实上,实时内核的I/O系统的作用就像一个转换表,把用户对I/O的请求转换到相应的设备驱动程序。这样,驱动程序就能获得最原始的用户请求,并对设备进行操作。
               设备独立的I/O软件
               在设备驱动程序的上面,是设备独立的输入/输出软件。它是系统内核的一部分,主要任务是实现所有设备都需要的一些通用的输入/输出功能,并向用户级的软件提供一个统一的访问接口。具体来说,在这个层面上实现的功能主要有:设备驱动程序的管理、与设备驱动程序的统一接口、设备命名、设备保护、缓冲技术、出错报告以及独占设备的分配和释放。
               设备驱动程序的管理通过驱动程序地址表来实现。驱动程序地址表中存放了各个设备驱动程序的入口地址,可以通过此表来实现设备驱动的动态安装与卸载。
               操作系统的一个主要问题就是如何使各种I/O设备和设备驱动程序的处理方式大致相同,从而方便系统的设计和用户的使用,实现设备独立性。因此,I/O系统通常会提供一个统一的调用接口,包含了一些常用的设备操作,如设备初始化、打开设备、关闭设备、读操作、写操作、设备控制,等等。在I/O设备的命名规则上,可以采用统一命名的方式,然后由设备独立的I/O软件来负责把设备的符号名映射到相应的设备驱动程序。
               缓冲技术是操作系统当中很重要的一种技术,它的基本思想是:在实现数据的输入/输出操作时,为了缓解CPU与外部设备之间速度不匹配的矛盾,提高资源的利用率,可以在内存当中开辟一个空间,作为缓冲区。当需要从设备读取数据时,先到缓冲区中去查找,如果能够找到,就不用去访问外设了。同样,往设备中写入数据时,也是先写到缓冲区中。这样,如果马上又要用到这些数据,就可以直接从缓冲区中去取。缓冲技术是一种实用、有效的技术,因为对于I/O设备的访问,也会满足程序的局部性原理,即在访问设备数据的时候,在一小段时间内,可能会集中地访问其中的若干个数据块。所以设置缓冲区可以减少对I/O设备的访问,从而提高系统的性能。在具体实现上,缓冲技术可以分为单缓冲、双缓冲、多缓冲和环形缓冲。
               用户空间的I/O软件
               通常大部分的I/O软件都是包含在操作系统当中,是操作系统的一部分,但也有一小部分的I/O软件,它们运行在系统内核之外。这主要可以分为两种:
               .与用户程序进行链接的库函数。例如,在C语言中与输入/输出有关的各种库函数。不过,对于这些库函数,它们在具体实现的时候,其实是把传给它们的参数再往下传递给相应的系统调用函数,然后由后者来完成实际的输入/输出操作。
               .完全运行在用户空间当中的程序。例如,Spooling技术是在多道系统中,一种处理独占设备的方法。
               Spooling(simultaneous peripheral operations on line)是外围设备联机操作的缩写,常称为Spooling技术、假脱机技术或虚拟设备技术,它可以把一个独占的设备转变为具有共享特征的虚拟设备,从而提高设备的利用率。它的基本思想是:在多道系统当中,对于一个独占的设备,专门利用一道程序,即Spooling程序,来增强该设备的输入/输出功能。具体来说,一方面,Spooling程序负责与这个独占的I/O设备进行数据交换,这可以称为实际的I/O操作。另一方面,应用程序在进行I/O操作时,只是和这个Spooling程序交换数据,这可以称为虚拟的I/O操作。此时,它实际上是与Spooling程序当中的缓冲区打交道,从中读出数据或往里写入数据,而不是直接地跟实际的设备进行I/O操作。
               Spooling技术的优点有两个:第一,它能提供高速的虚拟输入/输出服务。应用程序的虚拟输入/输出比实际的输入/输出速度要快,因为它只是在两个任务之前的一种通信,把数据从一个任务交给另一个任务,这种交换是在内存中进行的,而不是真正地让机械的物理设备去运作,这样就能缩短应用程序的执行时间;第二,它能实现对独占设备的共享,也就是说,由Spooling程序提供虚拟设备,然后各个用户任务就可以对这个设备依次地共享使用。
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。


工作时间:9:00-20:00

客服

点击这里给我发消息 点击这里给我发消息 点击这里给我发消息

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


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