操作系统第五章输入输出管理5.1I/O管理概述

目录

5.1.1 I/O设备

1.设备的分类

按信息交的单位分类

按传输速率分类(没有固定,不太常考)

2.I/O接口(设备控制器)

主要功能

主要组成部分

3. I/O端口

        为实现CPU和I/O端口进行通信,有下面两种方式。

5.1.2 I/O控制方式

1.程序直接控制方式

        1)完成一次读/写操作的流程(如下图)。

         2)CPU干预的频率

        3)数据传送的单位

        4)数据的流向

        5)主要优缺点

2.中断驱动方式

           1)完成一次读/写操作的流程(如下图)

           2)CPU干预的频率

           3)数据传送的单位

           4)数据的流向

           5)主要优缺点

3.DMA方式

           1)完成一次读/写操作的流程(如下图)

           2)CPU干预的频率

           3)数据传送的单位(不一样)

           4)数据的流向

           5)主要优缺点

4.通道控制方式

         1)完成一次读/写操作的流程(如下图)。

         2)CPU干预的频率

         3)数据传送的单位     

         4)数据的流向(通道的控制下进行)

         5)主要优缺点

5.1.3 I/O软件层次结构

        1)用户层软件

         2)设备独立软件

      3)管理逻辑设备表


5.1.1 I/O设备

I/O设备就是可以将数据输入到计算机,或者可以接收计算机输出数据的外部设备/

1.设备的分类

信息交的单位分类

        1) 块设备。信息交换以数据块为单位。属于有结构设备。

                 举例:磁盘。

                 磁盘特点:传输速率较高可寻址(可以对它随机地读/写任意一块)。

        2)字符设备。信息交换以字符为单位。属于无结构设备。

                 举例:交互式终端机,打印机。

                 特点:传输速率不可寻址,时常采用中断I/O方式

传输速率分类(没有固定,不太常考)

        1)低速设备。如键盘,鼠标。

        2)中速设备。如激光打印机。

        3)高速设备。磁盘机,光盘机。

2.I/O接口(设备控制器)

主要功能

        接收和识别CPU发出来的命令;数据交换;标识和报告设备状态。

        地址识别;数据缓冲;差错管理。

主要组成部分

        1)设备控制器与CPU的接口。该接口有三类信号线:数据线,地址线,控制线。

              数据线通常连接数据寄存器控制/状态寄存器(存放CPU送来的控制信息或设备状态信

              息)。

        2)设备控制器与设备的接口。一个设备控制器可以连接一个或多个设备,因此控制器中有                 一 个或多个设备接口。每个接口中有数据,控制,状态三种信号。

        3)I/O逻辑。用于实现对设备的控制。CPU启动设备时,将启动命令发送给控制器,同时通                  过地址线发送给控制器,由控制器的I/O逻辑对地址译码,并相应地对所选设备进行控制

3. I/O端口

        设备控制器中能够被CPU直接访问的寄存器。主要有下列三类

        1)数据寄存器。

        2)状态寄存器。

        3)控制寄存器。

        为实现CPU和I/O端口进行通信,有下面两种方式。

                1)独立编址。为每个端口分配一个端口号,所有I/O端口形成I/O端口空间,普通用户程                        序不能对其访问,只有操作系统使用特殊的I/O指令才能访问端口。

                2)统一编址。又称内存映射I/O,为每个端口分配一个唯一的内存地址,且不会有内存                        被分配这一地址,通常分配给端口的地址靠近地址空间顶端

       

5.1.2 I/O控制方式

1.程序直接控制方式

        1)完成一次读/写操作的流程(如下图)。

         2)CPU干预的频率

                很频繁,I/O操作开始之前,完成之后需要CPU的介入,并且在等待I/O完成过程CPU 需                   不断轮询检查。

        3)数据传送的单位

                每次读/写一个字。

        4)数据的流向

                读操作(数据输入):I/O设备->CPU寄存器->内存。

                写操作(数据输出):内存->CPU->I/O设备。

                每个字的读写都需要CPU的帮助。

        5)主要优缺点

                优点:实现简单。在读/写指令之后,加上循环检查的一系列指令即可。

                           (被称为程序直接控制方式的原因)。

                缺点:CPU和I/O设备只能串行工作,CPU需要一直轮询检查,长期处于忙等状态CPU                               利用率低。

2.中断驱动方式

           1)完成一次读/写操作的流程(如下图)

                        注意:CPU会在每个指令周期的末尾检查中断。

                                   中断过程中需要保存,恢复进程的运行环境。(需要一定时间开销)。

                                   等I/O设备完成一次读/写操作后可以不执行之前因要完成该操作而被阻塞的                                     进程。

           2)CPU干预的频率

                        I/O操作开始之前,完成之后需要CPU的介入,并且在等待I/O完成过程CPU可以切                          换到别的进程执行。

           3)数据传送的单位

                        每次读/写一个字。

           4)数据的流向

                       读操作(数据输入):I/O设备->CPU寄存器->内存。

                       写操作(数据输出):内存->CPU->I/O设备。

           5)主要优缺点

                      优点:

                        I/O控制器会通过中断信号主动报告I/O已经完成,CPU不需要不停的轮询。

                        CPU和I/O设备可并行工作,CPU利用率得到明显提升。

                      缺点:每个字在I/O设备与内存之间的传输,都需要经过CPU。而频繁的中断处理会                                   消耗较多的CPU时间。

3.DMA方式

        直接存储器存取。

        DMA控制器(如图)

        

           1)完成一次读/写操作的流程(如下图)

           2)CPU干预的频率

                      仅在传送一个或多个块的开始或结束时,才需要CPU干预。

           3)数据传送的单位(不一样)

                        每次读/写一个块或多个块。(注意每次读写的只能是连续的多个块,且这些块读                            入内存后在内存中也必须是连续的)。

           4)数据的流向

                       读操作(数据输入):I/O设备->内存。

                       写操作(数据输出):内存->I/O设备。

           5)主要优缺点

                      优点:

                       数据传输以块为单位,CPU介入频率进一步降低。数据的传输不再需要先经                                     过CPU再写入内存。CPU和I/O设备并行性得到提升。

                      缺点:CPU每发出一条I/O指令,只能读/写一个或多个连续的块。如果要读非连续                                     的,要发出多条指令。

4.通道控制方式

一个通道可以控制多个I/O控制器,一个I/O控制器又可以控制多个I/O设备。

通道:一种硬件,简易CPU,执行指令单一,通道程序放在内存中也就是通道与CPU共享内存

                

            1)完成一次读/写操作的流程(如下图)。

                        

           2)CPU干预的频率

                        极低,通道根据CPU指示执行相应的通道程序,只有完成一组数据块的读/写后需                            要发出中断信号,请求CPU干预。

          3)数据传送的单位     

                        每次读/写一组数据块。

          4)数据的流向(通道的控制下进行)

                       读操作(数据输入):I/O设备->内存。

                       写操作(数据输出):内存->I/O设备。

         5)主要优缺点

                        缺点:实现复杂,需要专门的通道硬件支持。

                        优点:CPU,通道,I/O设备可以并行工作,资源利用率高。

5.1.3 I/O软件层次结构

        考点如图

        1)用户层软件

                        实现与用户交互的接口,将用户请求翻译成格式化的I/O请求,并通过“系统调用”请                          求操作系统内核的服务。

         2)设备独立软件

                        又称系统调用层,设备无关性软件。

                        实现功能:

                                向上层提供统一的调用接口。

                                设备的保护。

                                差错处理。

                                设备分配与回收。

                                数据缓冲区管理。

                                建立逻辑设备名到物理设备名的映射关系:根据设备类型选择调用相应的驱                                    动程序。通过逻辑设备表来映射(LUT)。

                     管理逻辑设备表

                      第一种:

                               整个系统只设置一张LUT,有意味着所有用户不能使用相同的逻辑                                                   设备名,因此只适用用于单用户操作系统。

                     第二种:

                               为每个用户设置一张LUT,各个用户使用的逻辑设备名可以重复,                                                    适用多用户操作系统。LUT放在PCB中。

        3)设备驱动程序

                        驱动程序一般会以一个独立进程的方式存在。

                        负责对硬件设备的具体控制,讲上层发出的一系列命令转化成特定设备能听的懂的                          一系列操作。包括设置设备寄存器,检查设备状态。

        4)中断处理程序

                        当I/O任务完成时,I/O控制器会发送一个中断信号,系统会根据中断信号类型找到                          相应的中断处理程序并执行。

5.1.4 应用程序接口

        1)输入/输出应用程序接口

                        向用户层提供

                        1.字符设备接口:get/put系统调用:向字符设备读/写一个字符

                        2.块设备接口:read/write系统调用;向块设备的读写指针位置读/写多个字符,

                                                seek系统调用:修改读写指针位置。

                        3.网络设备接口:socket系统调用:创建一个网络套接字,需指明网络协议。

                                                     bind:将套接字绑定到某个本地端口

                                                     connect:将套接字连接到远程地址。

                                                     read/write:从套接字读/写数据。

         概念:什么是阻塞/非阻塞I/O?

                    阻塞I/O:应用程序发出I/O系统调用,进程转为阻塞态等待。例如,键盘。

                    非阻塞I/O:应用程序发出I/O系统调用,系统调用可迅速返回,进程无需阻塞等待。

                                        如,块设备接口——磁盘。

      2)设备驱动程序接口

                       驱动程序向设备独立性软件提供设备驱动程序接口。

                       操作系统规定好设备驱动程序的接口标准,各厂商必须按要求开发设备                                           驱动程序。

        

                                                  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值