Windows操作系统笔记设备管理.doc
文本预览下载声明
I/O设备管理
设备管理 —— 输入输出控制方式、设备分配、缓存和中断。
现代计算机系统由CPU和若干设备控制器通过共同的总线相连而成,该总线提供了对共享内存的访问(图 51)。每个设备控制器负责一种特定类型的设备。
图 51 典型的PC总线结构
设备管理的基本任务是,按照用户的要求来控制I/O设备,完成用户所希望的输入输出要求。下面以打印机为例,说明设备管理所需要考虑的一些问题。
1)设备管理应为某类设备提供相应的设备驱动程序
要打印作业,首先需要打印机,把打印机与主机连接后并不能马上可以使用。除了考虑硬件连接,还要考虑软件因素。只有在打印机驱动程序的管理下,打印机才能真正运作起来。
关于驱动:
驱动程序是一种特殊的程序。首先其作用是将硬件本身的功能告诉操作系统,接下来的主要功能就是完成硬件设备电子信号与操作系统及软件的高级编程语言之间的互相翻译。当操作系统需要使用某个硬件时,比如:让声卡播放音乐,它会先发送相应指令到声卡驱动程序,声卡驱动程序接收到后,马上将其翻译成声卡才能听懂的电子信号命令,从而让声卡播放音乐。所以简单的说驱动程序提供了硬件到操作系统的一个接口以及协调二者之间的关系,而因为驱动程序有如此重要的作用,所以驱动程序被形象的称为“硬件和系统之间的桥梁”。图 52(a)。
很显然,对于轮询,主机很少发现有准备好的设备,同时其他需要使用处理器处理的工作又不能完成,则效率就会变差。这时,如果让设备准备好时再通知处理器而不是由CPU轮询外设是否完成,那么效率就会更高。能使外设通知CPU的硬件机制称为中断。
中断方式:
中断就是指当某个事件发生时,向系统发送一个中断信号,于是系统中止现行程序的运行,转去执行相应的中断处理程序,完成后返回断点继续执行,见图 52(b)。
由于CPU在响应中断后,还需要时间来执行中断服务程序。当每次传送满数据寄存器的时候,就要向CPU发送一次中断请求,如果连续传送一块较大的数据块,则需要经过多次中断,让CPU把大量的时间都浪费在处理中断上,导致效率不能得到很好发挥。中断一般用于低速外设,对于高速外设的访问,一般采用DMA方式。
DMA方式:
直接内存访问是一种硬件机制,它允许外围设备和主内存之间直接传输它们的I/O数据,而不需要CPU的干预。整个数据块的传输在一个称为DMA控制器的控制下完成,仅在传送一个或多个数据块的开始或结束时,才需要CPU处理。使用这种机制可以大大提高与设备通信的吞吐量,见图 52(c)。
图 52 输入输出方控制式
关于DMA的工作方式:
1)当某一进程要求设备输入数据时,CPU把准备存放输入数据的内存地址及要传送的字节数据分别送入DMA控制器中的内存地址寄存器和传送字节计数器。2)在DMA控制器的控制下,按内存地址寄存器的内容把数据缓存器的数据源源不断地写入到相应的内存单元,直至所有的数据传送完毕。3)输入完成后,DMA控制器通过中断请求线发出中断信号,CPU接收到后转交给中断处理程序善后处理。
、缓冲和Spooling技术
引入缓冲技术的主要原因是为了缓和CPU和外设速度不匹配的矛盾。根据缓冲区设置个数的多少,可以分为单缓冲、双缓冲、环形缓冲和缓冲池。
Spooling又称假脱机技术,它是关于慢速字符设备如何与计算机主机进行数据交换的一种技术Spooling技术的核心思想是利用一台可共享、高速、大容量的块设备来模拟独占设备的操作,使一台独占设备变成多台可并行使用的虚拟设备。Spooling系统主要由输入井、输入缓冲区输出缓冲区输入进程和输出进程三部分组成。在Spooling系统中输入进程将用户要求的数据从输入设备送到输入井,当CPU需要输入数据时,直接从输入井将数据读入内存;输出进程把用户要求输出的数据先从内存送到输井,待输出设备空闲时,再将输出井中的数据输出到设备上图 53。
图 53 Spooling系统示意图
下面以打印机为例,说明Spooling的工作原理。
若有进程要求对它打印输出时,系统并不是将这台打印机直接分配给进程,而是在共享设备(磁盘)上的输出存储区中为其分配一块存储空间,进程的输出数据以文件形式存放于此。各进程的数据输出文件形成了一个输出队列,由输出系统控制这台打印机进程,依次将队列中的输出文件实际打印输出。在系统中,实际上并没有为任何进程分配,而只是在输入井和输出井中,为进程分配储区和建立一张I/O请求表。这样,便把独占设备改造为共享设备图 54。
图 54 打印机的Spooling技术
第2页
显示全部