操作系统之I/O

输入输出的目的:提供一个人际交互的通道


输入输出的分类:

    块设备:磁盘,光盘,U盘,磁带,按数据块为单位进行处理

   字符设备:鼠标,键盘,打印机,网络界面,字符不可寻址

   当然,一个设备可以同时作为块和字符设备,例如,网络界面


   输入输出设别的差异性:

      传输速度的不同

   设备控制器:分为机械部分和电子部分,

     设备控制器的任务:1 控制设备的物理运行 2.将序列字位流转化为字节块流 3 进行纠错操作

  输入输出设备通常还有缓冲区

 

   物理I/O模式:


 根据cpu与设备控制器沟通方式以及与内存的不同关系来分

   1 专有通道I/O: I/O和内存完全脱离,每个控制寄存器被赋予一个I/O端口,

        优点: 与内存分开,输入输出不会干扰内存操作

       缺点:进行内存访问与进行输入输出的指令不同,程序员必须要用特定的语言来进行I/O

  2. 内存映射的I/O:将I/O映射到内存里面,从而使得I/O和内存管理得到统一,就是将I/O设备的每个控制寄存器和设备缓冲区寄存器赋予一个唯一的内存地址,对这些地址的访问就是对输入输出设备的访问

      缺点:1.O控制寄存器被当做内存来看待,对于控制寄存器来说,是一个缺点,因操作系统在读控制寄存器时需要的是最新的内容,而不是缓存的内容

                 2.线竞争,在单总线系统里, 内存和设备间均需要对总线上的数据进行监听,以确定命令是否是针对自己,这样讲产生总线竞争而降低系统效率

 3 复合I/O模式


根据cpu在I/O过程中的涉入程度进行分类


1 繁忙等待访问:


2 直接内存访问 (DMA,Direct Memory Access)

      如果按数据块进行I/O,即需要传输大量数据时,就无需CPU的介入,我们可以让I/O设备与计算机内存进行直接数据交换,而CPU可以去忙别的事情

     DMA输入输出的过程如下:

          1.CPU对DMA进行设置,告诉其I/O的起始地址和数据长度

          2.启动DMA过程

         3.DMA进行数据传输

         4.DMA结束后发出中断

         5.CPU相应中断并处理结束事宜

   DMA需要使用内存总线,而CPU也需要使用内存总线,这样讲行程内存总线竞争

   还有一个问题是如何寻址内存?是使用虚拟地址还是使用物理地址,使用物理地址速度快,但是绕过了MMU存在安全和可靠性风险

         优点:将主CPU从I/O中解脱出来,而缺点自然是增加了成本和复杂性,下述情况下应该选择使用主CPU:设备输入输出速度非常高,主CPU没有其他事情可以做,成本考虑


设备驱动程序

  

      

 

  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值