美文网首页
输入输出系统——I/O系统

输入输出系统——I/O系统

作者: i_2c86 | 来源:发表于2018-12-08 22:47 被阅读0次

    1.I/O系统组成

    包括:

    需要用于输入、输出和存储信息的设备;

    需要相应的设备控制器;

    控制器与CPU连接的高速总线;

    有的大中型计算机系统,配置I/O通道;

    管理对象:I/O设备和相应的设备控制器(I/O系统组成)

    基本任务:完成用户提出的I/O请求,提高I/O速率、改善I/O设备的利用率。为更高层进程方便使用设备提供手段

    1. I/O系统的基本功能及模型

    1)主要功能:

    1.隐藏物理设备细节,方便用户

      用户使用抽象的I/O命令即可

    2.实现设备无关性,方便用户

      用户可用抽象的逻辑设备名来使用设备,同时也提高了OS的可移植性和易适应性。

    3.提高处理机和设备的并行性,提高利用率:缓冲区管理

    4.对I/O设备进行控制:控制方式、设备分配、设备处理

    5.确保对设备正确共享:虚拟设备及设备独立性等

    6.错误处理

    2)I/O/系统的层次结构和模型

    层次结构:系统中的设备管理模块分为若干个层次

    层间操作:下层为上层提供服务,完成输入输出功能中的某些子功能,并屏蔽功能实现的细节。

    1)I/O设备的类型

    I/O设备的类型繁多,从OS的观点,按其重要的性能指标进行分类如下:

    按传输速率分类:低速、中速、高速(键盘、打印机、磁盘)

    使用:存储设备、输入输出设备

    按信息交换的单位分类:

    块设备:有结构、速率高、可寻址、DMA方式控制

    字符设备:无结构、速率低、不可寻址、中断方式控制

    3)I/O通道

    主要目的:

    建立更独立的I/O操作,解放CPU。

        数据传送的独立

        I/0操作的组织、管理及结束处理也尽量独立。

    实际上I/O通道是一种特殊的处理机:

       指令类型单一,只用于I/O操作;

       通道没有内存,它与CPU共享内存

    ②通道类型

    根据其控制的外围设备的不同类型,信息交换方式也可分为以下三种类型:字节多路通道、数组选择通道、数组多路通道

    中断:CPU对I/O设备发来的中断信号的一种响应,中断是由外部设备引起的,又称外中断。

    陷入:由CPU内部事件所引起的中断,通常把这类中断称为内中断或陷入(trap)。

    中断和陷入的主要区别:是信号的来源。

    5. I/O控制方式

    程序I/O方式

    中断驱动I/O方式

    直接存储器访问DMA(字节—块)

    I/O通道控制方式(组织传送的独立)

    宗旨:减少主机对I/O控制的干预,将CPU从繁杂的I/O控制事物中解脱出来。

    1)程序I/O方式

    cpu对I/O设备的控制采取程序I/O方式,或称忙—等待方式

    向控制器发送一条I/O指令;启动输入设备输入数据;把状态寄存器busy=1。

    然后不断测试标志。为1:表示输入机尚未输完一个字,CPU继续对该标志测试;直到为0:数据已输入控制器数据寄存器中。

    CPU取控制器中的数据送入内存单元,完成一个字的I/O 。

    高速CPU空闲等待低速I/O设备,致使CPU极大浪费。

    2)中断驱动I/O方式

    CPU向相应的设备控制器发出一条I/O命令

    然后立即返回继续执行任务。

    设备控制器按照命令的要求去控制指定I/O设备。

    这时CPU与I/O设备并行操作。

    I/O设备输入数据中,无需CPU干预,因而可使CPU与I/O设备并行工作。从而提高了整个系统的资源利用率及吞吐量。

    3)直接存储器访问DMA 方式

    ①该方式的特点是:数据传输的基本单位是数据块;所传送的数据是从设备直接送入内存的,或者直接从内存进设备;不需要CPU操作。CPU干预进一步减少:仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成的。

     可见DMA方式又是成百倍的减少了CPU对I/O的干预,进一步提高了CPU与I/O设备的并行操作程度。

    设备独立性的基本含义:

    指应用程序中所使用的设备,不局限于使用某个具体的物理设备,也称为设备无关性。

    为了实现设备独立性,在设备驱动程序之上设置一层软件,称为与设备无关的I/O软件,或设备独立性软件。

    设备无关的软件是I/O系统最高层软件,但它和其下的设备驱动程序之间的界限,将随操作系统和设备的不同而有所差异。

    好处:

    1.设备分配时的灵活性

    3个物理设备(如打印机),程序中申请一台打印机,执行时不拘泥必须是某台(如第2个)打印机

    2.易于实现I/O重定向

    指用于I/O操作的设备可以更换(重定向),而不必改变应用程序。 程序调试、运行中的“打印”,可通过修改逻辑设备表的显示终端,实现不同时候的不同的设备使用。

    6.用户层的I/O软件

    1)系统调用与库函数

    2)设备分配中的虚拟技术—— SPOOLing技术

    假脱机技术

    多道程序技术,专门利用程序模拟脱机I/O的外围机,完成设备I/O操作。

    称这种联机情况下实现的同时外围操作为SPOOLing 技术(Simultaneaus Periphernal Operating On—Line,或称为假脱机操作)

    一般进程对独占设备的需求被假脱机模拟到磁盘上。所以实现设备虚拟,多道是前提,还需高速、大容量、可随机存取的外存支持。

    SPOOLing系统的组成

    主要有三大部分(如下页图)

    1.输入井和输出井:磁盘上开辟两大存储空间。输入井模拟脱机输入的磁盘设备,输出井模拟脱机输出时的磁盘。

    2.输入缓冲区和输出缓冲区:为缓解速度矛盾,内存中开辟两大缓冲空间,输入缓冲区暂存输入设备送来的数据,再送给输入井;输出缓冲区暂存输出井送来的数据,再送输出设备。

    3.输入进程和输出进程。

    用一进程模拟脱机输入时外围设备控制器的功能,把低速输入设备上的数据传送到高速磁盘上;

    用另一进程模拟脱机输出时外围设备控制器的功能,把数据从磁盘上传送到低速输出设备上。

    SPOOLing系统的组成

    SPOOLing技术的使用:

    当用户进程请求打印输出时,SPOOLing系统同意为它打印输出,但并不真正立即把打印机分配给用户进程,而只为它做两件事:

    ①由输出进程在输出井中为之请求一个空闲磁盘块区,并将要打印的数据送入其中.

    ②输出进程再为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入其中,再将该表挂在请求打印队列上.

    SPOOLing系统的特点

    1.提高了I/O的速度。利用输入输出井模拟成脱机输入输出,缓和了CPU和I/O设备速度不匹配的矛盾。

    2.将独占设备改造为共享设备。并没有为进程分配设备,而是为进程分配一存储区和建立一张I/O请求表。

    3.最终,实现了虚拟设备功能。多个进程可“同时”使用一台独占设备。

    缓冲管理

    I/O控制方式减少CPU对I/O的干预提高利用率;

    缓冲则通过缓和CPU和I/O设备速度不匹配矛盾,增加CPU和I/O设备的并行性,提高利用率。

    现代OS中,几乎所有的I/O设备与处理机交换数据时,都用了缓冲区。

    引入缓冲区的主要原因:

    缓和CPU与I/O设备间速度不匹配的矛盾。

    缓冲区数据成批传入内存,也可进一步减少对CPU的中断频率

    最终目的:提高CPU和I/O设备的并行性。

    使用缓冲区的方式:

    1)单缓冲、多缓冲

    2)循环缓冲

    3)缓冲池(Buffer Pool)

    访问磁盘过程

    对磁盘的访问总是由缺页引起的:

    CPU给出地址,需要访问某存储单元;

    并行进行TLB查找和cache查找;

    TLB查找后申明没有找到;

    停止并行查找,并通知操作系统处理;

    操作系统检查页表,发现该页不在内存中,需要从硬盘调入。

    下一步,操作系统继续申请总线(如果还保持总线控制权,则不必申请)。

    得到授权后,向磁盘发出读命令。 

    然后,磁盘识别地址,并转换为相应的地址段。

    寻道,将读/写头移动到指定位置。

    从指定扇区中读去数据,并进行校验。

    磁盘申请I/O总线。

    得到授权后,将数据通过总线送到内存。

    相关文章

      网友评论

          本文标题:输入输出系统——I/O系统

          本文链接:https://www.haomeiwen.com/subject/jcpchqtx.html