IO缓冲技术,IO接口中的数据缓存技术一个作业题

1,IO接口中的数据缓存技术一个作业题输入接口的数据缓冲寄存器的输出端是直接接在数据总线上的 , 如果数据寄存器没有三态输出功能,则无论数据寄存器被寻址选中或未被选中,其数据都会被送上数据总线,若此时总线上真正要传送的数据与该输入缓存器的内容不一致时,就会发生总线冲突 。所以,输入接口的数据缓冲器必须有三态输出功能,以便当接口未被寻址选中时,其输出端处于高阻态 , 从而与总线隔离 。对于输出接口来说,是输入端与数据总线相连,而输出端是与外设相连,因此其输出不影响总线状态;另外,一个外设一般只与一个输出数据缓存起相连,因此输出接口的数据缓存器无须有三态输出功能 。2、8086/8088CPU中哪些寄存器可以用于I/O寻址?若I/O端口地址分别是10H和100H,分别写出向这两个端口写入73H的程序段 。解:8086/8088CPU内可以用于I/O寻址的寄存器为AL、AX和DX 。向端口10H写入73H的程序段为:MOV AL,73HOUT 10H,AL向端口10H写入73H的程序段为:MOV AL,73H MOV DX,100H OUT DX,AL因为它其实不太想要~~~~!
2,什么是缓冲为什么要引入缓冲缓冲是为了协调吞吐速度相差很大的设备之间的数据传送 。引入缓冲的主要原因,可归结为以下几点:1、改善CPU与I/O设备间速度不匹配的矛盾2. 可以减少对 CPU的中断频率,放宽对中断响应时间的限制3. 提高 CPU和 I/O设备之间的并行性常见的缓冲技术有:单缓冲,双缓冲,循环缓冲,缓冲池 。其中,广泛流行使用公用缓冲池 。扩展资料根据系统设置的缓冲器的个数,可把缓冲技术分为:1、单缓冲:在设备和处理机之间设置一个缓冲器 。设备相处理机交换数据时,先把被交换数据写入缓冲器,然后 , 需要数据的设备或处理机从缓冲器取定数据 。2、双缓冲:解决两台外设、打印帆和终端之间的并行操作问题的办法是设置双缓冲 。有了两个缓冲器之后,CPU可把输出到打印机的数据放入其中一个缓冲器(区)、让打印机慢慢打?。蝗缓螅?它又可以从另一个为终端设置的缓冲器(区)中读取所需要的输入数据 。3、多缓冲:是把多个缓冲区连接起来组成两部分,一部分专门用于输入,另一部分专门用于输出的缓冲结构 。4、缓冲池:把多个缓冲区连接起来统一管理,既可用于输入又可用于输出的缓冲结构 。参考资料来源:百度百科-缓冲技术缓和CPU与IO设备间速度不匹配的矛盾减少对CPU的中断频率,放宽对CPU中断响应时间的限制解决数据粒度不匹配的问题提高CPU个IO设备之间的并行性缓冲即是使用专用硬件缓冲器或在内存中划出一个区域用来暂时存放输入输出数据的器件 。引入缓冲是为了匹配外设和CPU之间的处理速度 , 减少中断次数和CPU的中断处理时间,同时解决DMA或通道方式时的数据传输瓶颈问题 。
3,Java中IO缓冲区的原理是什么如果是边读边写,就会很慢,也伤硬盘 。缓冲区就是内存里的一块区域,把数据先存内存里,然后一次性写入,类似数据库的批量操作,这样效率比较高 。调用I\O操作的时候,实际上还是一个一个的读或者写 , 关键就在,CPU只有一个,不论是几个核心 。CPU在系统调用时 , 会不会还要参与主要操作?参与多次就会花更多的时间 。系统调用时,若不用缓冲 , CPU会酌情考虑使用 中断 。此时CPU是主动地,每个周期中都要花去一部分去询问I\O设备是否读完数据,这段时间CPU不能做任何其他的事情(至少负责执行这段模块的核不能) 。所以,调用一次读了一个字,通报一次,CPU腾出时间处理一次 。而设置缓冲 , CPU通常会使用 DMA 方式去执行 I\O 操作 。CPU 将这个工作交给DMA控制器来做,自己腾出时间做其他的事,当DMA完成工作时,DMA会主动告诉CPU“操作完成” 。这时,CPU接管后续工作 。在此,CPU 是被动的 。DMA是专门 做 I\O 与 内存 数据交换的,不仅自身效率高,也节约了CPU时间 , CPU在DMA开始和结束时做了一些设置罢了 。所以,调用一次 , 不必通报CPU,等缓冲区满了 , DMA 会对C PU 说 “嘿,伙计!快过来看看,把他们都搬走吧” 。综上,设置缓冲,就建立了数据块,使得DMA执行更方便,CPU也有空闲,而不是呆呆地候着I\O数据读来 。从微观角度来说,设置缓冲效率要高很多 。尽管,不能从这个程序上看出来 。几万字的读写\就能看到差距如果是边读边写,就会很慢,也伤硬盘 。缓冲区就是内存里的一块区域,把数据先存内存里,然后一次性写入,类似数据库的批量操作,这样效率比较高 。原理就是预先读取字节流存入内存,以后只操作内容,这样效率高道理很简单,假设你要读取一个文本文件输出到屏幕,一次读一个字节,然后赋值给声明的一个变量,那么需要读取很多次,如果用了bufferedreader,就可以一次把所有的字节都读取到缓冲区,然后再一次性赋值给变量,效率自然就提高了,写文件时也一样,一次写一个字,和一次写1篇文章的区别.【IO缓冲技术,IO接口中的数据缓存技术一个作业题】

    推荐阅读