首页 > 编程知识 正文

操作系统中io操作是什么,设备io的方式有如下三种

时间:2023-05-06 14:41:36 阅读:240297 作者:2062

操作系统之IO设备详解 一、I/O设备的概念和分类 一、I/O设备的基本概念和分类

二、什么是I/O设备 “I/O" 就是”输入/输出“(Input/Output)I/O设备就是可以将数据输入到计算机,或者可以接收计算机输出数据的外设,属于计算机中的硬件部分。


三、I/O设备的分类–按使用特性

四、I/O设备的分类–按传输速率分类

五、I/O设备的分类–按信息交换的单位分类

六、知识回顾

二、I/O控制器 一、知识总览

二、I/O设备的机械部件 I/O设备的机械部件主要用来执行具体I/O操作。如我们看得见摸得着的鼠标/键盘的按钮;显示器的LED屏;移动硬盘的磁臂、磁盘盘面。I/O设备的电子部件通常以一块插入主板扩充槽的印刷电路板。 三、I/O设备的电子部件(I/O控制器) CPU无法直接控制I/O设备的机械部件,因此I/O设备还要有一个电子部件作为CPU和I/O设备机械部件之间的“中介”,用于实现CPU对设备的控制。这个电子部件就是I/O控制器,又称设备控制器。CPU可控制I/O控制器,又由I/O控制器来控制设备的机械部件。
四、I/O控制器的组成

值得注意的小细节: 一个I/O控制器可能会对应多个设备;数据寄存器、控制寄存器、状态寄存器可能有多个(如:每个控制/状态寄存器对应一个具体的设备),且这些寄存器都要有相应的地址,才能方便CPU操作。有的计算机会让这些寄存器占用内存地址的一部分,称为内存映像I/O;另一些计算机则采用I/O专用地址,即寄存器独立编址。 五、内存映像 I/O VS 寄存器独立编址

六、知识回顾

三、I/O控制方式 一、知识总览

需要注意的问题: 完成一次读/写操作的流程CPU干预的频率数据传送的单位数据的流向主要缺点和主要优点。 二、程序直接控制方式


三、中断驱动方式


四、DMA方式 与“中断驱动方式”相比,DMA方式(Direct Memory Access, 直接存储器存取。主要用于块设备的I/O控制),有这样几个改进: 数据的传送单位是“块”, 不再是一个字、一个字的传送。数据的流向是从设备直接放入内存,或者从内存直接到设备。不再需要CPU作为“快递小哥”。仅在传送一个或多个数据块的开始和结束时,才需要CPU干预。
五、DMA控制器

六、DMA方式

七、通道控制方式 通道:一种硬件,可以理解为是“弱鸡版的CPU”。通道可以识别并执行一系列通道指令。


八、知识回顾

四、I/O软件层级结构 一、知识总览

二、用户层软件

三、设备独立性软件

设备独立性软件,又称设备无关性软件。与设备的硬件特性无关的功能几乎都是在这一层实现。

主要实现功能:

向上层提供统一的调用接口(如read/write 系统调用)

设备的保护。原理与文件保护类似。设备被看做是一种特殊的文件,不同用户对各个文件的访问权限是不一样的,同理,对设备的访问权限是不一样的。

差错处理。设备独立性软件需要对一些设备的错误进行处理。

设备的分配与回收。

数据缓冲区管理。可以通过缓冲技术屏蔽设备之间数据交换单位大小和传输速度的差异。

建立逻辑设备名到物理设备名的映射关系;根据设备类型选择调用相应的驱动程序。

用户或用户层软件发出I/O操作相关的系统调用时,需要指出此次要操作的I/O设备的逻辑设备名。(eg:去学校打印店打印时,需要徐泽打印机1/打印机2/打印机3,其实这些都是逻辑设备名)设备独立性软件需要通过“逻辑设备表(LUT,Logical Unit Table)”来确定逻辑设备对应的物理设备,并找到该设备对应的设备驱动程序。

四、为何不同的设备需要不同的设备驱动程序 各式各样的设备,外形不同,其内部的电子部件(I/O控制器)也有可能不同。


五、设备驱动程序

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

六、中断处理程序

七、知识回顾


五、核心子系统 一、知识总览

二、这个功能要在哪个层次实现

三、I/O调度

四、设备保护

六、假脱机技术(SPOOLing技术) 一、什么是脱机技术

手工操作阶段:主机直接从I/O设备获得数据,由于设备速度慢,主机速度很快。人机速度矛盾明显,主要浪费很多时间来等待设备。

二、假脱机技术–输入井和输出井 “假脱机技术”,又称“SPOOLing技术”是用软件的方式模拟脱机技术。SPOOLing系统的组成如下:


三、共享打印机原理分析 独占是设备–只允许各个进程串行使用的设备。一段时间内只能满足一个进程的请求。共享设备–运行多个进程“同时”使用的设备(宏观上同时使用,微观上可能是交替使用)。可以同时满足多个进程的请求。


四、知识总览

七、设备的分配与回收 一、知识总览

二、设备分配是应考虑的因素

设备的固有属性可分为三种:独占设备、共享设备、虚拟设备。独占设备–一个时段只能分配给一个进程(如打印机)共享设备–可同时分配给多个进程使用(如磁盘),各进程往往是宏观上同时共享使用设备,而微观上交替使用。虚拟设备–采用SPOOLing技术将独占设备改造成虚拟的共享设备,可同时分配给多个进程使用(如采用SPOOLing技术实现的共享打印)设备的分配算法: 先来先服务优先级高者优先短任务优先 从进程运行的安全性考虑,设备分配有两种方式: 安全分配方式:为进程分配一个设备后就将进程阻塞,本次I/O完成后才将进程唤醒。(eg:考虑进程请求打印机打印输出的例子) 一个时段内每个进程只能使用一个设备优点:破坏了“请求和保持”条件,不会死锁缺点:对于一个进程来说,CPU和I/O设备只能串行工作 不安全分配方式:进程发出I/O请求后,系统为其分配I/O设备,进程可继续执行,之后还可以发出新的I/O请求。只有某个I/O请求得不到满足时才将进程阻塞。 一个进程可以同时使用多个设备优点:进程的计算任务和I/O任务可以并行处理,使进程迅速推进缺点:有可能发生死锁(死锁避免、死锁的检测和解除) 三、静态分配和动态分配 静态分配:进程运行前为其分配全部所需资源,进行结束后归还资源 破坏了“请求和保持”条件,不会发生死锁 动态分配:进程运行过程中动态申请设备资源 四、设备分配管理中的数据结构 设备、控制器、通道之间的关系:

一个通道可控制多个设备控制器,每个设备控制器可控制多个设备。设备控制表(DCT):系统为每个设备配置一张DCT,用于记录设备情况。

“进程管理”章节中增加提到过“系统会根据阻塞原因不同,将进程PCB挂到不同的阻塞队列中”。

控制器控制表(COCT):每个设备控制器都会对应一张COCT。操作设备根据COCT的信息对控制器进行操作和管理。

通道控制表(CHCT):每个通道都会对应一张CHCT。操作系统根据CHCT的信息对通道进行操作和管理。

系统设备表(SDT):记录了系统中全部设备的情况,每个设备对应一个表目。

五、设备分配的步骤 根据进程请求的物理设备名查找SDT(注:物理设备名是进程请求分配设备时提供的参数)根据SDT找到DCT,若设备忙碌则将进程PCB挂到设备等待队列中,不忙碌则将设备分配给进程。根据DCT找到COCT,若控制器忙碌则将进程PCB挂到控制器等待队列中,不忙碌则将控制器分配给进程。根据COCT找到CHCT,若通道忙碌则将进程PCB挂到通道等待队列中,不忙碌则将通道分配给进程。

注:只有设备、控制器、通道三者都分配成功时,这次设备分配才算成功,之后便可启动I/O设备进行数据传送

六、设备分配步骤的改进 根据进程请求的逻辑设备名查找SDT(注:用户编程时提供的逻辑设备名其实就是“设备类型”)。查找SDT,找到用户进程的指定类型、并且空闲的设备,将其分配给该进程。操作系统再逻辑设备表(LUT)中新增一个表项。根据DCT找到COCT,若控制器忙碌则将进程PCB挂到控制器等待队列中,不忙碌则将控制器分配给进程。根据COCT找到CHCT,若通道忙碌则将进程PCB挂到通道登录队列中,不忙碌则将通道分配给进程。


七、知识总览

八、缓冲区管理 一、知识总览

二、什么是缓冲区?有什么作用? 缓冲区是一个存储区域,可以由专门的硬件寄存器组成,也可以利用内存作为缓冲区。使用硬件作为缓冲区的成本较高,容量也较少,一般仅用在对速度要求非常高的场合(如寄存器管理中所用的联想寄存器,由于对页表的访问频率极高,因此使用速度很快的联想寄存器来存放页表项的副本)一本情况下,更多的是利用内存作为缓冲区,“设备独立性软件”的缓冲区管理就是要组织管理好这些缓冲区。

三、单缓冲 假设某用户进程请求某种块设备读入若干块的数据。若采用单缓冲的策略,操作系统会在主存中为其分配一个缓冲区(若题目中没有特别说明,一个缓冲区的大小就是一个块)。注意:当缓冲区数据非空时,不能往缓冲区冲入数据,只能从缓冲区把数据传出;当缓冲区为空时,可以往缓冲区冲入数据,但必须把缓冲区充满以后,才能从缓冲区把数据传出。



四、双缓冲 假设某用户进程请求某种块设备读入若干的数据。若采用缓冲的策略,操作系统会在主存中为其分配两个缓冲区(若题目中没有特别说明,一个缓冲区的大小就是一个块)

五、使用单/双缓冲区在通信时的区别 两台机器之间通信时,可以配置缓冲区用于数据的发送和接受。

显然,若两个相互通信的机器只设置单缓冲区,在任意时刻只能实现数据的单向传输。

若两个相互通信的机器设置双缓冲区,则同一时刻可以实现双向的数据传输。

注:管道通信中的“管道”其实就是缓冲区。要实现数据的双向传输,必须设置两个管道。

六、循环缓冲区 将多个大小相等的缓冲区链接成一个循环队列。注:以下图示中,橙色表示已充满数据的缓冲区,绿色表示缓冲区。

七、缓冲池 缓冲池由系统中共用的缓冲区组成。这些缓冲区按使用状况可分为:空缓冲队列、装满输入数据的缓冲队列(输入队列)、装满输出数据的缓冲队列(输出队列)。另外,根据一个缓冲区在实际运算中扮演的功能的不同,又设置了四种工作缓冲区,用于收容输入数据的工作缓冲区(hin)、用于提取输入数据的工作缓冲区(sin)、用于收容输出数据的工作缓冲区(hout)、用于提取输出数据的工作缓冲区(sout)

八、知识总览

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。