本博客为本人自己总结相关知识写的,如有雷同,纯属巧合。
I/O系统结构分类如下:
外存设备控制器:光盘、磁带、磁盘;
输出设备控制器:CRT、激光打印机、行式打印机、点阵打印机、色彩打印机、音箱;
过程控制器:过程控制I/O设备;
通信控制器:数据通信设备;
输入设备控制器:键盘、鼠标器、语音输入、光笔、扫描仪、图像输入设备、其他。
I/O特点:1)I/O性能经常成为系统性能的瓶颈;2)操作系统庞大复杂原因之一:资源多、杂,并发,均来自I/O;3)与其他功能联系密切,特别是文件系统
设备分类:块设备(与数据块为单位存储、传输信息;传输速率较高、可寻址(随机读写));字符设备(以字符为单位存储、传输信息;传输速率低、不可寻址);
存储设备举例:磁盘、磁带等;传输设备:网卡,Modem等;人机交互设备:显示器、键盘、鼠标
资源分配角度分类:
独占设备:低速I/O设备,如打印机,磁带等;
共享设备:如硬盘等;
虚设备:将慢速的独占设备改造成多个用户可共享的设备,提高设备的利用率。SPOOLing技术
I/O管理的目标和任务:
1)按照用户的请求,控制设备的各种操作,完成I/O设备与内存之间的数据交换,最终完成用户的I/O请求;
2)建立方便、统一的独立于设备的接口;
3)充分利用各种技术(通道,中断,缓冲,异步I/O等)提高CPU与设备、设备与设备之间的并行工作能力,充分利用资源,提高资源的利用率;
4)保护。
I/O设备的组成:机械和电子两部分。
设备结构——控制器作用:
操作系统将命令写入控制器的结构寄存器(或接口缓冲区)中,以实现输入/输出,并从接口寄存器读取状态信息或结果信息。
控制器的任务:把串行的位流转换为字节块,并进行必要的错误修正:首先,控制器按位进行组装,然后存入控制器内部的缓冲区中形成以字节为单位的块;在对块验证检查和并证明无错误时,再将它复制到内存中。
I/O指令形式与I/O地址是相互关联的,主要形式:内存映像编址(内存映像I/O模式);I/O独立编址(I/O专用指令)
I/O独立编址指分配给系统中所有端口的地址空间完全独立,与内存地址空间无关;使用专门的I/O指令对端口进行操作。优点:外设不占用内存的地址空间,编程时,易于区分是对内存操作还是对I/O端口操作。缺点:I/O端操作的指令类型少,操作不灵活。
内存映像I/O模式指分配给系统中所有端口的地址空间与内存的地址空间同一编址;把I/O端口看作一个存储单元,对I/O的读写操作等同于对内存的操作。优点:凡是可对内存操作的指令都可对I/O端口操作;不需专门的I/O指令;I/O端口可占有较大的地址空间。缺点:占用内存空间。
内存映射I/O的优点:1)不需要特殊的保护机制来阻止用户进程执行I/O操作;可以引用内存的每一条指令也可以引用控制寄存器。
内存映射I/O的缺点:1)对一个设备控制寄存器不能进行高速缓存;2)硬件和操作系统需要控制高速缓存。
I/O控制方式:1)可编程I/O(轮询/查询);2)中断驱动I/O;3)DMA
I/O演化:
1)CPU直接控制外围设备;
2)增加了控制器或I/O部件,CPU使用非中断的可编程I/O;
3)增加控制器或I/O部件,CPU使用中断的可编程I/O;
4)I/O部件通过DMA直接控制存储器;
5)I/O部件增强为一个单独的处理器,有专门为I/O设计的指令集;CPU指导I/O处理器执行内存中的一个I/O程序。
6)I/O部件有自己的局部存储器(其本身就是一台计算机)。
I/O软件设计
分层的设计思想
1)把I/O软件组织成多个层次;2)每一层都执行操作系统所需要的功能的一个相关子集,它依赖于更低一层所执行的更原始的功能,从而可以隐藏这些功能的细节;同时,它又给高一层提供服务;3)较低层考虑硬件的特性,并向较高层软件提供接口;4)较高层不依赖于硬件,并向用户提供一个友好的、清晰的、简单的、功能更强的接口。
I/O软甲层次:用户级I/O软件;与设备无关的OS软件;设备驱动程序;中断处理程序;硬件;驱动程序的统一接口;缓冲;错误报告;分配与释放设备;提供与设备无关的块大小。
设备独立性:从用户角度(用户在编制程序时,使用逻辑设备名,由系统实现从逻辑设备到物理设备(实际设备)的转换,并实施I/O操作);从系统角度(设计并实现I/O软件时,处理直接与设备打交道的底层软件之外,其他部分的软件不依赖与硬件)。
缓冲技术解决问题如下:1)解决CPU与I/O设备之间速度的不匹配问题;2)提高CPU与I/O设备之间的并行性;3)减少了I/O设备对CPU的中断请求次数,放宽CPU对中断响应时间的要求。
缓冲区分类:硬缓冲和软缓冲
缓冲区管理:单缓冲、双缓冲和缓冲池。
采用缓冲池技术,可平滑和加快信息在内存和磁盘之间的传输。缓冲区结合提前读和延迟写技术,对具有重复性及阵发性I/O进程、提高I/O速度很有帮助。可以充分利用之前从磁盘读入、虽已传入用户区,但仍在缓冲区的数据(尽可能减少磁盘I/O的次数,提高系统运行的速度)。
设备管理有关的数据结构
1)描述设备、控制器等部件的表格;
2)建立同类资源的队列;
3)面向进程I/O请求的动态数据结构;
4)建立I/O队列。
设备分配:
静态分配(在进程运行前,完成设备分配,运行结束时,收回设备,设备利用率低);
动态分配(在进程运行过程中,当用户提出设备要求时,进行分配,一旦停止使用立即收回,效率好,缺点是分配策略不好,产生死锁)
分时式共享指以一次I/O为单位分时使用设备,不同进程的I/O操作请求以排队方式占用设备进行I/O。
提高CPU使用性能:应使CPU利用率尽可能不被I/O降低;使CPU尽可能摆脱I/O。
减少或缓解速度差距:缓冲技术;
使CPU不等待I/O:异步I/O;
让CPU摆脱I/O操作:DMA、通道;
Windows提供同步和异步两种模式的I/O操作。异步模式:用于优化应用程序的性能;同步I/O:应用程序被阻塞直到I/O操作完成。