精华内容
下载资源
问答
  • 计算机系统中常用的输入/输出控制方式
    千次阅读
    2021-09-06 10:41:32

    1、直接程序控制(无条件传送/程序查询方式)

    1.1、无条件传送:

    在此情况下,外设总是准备好的,它可以无条件地随时接收CPU发来的输出数据,也能够无条件地随时向CPU提供需要输入的数据。

    1.2、程序查询方式:

    在这种方式下,利用查询方式进行输入输出,就是通过CPU执行程序查询外设的状态,判断外设是否准备好接收数据或准备好了向CPU输入的数据,

    2、中断方式

    由程序控制1/O的方法,其主要缺点在于CPU必须等待I/O系统完成数据传输任务,在此期间CPU需要定期地查询l/O系统的恶状态,以确认传输是否完成。因此整个系统的性能严重下降。

    3、直接主存存取(Direct Memory Access,DMA)

    是指数据在主存与I/O设备间的直接成块传送,即在主存与I/O设备间传送数据块的过程中,不需要CPU作任何干涉,只需在过程开始启动(即向设备发出“传送一块数据”的命令)与过程结束(CPU通过轮询或中断得知过程是否结束和下次操作是否准备就绪)时由CPU进行处理,实际操作由DMA硬件直接完成,CPU在传送过程中可做别的事情。

    eg:
    ●计算机系统中常用的输入/输出控制方式有无条件传送、中断、程序查询和 DMA 方式等。当采用(3)方式时,不需要 CPU 执行程序指令来传送数据。
    A.中断 B.程序查询 C.无条件传送 D.DMA

    更多相关内容
  • 方法一:”通过sqrt函数表示根号,在命令行窗口中输入“sqrt(X)”,按回车键可以看到得到相同的结果 方法二:通过sqrtm函数表示根号,在命令行窗口中输入“sqrtm(X)”,按回车键可以看到结果 方法三:在命令行窗口中...

    matlab中的角度全部默认是弧度,需要注意
    matlab中的不等于命令为“~=”

    MatLab 计算开根号

    对X要开根号
    方法一:”通过sqrt函数表示根号,在命令行窗口中输入“sqrt(X)”,按回车键可以看到得到相同的结果
    方法二:通过sqrtm函数表示根号,在命令行窗口中输入“sqrtm(X)”,按回车键可以看到结果
    方法三:在命令行窗口中输入“X^0.5”,按回车键可以看到X求根的结果

    反三角函数在matlab中怎样定义

    matlab的arctan函数 函数是:atan
    arcsin(x)---->asin(x)
    arccos(x)---->acos(x)
    arctan(x)---->atan(x)
    arccot(x)---->acot(x)
    asin(),acos(),atan(),acot( ) 生成的值为弧度值,即rad;
    asind(),acosd(),atand(), acotd( ) 生成的值为角度值;
    将弧转换为角度的命令:rad2deg()
    deg2rad()作用则相反

    Matlab 中三角函数
    matlab常见函数总汇(不定时更新)

    matlab &与&&的区别(与:& 或:| 非:~)

    与:& 或:| 非:~
    1、A&B
    (1)首先判断A的逻辑值,然后判断B的值,然后进行逻辑与的计算。
    (2)A和B可以为矩阵(e.g. A=[1 0],B=[0 0])。
    2、A&&B
    (1)首先判断A的逻辑值,如果A的值为假,就可以判断整个表达式的值为假,就不需要再判断B的值。
    (2)A和B不能是矩阵,只能是标量。
    "|"与“||”同理。
    不同之处:
    1、用法不同
    &适用于矩阵间的逻辑运算,&&不适用,只适用于单个元素,包括数值和字符。
    2、使用效果不同
    当判断两个逻辑值时,例如A&(f(x)>c)和A&&(f(x)>c)时,对于第一种情况,不论A是否为真,A和(f(x)>c)都要计算,但是对第二种情况,如果A是false,那么后面的(f(x)>c)就不用计算了,倘若f(x)是一个计算量大的函数,那么这将节省很多时间。

    if flag=denum~=0 && num/denum>10
    
    %Do Something
    
    end ifif flag=denum~=0 & num/denum>10
    
    %Do Something
    
    end if
    执行的结果一样。
    

    如何让函数不显示ans或者其他的一些变量

    在调用函数的时候,末尾写“;”就OK啦

    或者更改一下函数写的形式

    怎么让程序运行结果里不出现ans

    如果不想让其他的变量显示输出(只输出变量不输出后面的文本):
    语句末尾加分号,该语句值不会显示…
    或者将值赋给某一变量,不加分号,显示…

    如果在在命令窗的指令后面加上;程序的输出窗口就不会显示ans的结果

    编写多输入多输出的M函数文件

    MATLAB的乘除不能省略,确定进来出现歧义的地方都把括号加上面,确保计算的顺序不会出现问题。
    function [输出1,输出2,输出3]= 函数名称 (变量1,变量2,变量3)
    在这里插入图片描述
    例:

    function [L,S]=t4_2(r) 
    L=2*pi*r;    %计算圆周长
    S=pi*r*r;    %计算圆面积
    end
    

    然后在matlab命令窗口输入:[L,S]=t4_2(1),结果显示:
    在这里插入图片描述
    介绍一些写m文件博客和举例:
    matlab编写m文件函数

    MATLAB编写函数(function)脚本计算圆面积和周长

    补充一些常见函数:
    fix(x):无论正负,舍去小数至相邻整数。

    floor(x):下取整,即舍去正权小数至相邻整数。

    ceil(x):上取整,即加入正小数至相邻整数。

    rat(x):将实数x化为多项分数展开。

    rats(x):将实数x化为分数表示。

    sign(x):符号函数(Signum function)。

    当x<0时,sign(x)=-1。

    当x=0时,sign(x)=0。

    当x>0时,sign(x)=1。

    rem(x,y):求x除以y的余数。

    gcd(x,y):整数x和y的最大公因数。

    lcm(x,y):整数x和y的最小公倍数。

    exp(x) :自然指数。

    pow2(x):2的指数。

    展开全文
  • 输入输出

    千次阅读 2021-07-18 00:27:12
    out定义产品输入输出视频信号的端口常见类型S端子和复合视频端口S端子Separate Video输入输出简介编辑语音输入输出(input/output,I/O),读作“eye-oh”,描述的是在计算机上输入输出数据的操作系统、程序或设备。...

    输入输出指的是产品输入输出视频信号的端口,比较常见的是S端子和复合视频端口。

    中文名

    输入输出

    外文名

    in-out定    义

    产品输入输出视频信号的端口

    常见类型

    S端子和复合视频端口

    S端子

    Separate Video

    输入输出简介

    编辑

    语音

    输入输出(input/output,I/O),读作“eye-oh”,描述的是在计算机上输入输出数据的操作系统、程序或设备。一般的输入输出设备有打印机、硬盘、键盘和鼠标。实际上,有些设备只有输入功能,如键盘和鼠标;有些设备只有输出功能,如打印机;还有些设备具有输入输出2种功能,如硬盘、磁碟和可写性只读光盘(CD-ROM)。[1]

    输入输出S端子

    编辑

    语音

    S端子也就是Separate Video,而“Separate”的中文意思就是“分离”。它是在AV接口的基础上将色度信号C 和亮度信号Y进行分离,再分别以不同的通道进行传输,减少影像传输过程中的“分离”、“合成”的过程,减少转化过程中的损失,以得到最佳的显示效果。但S-Video仍要将两路色差信号混合为一路色度信号C进行传输,然后再在显示设备内解码进行处理,这样多少仍会带来一定信号损失而产生失真(这种失真很小) ,而且由于混合导致色度信号的带宽也有一定的限制。S-Video虽不是最好的,但考虑到目前的市场状况和综合成本等其它因素,它还是应用最普遍的视频接口。

    输入输出RCA接口

    编辑

    语音

    复合视频接口采用RCA接口,RCA接口是目前电视设备上应用最广泛的接口,几乎每台电视上都提供了此类接口,用于视频输入。虽然AV接口实现了音频和视频的分离传输,这就避免了因为音/视频混合干扰而导致的图像质量下降,但由于AV接口传输的仍然是一种亮度/色度(Y/C)混合的视频信号,仍然需要显示设备对其进行亮/色分离和色度解码才能成像,这种先混合再分离的过程必然会造成色彩信号的损失,色度信号和亮度信号也会有很大的机会相互干扰,从而影响最终输出的图像质量。

    输入输出输入输出设备

    编辑

    语音

    输入输出设备(IO设备),是数据处理系统的关键外部设备之一,可以和计算机本体进行交互使用。如:键盘、写字板、麦克风、音响、显示器等。因此输入输出设备起了人与机器之间进行联系的作用。

    输入输出输入设备

    编辑

    语音

    输入设备是向计算机输入数据和信息的设备,是计算机与用户或其他设备通信的桥梁,是用户和计算机系统之间进行信息交换的主要装置之一。输入设备的任务是把数据、指令及某些标志信息等输送到计算机中去。键盘、鼠标、摄像头、扫描仪、光笔、手写输入板、游戏杆、语音输入装置等都属于输入设备(Input Device ),是人或外部与计算机进行交互的一种装置,用于把原始数据和处理这些数据的程序输入到计算机中。

    计算机能够接收各种各样的数据,既可以是数值型的数据,也可以是各种非数值型的数据,如图形、图像、声音等都可以通过不同类型的输入设备输入到计算机中,进行存储、处理和输出。计算机的[1]输入设备按功能可分为下列几类:

    ●字符输入设备:键盘;

    ● 光学阅读设备:光学标记阅读机、光学字符阅读机;

    ● 图形输入设备:鼠标器、操纵杆、光笔;

    ● 图像输入设备:数码像机、扫描仪、传真机;

    ● 模拟输入设备:语言模数转换识别系统。

    (如光电纸带输入器、卡片输入器、光学字符读出器、磁带输入装备、汉字输入装备、鼠标等)将数据、程序和控制信息送入计算机内。

    输入输出输出设备

    编辑

    语音

    输出设备(Output Device)是把计算或处理的结果或中间结果以人能识别的各种形式,如数字、符号、字母等表示出来,因此输入输出设备起了人与机器之间进行联系的作用。常见的有显示器、打印机、绘图仪、影像输出系统、语音输出系统、磁记录设备等。

    显示器是计算机必不可少的一种图文[2]输出设备,它的作用是将数字信号转换为光信号,使文字与图形在屏幕上显示出来;打印机也是PC机上的一种主要输出设备,它把程序、数据、字符图形打印在纸上。

    控制台打字机、光笔、显示器等既可作输入设备、也可作输出设备。

    输入输出设备(I/O)起着人和计算机、设备和计算机、计算机和计算机的联系作用。

    输入输出即插即用

    编辑

    语音

    说道I/O,就不得不说起即插即用。随着新技术的发展,人们已经厌倦使用驱动光盘来安装新设备的驱动。而即插即用的新技术的来临,则解决了这个问题。

    随着微软推出WINDOWS95/98,它也宣传了WINDOWS95/98为用户提供的底层硬件资源的智能管理能力,即WINDOWS95/98具有即插即用(PNP:PlugandPlay)的功能,由此即插即用才为人们广泛重视。

    输入输出标准输入输出

    编辑

    语音

    执行一个shell命令行时通常会自动打开三个标准文件,即标准输入文件(stdin),通常对应终端的键盘;标准输出文件(stdout)和标准错误输出文件(stderr),这两个文件都对应终端的屏幕。进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。

    输入输出输入输出系统

    编辑

    语音

    输入输出系统是计算机系统中的主机与外部进行通信的系统。它由外围设备和输入输出控制系统两部分组成,是计算机系统的重要组成部分。外围设备包括输入设备、输出设备和磁盘存储器、磁带存储器、光盘存储器等。从某种意义上也可以把磁盘、磁带和光盘等设备看成一种输入输出设备,所以输入输出设备与外围设备这两个名词经常是通用的。在计算机系统中,通常把处理机和主存储器之外的部分称为输入输出系统,输入输出系统的特点是异步性、实时性和设备无关性。

    输入输出原理

    编辑

    语音

    从信息传输速率来讲,相差也很悬殊。如果把高速工作的主机同不同速度工作的外围设备相连接,保证主机与外围设备在时间上同步要讨论的外围设备的定时问题。

    输入/输出设备同CPU交换数据的过程:

    输入过程:

    (1)CPU把一个地址值放在地址总线上,这一步将选择某一输入设备;

    (2)CPU等候输入设备的数据成为有效;

    (3)CPU从数据总线读入数据,并放在一个相应的寄存器中。

    输出过程:

    (1)CPU把一个地址值放在地址总线上,选择输出设备;

    (2)CPU把数据放在数据总线上;

    (3)输出设备认为数据有效,从而把数据取走。

    输入输出定时方式

    编辑

    语音

    由于输入/输出设备本身的速度差异很大,因此,对于不同速度的外围设备,需要有不同的定时方式,总的说来,CPU与外围设备之间的定时,有以下三种情况。

    1.速度极慢或简单的外围设备

    对这类设备,如机械开关、显示二极管等等,CPU总是能足够快地作出响应。换句话说,对机械开关来讲,CPU可以认为输入的数据一直有效,因为机械开关的动作相对CPU的速度来讲是非常慢的,对显示二极管来讲,CPU可以认为输出一定准备就绪,因为只要给出数据,显示二极管就能进行显示,所以,在这种情况下,CPU只要接收或发送数据就可以了。

    2.慢速或中速的外围设备

    由于这类设备的速度和CPU的速度并不在一个数量级,或者由于设备(如键盘)本身是在不规则时间间隔下操作的,因此,CPU与这类设备之间的数据交换通常采用异步定时方式。其定时过程如下:

    如果CPU从外设接收一个字,则它首先询问外设的状态,如果该外设的状态标志表明设备已“准备就绪”,那么CPU就从总线上接收数据。CPU在接收数据以后,发出输入响应信号,告诉外设已经把数据总线上的数据取走。然后,外设把“准备就绪”的状态标志复位,并准备下一个字的交换。如果CPU起先询问外设时,外设没有“准备就绪”,那么它就发出表示外设“忙”的标志。于是,CPU将进入一个循环程序中等待,并在每次循环中询问外设的状态,一直到外设发出“准备就绪”信号以后,才从外设接收数据。

    CPU发送数据的情况也与上述情况相似,外设先发出请求输出信号,而后,CPU询问外设是否准备就绪。如果外设已准备就绪,CPU便发出准备就绪信号,并送出数据。外设接收数据以后,将向CPU发出“数据已经取走”的通知。

    通常,把这种在CPU和外设间用问答信号进行定时的方式叫做应答式数据交换。

    3.高速的外围设备

    由于这类外设是以相等的时间间隔操作的,而CPU也是以等间隔的速率执行输入/输出指令的,因此,这种方式叫做同步定时方式。一旦CPU和外设发生同步,它们之间的数据交换便靠时钟脉冲控制来进行。

    输入输出控制方式

    编辑

    语音

    程序查询方式和程序中断方式适用于数据传输率比较低的外围设备,而DMA方式、通道方式和PPU方式适用于数据传输率比较高的设备。在单片机和微型机中多采用程序查询方式、程序中断方式和DMA方式。通道方式和PPU方式大都用在中、大型计算机中。

    在计算机系统中,CPU管理外围设备也有几种类似的方式:

    程序查询方式是早期计算机中使用的一种方式。数据在CPU和外围设备之间的传送完全靠计算机程序控制,查询方式的优点是CPU的操作和外围设备的操作能够同步,而且硬件结构比较简单。但问题是,外围设备动作很慢,程序进入查询循环时将白白浪费掉CPU很多时间。这种情况同上述例子中第一种方法相仿,CPU此时只能等待,不能处理其他业务。即使CPU采用定期地由主程序转向查询设备状态的子程序进行扫描轮询的办法,CPU宝贵资源的浪费也是可观的。因此当前除单片机外,很少使用程序查询方式。

    中断是外围设备用来“主动”通知CPU,准备送出输入数据或接收输出数据的一种方法。通常,当一个中断发生时,CPU暂停它的现行程序,而转向中断处理程序,从而可以输入或输出一个数据。当中断处理完毕后,CPU又返回到它原来的任务,并从它停止的地方开始执行程序。这种方式和我们前述例子的第二种方法相类似。可以看出,它节省了CPU宝贵的时间,是管理I/O操作的一个比较有效的方法。中断方式一般适用于随机出现的服务,并且一旦提出要求,应立即进行。同程序查询方式相比,硬件结构相对复杂一些,服务开销时间较大。

    3直接内存访问(DMA)方式

    用中断方式交换数据时,每处理一次I/O交换,约需几十微秒到几百微秒。对于一些高速的外围设备,以及成组交换数据的情况,仍然显得速度太慢。直接内存访问(DMA)方式是一种完全由硬件执行I/O交换的工作方式。这种方式既考虑到中断响应,同时又要节约中断开销。此时,DMA控制器从CPU完全接管对总线的控制,数据交换不经过CPU,而直接在内存和外围设备之间进行,以高速传送数据。这种方式和前述例子的第三种方法相仿,主要优点是数据传送速度很高,传送速率仅受到内存访问时间的限制。与中断方式相比,需要更多的硬件。DMA方式适用于内存和高速外围设备之间大批数据交换的场合。

    DMA方式的出现已经减轻了CPU对I/O操作的控制,使得CPU的效率有显著的提高,而通道的出现则进一步提高了CPU的效率。这是因为,CPU将部分权力下放给通道。通道是一个具有特殊功能的处理器,某些应用中称为输入输出处理器(IOP),它可以实现对外围设备的统一管理和外围设备与内存之间的数据传送。这种方式与前述例子的第四种方法相仿,大大提高了CPU的工作效率。然而这种提高CPU效率的办法是以花费更多硬件为代价的。

    外围处理机(PPU)方式是通道方式的进一步发展。由于PPU基本上独立于主机工作,它的结构更接近一般处理机,甚至就是微小型计算机。在一些系统中,设置了多台PPU,分别承担I/O控制、通信、维护诊断等任务。从某种意义上说,这种系统已变成分布式的多机系统[2]

    参考资料

    1.

    输入输出

    .TechTarget信息化[引用日期2015-07-23]

    2.

    刘国海, 戴先中. 交流电机输入输出自适应解耦控制[J]. 电工技术学报, 2002, 17(1):12-16.

    展开全文
  • 输入输出系统 输入输出系统

    输入输出系统



    I/O软件的层次结构

    通常把 I/O 软件组织成四个层次:
    1)用户层 I/O 软件。实现与用户交互的接口,用户可直接调用该层所提供的、与 I/O 操作有关的库函数对设备进行操作。
    2)设备独立性软件。用于实现用户程序与设备驱动器的统一接口、设备命名、设备的保护以及设备的分配与释放等,同时为设备管理和数据传送提供必要的存储空间。
    3)设备驱动程序。与硬件直接相关,用于具体实现系统对设备发出的操作指令,驱动 I/O 设备工作的驱动程序。
    4)中断处理程序。CPU 先保护被中断进程的 CPU 环境,再转入相应的的中断处理程序进行处理,处理完毕后 CPU 再恢复被中断进程的现场,返回到被中断的进程。

    I/O设备和设备控制器

    I/O设备一般是由执行I/O操作的机械部分和执行控制I/O的电子部件组成。通常将这两部分分开,执行I/O操作的机械部分就是一般的I/O设备,而执行控制I/O的电子部件则称为设备控制器或适配器,也常称为控制卡、接口卡或网卡。

    中断机构和中断处理程序

    中断简介

    中断在操作系统中有着特殊重要的地位,它是多道程序得以实现的基础,没有中断,就不可能实现多道程序,因为进程之间的切换是通过中断来完成的。另一方面,中断也是设备管理的基础,为了提高处理机的利用率和实现CPU与I/O设备并行执行,也必需有中断的支持。

    1. 中断和陷入。
      1)中断,是指CPU对I/O设备发来的中断信号的响应。由外部设备引起,故又称为外中断。
      2)陷入,是由CPU内部事件引起的中断,如程序出错等等,故又称为内中断。
      中断和陷入的主要区别是信号的来源,即是来自 CPU 外部,还是 CPU 内部。
    2. 中断向量表和中断优先级。
      1)中断向量表。
      通常是为每种设备配以相应的中断处理程序,并把该程序的入口地址放在中断向量表中的一个表项,并为每一个设备的中断请求规定一个中断号,它直接对应于中断向量表的一个表项。当 I/O 设备发来中断请求信号时,由中断控制器确定该请求的中断号,并去查找中断向量表取得设备中断处理程序的入口地址,这样便可转入中断处理程序执行。
      2)中断优先级。多个中断信号同时到达时,根据优先级分别先后处理。
    3. 对多中断源的处理方式。
      1)屏蔽(禁止)中断。
      类似于关中断,当处理机正在处理一个中断时,将屏蔽掉所有的中断,让它们等待。直到处理机处理完本次中断后,再去检查是否有中断发生。
      2)嵌套中断。
      CPU 优先响应最高优先级的中断请求。高优先级的中断请求可以抢占正在运行的低优先级中断的处理机。

    中断处理程序

    中断处理程序是I/O系统中最低的一层,它是整个I/O系统的基础。中断机构的处理过程:

    1. CPU测定是否有未响应的中断信号。程序每当执行完当前指令后,处理机都要测试是否有未响应的中断信号。
    2. 保护被中断进程的CPU环境。
    3. 转入相应的设备处理程序。由处理机对各个中断源进行测试,以确定引起本次中断的 I/O 设备,并向提供中断信号的设备发送确认信号。在该设备收到确认信号后,就立即取消它所发出的中断请求信号。然后,将相应的设备中断处理程序的入口地址装入到程序计数器中。这样,当处理机运行时,便可自动地转向中断处理机程序。
    4. 中断处理。
    5. 恢复CPU现场并退出中断。
      这里写图片描述

    设备驱动程序

    设备处理程序通常又称为设备驱动程序,它是I/O系统的高层与设备控制器之间的通信程序,其主要任务是接收上层软件发来的抽象I/O要求,如read或write命令,再把它转换为具体要求后,发送给设备控制器,启动设备去执行;反之,它也将由设备控制器发来的信号传送给上层软件。由于驱动程序与硬件密切相关,故通常应为每一类设备配置一种驱动程序。

    在多道程序系统中,驱动程序一旦发出 I/O 命令,启动了一个 I/O 操作后,驱动程序便把控制返回给 I/O 系统,把自己阻塞起来,直到中断到来时再被唤醒。具体的 I/O 操作是在设备控制器的控制下进行的,因此,在设备忙于传送数据时,处理机又可以去干其它的事情,实现了处理机与 I/O 设备的并行操作。

    对I/O设备的控制方式

    1. 使用轮询的可编程I/O方式。
      处理机对 I/O 设备的控制采取轮询的可编程I/O方式,即在处理机向控制器发出一条 I/O 指令启动输入设备输入数据时,要同时把状态寄存器中的忙/闲标志 busy 置为 1,然后便不断地循环测试 busy。当 busy=1 时,表示输入机尚未输完一个字(符),处理机应继续对该标志进行测试,直至 busy=0,表明输入机已将输入数据送入控制器的数据寄存器中。于是处理机将数据寄存器中的数据取出,送入内存指定单元中,这样便完成了一个字(符)的 I/O。接着再去启动读下一个数据,并置 busy=1。
    2. 使用中断的可编程I/O方式。
      采用中断的可编程I/O方式,即当某进程要启动某个 I/O 设备工作时,便由 CPU 向相应的设备控制器发出一条 I/O 命令,然后立即返回继续执行原来的任务。设备控制器于是按照该命令的要求去控制指定 I/O 设备。此时,CPU 与 I/O 设备并行操作。一旦数据进入数据寄存器,控制器便通过控制线向 CPU 发送一中断信号,由 CPU 检查输入过程中是否出错,若无错,便向控制器发送取走数据的信号,然后再通过控制器及数据线将数据写入内存指定单元中。
      适用于低速流设备,如键盘,鼠标。
    3. 直接存储器(DMA)访问方式。
      中断驱动 I/O 比程序 I/O 方式更有效,但须注意,它仍是以字(节)为单位进行 I/O 的,每当完成一个字(节)的 I/O 时,控制器便要向 CPU 请求一次中断。换言之,采用中断驱动 I/O 方式时的 CPU 是以字(节)为单位进行干预的。
      从而引入直接存储器访问方式,其特点如下:
      1)数据传输的基本单位是数据块,即在 CPU 与 I/O 设备之间,每次传送至少一个数据块;
      2)所传送的数据是从设备直接送入内存的,或者相反;
      3)仅在传送一个或多个数据块的开始和结束时,才需 CPU 干预,整块数据的传送是在控制器的控制下完成的。
    4. I/O通道控制方式。
      I/O 通道方式是 DMA 方式的发展,它可进一步减少 CPU 的干预,即把对一个数据块的读(或写)为单位的干预减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预。同时,又可实现 CPU、通道和 I/O 设备三者的并行操作。而通道能与 I/O 设备并行是因为 I/O 通道实际上是一种特殊的处理机,它具有执行 I/O 指令的能力,并通过执行通道 I/O 程序来控制 I/O 操作。增设 I/O 通道的主要目的是为了建立独立的 I/O 操作,或者说是使一些原来由 CPU 处理的 I/O 任务转由通道来承担。

    与设备无关的I/O软件

    为了方便用户和提高OS的可适应性与可扩展性,在现代OS的I/O系统中,都无一例外地增加了与设备无关的I/O软件,以实现设备独立性,也称为设备无关性。其基本含义是:应用程序中所用的设备,不局限于使用某个具体的物理设备。这是在设备驱动程序之上设置的一层软件,称为与设备无关的I/O软件,或设备独立性软件。

    通过在系统配置:①设备控制表 DCT;②控制器控制表 COCT;③通道控制表 CHCT;④系统设备表 SDT;实现都独占设备的分配。

    同时,在系统中需要配置一张逻辑设备表 LUT,用于将逻辑设备名映射为物理设备名。

    用户层的 I/O 软件

    一般而言,大部分的 I/O 软件都在操作系统内部,但仍有一小部分在用户层,包括系统调用、与用户程序链接在一起的库函数,以及完全运行于内核之外的假脱机系统等。

    假脱机(Spooling)系统

    如果说可以通过多道程序技术将一台物理CPU 虚拟为多台逻辑 CPU,从而允许多个用户共享一台主机,那么,通过 SPOOLing 技术便可将一台物理 I/O 设备虚拟为多台逻辑 I/O 设备,同样允许多个用户共享一台物理 I/O设备。

    1. 假脱机技术。
      脱机输入、脱机输出技术。该技术是利用专门的外围控制机,先将低速I/O设备上的数据传送到高速磁盘上,或者相反。
      事实上,当系统中引入了多道程序技术后,完全可以利用其中的一道程序,来模拟脱机输入时的外围控制机功能,把低速 I/O 设备上的数据传送到高速磁盘上;再用另一道程序来模拟脱机输出时外围控制机的功能,把数据从磁盘传送到低速输出设备上。这样,便可在主机的直接控制下,实现脱机输入、输出功能。此时的外围操作与 CPU 对数据的处理同时进行,我们把这种在联机情况下实现的同时外围操作称为 SPOOLing,或称为假脱机操作。
    2. SPOOLing 系统的组成。
      1)输入井和输出井。这是在磁盘上开辟的两个存储空间。输入井是模拟脱机输入时的磁盘设备;输出井是模拟脱机输出时的磁盘。
      2)输入缓冲区和输出缓冲区。为了缓和 CPU 和磁盘之间速度不匹配的矛盾,在内存中要开辟两个缓冲区:输入缓冲区和输出缓冲区。输入缓冲区用于暂存由输入设备送来的数据,以后再传送到输入井。输出缓冲区用于暂存从输出井送来的数据,以后再传送给输出设备。
      3)输入进程和输出进程。输入进程也称为预输入进程,用于模拟脱机输入时的外围控制机。输出进程也称为预输出进程,用于模拟脱机输出时的外围控制机。
      4)井管理程序。用于控制作业与磁盘井之间信息的交换。当作业执行过程中向某台设备发出启动输入或输出操作请求时,由操作系统调用井管理程序,由其控制从输入井读取信息或将信息输出至输出井。
      这里写图片描述
    3. SPOOLing系统的特点。
      1)提高了I/O的速度。
      2)将独占设备改造为共享设备。
      3)实现了虚拟设备功能。
    4. 假脱机打印机系统。
      打印机是经常要用到的输出设备,属于独占设备。利用 SPOOLing 技术,可将之改造为一台可供多个用户共享的设备,从而提高设备的利用率。主要有以下三部分:
      1)磁盘缓冲区。用于暂存用户程序的输出数据。
      2)打印缓冲区。缓和 CPU 和磁盘之间速度不匹配的矛盾,设置在内存中,暂存从磁盘缓冲区送来的数据。
      3)假脱机管理进程和假脱机打印进程。由假脱机管理进程为每个要求打印的用户数据建立一个假脱机文件,并把它放入假脱机文件队列中,由假脱机打印进程依次对队列中的文件进行打印。
      这里写图片描述
      每当用户进程发出打印输出请求时,由假脱机管理进程完成两项工作:①在磁盘缓冲区中为之申请一个空闲盘块,并将要打印的数据送入其中暂存;②为用户进程申请一张空闲的用户请求打印表,并将用户的打印要求填入其中,再将该表挂到假脱机文件队列上。
      真正的打印输出是假脱机打印进程负责的,当打印机空闲时,该进程首先从假脱机文件队列的队首摘取一张请求打印表,然后根据表中的要求将要打印的数据由输出井传送到内存缓冲区,再交付打印机进行打印。
    5. 守护进程。
      除了假脱机打印机系统可以实现打印机共享,也可以为打印机建立一个守护进程。由守护进程执行一部分原来假脱机管理进程实现的功能。另一部分由请求进程自己完成,每个要求打印的进程先生成一份要求打印的文件,然后放入假脱机文件队列中。守护进程是按照目录中的文件依次来完成诸进程对该设备的请求的。

    缓冲区管理

    在现代操作系统中,几乎所有的I/O设备在与处理机交换数据时都用了缓冲区。
    单缓冲区、双缓冲区、环形缓冲区、缓冲池。

    磁盘存储器的性能和调度

    改善磁盘系统的性能:
    1)选择好的磁盘调度算法,以减少磁盘的寻道时间。
    2)提高磁盘 I/O 速度,以提高对文件的访问速度。
    3)采取冗余技术,提高磁盘系统的可靠性,建立高度可靠的文件系统。

    磁盘性能简述

    1. 数据的组织和格式。
      磁盘设备可包括一个或多个物理盘片,每个磁盘片分一个或两个存储面(Surface),每个盘面上有若干个磁道(Track),磁道之间留有必要的间隙(Gap)。为使处理简单起见,在每条磁道上可存储相同数目的二进制位。 这样,磁盘密度即每英寸中所存储的位数,显然是内层磁道的密度较外层磁道的密度高。每条磁道又被逻辑上划分成若干个扇区(sectors),软盘大约为 8~32 个扇区,硬盘则可多达数百个,图中显示了一个磁道分成 8 个扇区。一个扇区称为一个盘块(或数据块),常常叫做磁盘扇区。各扇区之间保留一定的间隙。
      这里写图片描述
      磁盘上存储的物理记录块数目是由扇区数、磁道数以及磁盘面数所决定的。
      为了在磁盘上存储数据,必须先将磁盘低级格式化。下图示出了一种温盘(温切斯特盘)中一条磁道格式化的情况。
      这里写图片描述
      其中每条磁道含有 30 个固定大小的扇区,每个扇区容量为 600 个字节,其中 512 个字节存放数据,其余的用于存放控制信息。
      每个扇区包括两个字段:
      1)标识符字段(ID Field),其中一个字节的 SYNCH 具有特定的位图像,作为该字段的定界符,利用磁道号(Track)、 磁头号(Head #)及扇区号(Sector #)三者来标识一个扇区;CRC 字段用于段校验。
      2)数据字段(Data Field),其中可存放 512 个字节的数据。
      值得强调的是,在磁盘一个盘面的不同磁道(Track)、每个磁道的不同扇区(Sector),以及每个扇区的不同字段(Filed)之间,为了简化和方便磁头的辨识,都设置了一个到若干个字节不同长度的间距(Gap,也称间隙)。
      磁盘格式化完成后,一般要对磁盘分区。
      但是,在真正可以使用磁盘前,还需要对磁盘进行一次高级格式化,即设置一个引导块、空闲存储管理、根目录和一个空文件系统,同时在分区表中标记该分区所使用的文件系统。
    2. 磁盘的类型。
      对磁盘,可以从不同的角度进行分类。最常见的有:将磁盘分成硬盘和软盘、单片盘和多片盘、固定头磁盘和活动头(移动头)磁盘等。
      1)固定头磁盘。在每条磁道上都有一读/写磁头,所有的磁头都被装在一刚性磁臂中。这种结构的磁盘主要用于大容量磁盘上。
      2)移动头磁盘。每一个盘面仅配有一个磁头,也被装入磁臂中。为能访问该盘面上的所有磁道,该磁头必须能移动以进行寻道。广泛应用于中小型磁盘设备中,在微型机上配置的温盘和软盘都采用移动磁头结构。
    3. 磁盘访问时间。
      1)寻道时间 Ts,这是指把磁臂(磁头)移动到指定磁道上所经历的时间。
      2)旋转延迟时间 Tr,这是指定扇区移动到磁头下面所经历的时间。
      3)传输时间 Tt,这是指把数据从磁盘读出或向磁盘写入数据所经历的时间。

    早期的磁盘调度算法

    由于在访问磁盘的时间中,主要是寻道时间,因此,磁盘调度的目标是使磁盘的平均寻道时间最少。

    1. 先来先服务 FCFS。
      根据进程请求访问磁盘的先后次序进行调度。
    2. 最短寻道时间优先。
      该算法选择这样的进程:其要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短。但这种算法不能保证平均寻道时间最短。

    基于扫描的磁盘调度算法

    1. 扫描(SCAN)算法。
      SSTF算法可能导致优先级低(即不断出现的新进程所要访问的磁道与当前磁头的位置时钟较劲,使原本较远的进程一直得不到满足)的进程发生“饥饿”现象。
      扫描算法不仅考虑到欲访问的磁道与当前磁道间的距离,更优先考虑的是磁头当前的移动方向。例如,当磁头正在自里向外移动时,SCAN 算法所考虑的下一个访问对象,应是其欲访问的磁道既在当前磁道之外,又是距离最近的。这样自里向外地访问,直至再无更外的磁道需要访问时,才将磁臂换向为自外向里移动。这时,同样也是每次选择这样的进程来调度,即要访问的磁道在当前位置内且距离最近者。
      由于在这种算法中磁头移动的规律颇似电梯的运行,因而又常称之为电梯调度算法。
    2. 循环扫描(CSCAN)算法。
      循环扫描算法是对扫描算法的改进。如果对磁道的访问请求是均匀分布的,当磁头到达磁盘的一端,并反向运动时落在磁头之后的访问请求相对较少。这是由于这些磁道刚被处理,而磁盘另一端的请求密度相当高,且这些访问请求等待的时间较长,为了解决这种情况,循环扫描算法规定磁头单向移动。例如,只自里向外移动,当磁头移到最外的被访问磁道时,磁头立即返回到最里的欲访磁道,即将最小磁道号紧接着最大磁道号构成循环,进行扫描。
    3. NStepSCAN 和 FSCAN 调度算法。
      1)NStepSCAN算法。
      在 SSTF、 SCAN 及 CSCAN 几种调度算法中,都可能会出现磁臂停留在某处不动的情况。例如,有一个或几个进程对某一磁道有较高的访问频率,即这个(些)进程反复请求对某一磁道的 I/O 操作,从而垄断了整个磁盘设备。我们把这一现象称为“磁臂粘着”。
      NStepSCAN 算法是将磁盘请求队列分成若干个长度为 N 的子队列,磁盘调度将按 FCFS 算法依次处理这些子队列。而每处理一个队列时又是按 SCAN 算法,对一个队列处理完后,再处理其他队列。当正在处理某子队列时,如果又出现新的磁盘 I/O 请求,便将新请求进程放入其他队列,这样就可避免出现粘着现象。当 N 值取得很大时,会使 N 步扫描法的性能接近于 SCAN 算法的性能;当 N=1 时,N 步 SCAN 算法便蜕化为 FCFS 算法。
      2)FSCAN 算法。
      FSCAN 算法实质上是 N 步 SCAN 算法的简化,即 FSCAN 只将磁盘请求队列分成两个子队列。一个是由当前所有请求磁盘 I/O 的进程形成的队列,由磁盘调度按 SCAN 算法进行处理。在扫描期间,将新出现的所有请求磁盘 I/O 的进程,放入另一个等待处理的请求队列。这样,所有的新请求都将被推迟到下一次扫描时处理。

    继续加油~

    展开全文
  • 由于它包含了很领域的不同设备以及与设备相关的应用程序,因此很难有一个通用且一致的设计方案。所以在理解设备管理之前,应该先了解具体的I/O设备类型。 计算机系统中的I/O设备按使用特性可分为以下类型: 1) 人...
  • OJ系统输入输出笔记(python)

    千次阅读 2022-03-05 22:07:35
    我hate输入输出!!!!
  • 微型计算机的组成有多种维度的分类方法,可以按照硬件、软件进行区分,也可以按照题目中说法分为输入设备、输出设备。输入设备(Input Device)指的是向计算机输入数据和信息的设备。...常见输出设备有显示器、打印...
  • 输入设备和输出设备的区别

    千次阅读 2021-07-27 09:19:30
    输入设备是用户和计算机系统之间进行信息交换的主要装置之一。键盘,鼠标,摄像头,扫描仪,光笔,手写输入板,游戏杆,语音输入装置等都属于输入设备。输入设备(InputDevice)是人或外部与计算机进行交互的一种装置...
  • 基本输入输出系统BIOS

    万次阅读 2016-06-11 15:51:26
    基本输入输出系统(BasicInput Output System,BIOS)是计算机系统软件中与硬件关系最密切的软件之一,它包含最基本的中断服务程序、系统设置程序、加电自检程序和系统启动自举程序。BIOS程序是计算机开机加电后第一...
  • ACM 新手入门 之 如何实现输入输出

    万次阅读 多人点赞 2018-10-16 19:55:30
    一般ACM赛制题目都要求 输入输出 ,我们以 杭电1000题为例:     题目是很简单的 A+B :代码为: #include&lt;stdio.h&gt; int main() { int a,b; scanf("%d%d",&amp;a,&...
  • 『ACM入门』蓝桥杯ACM训练系统基本输入输出教程 在介绍训练场的OJ系统之前,首先为大家介绍一下ACM: ACM原代表美国计算机协会,因其举办的ICPC即国际大学生程序设计竞赛而闻名全世界,此项赛事要求学生的在五小时内...
  • 2018-06-03输入设备和输出设备的作用是什么?输入设备输入设备是人向计算机输入信息的设备,常用的输入设备有:(1)键盘---人向计算机输入信息最基本的设备;(2)鼠标器----一种光标指点设备;(3)触摸屏----一种坐标定位...
  • 程序中的变与不变——变量与常量 标识符和关键字 ... 标准C语言不限制标识符的长度,但是受到各个版本的C语言编译系统的限制。大多数情况下,标识符的前8位有效,也就是说,如果两个标识符的前8位相...
  • 系统输入输入出设计相关知识介绍

    千次阅读 2020-12-13 08:11:26
    1、输出设计输出设计主要包括:确定输出内容、选择输出设备与介质、确定输出格式三个方面的内容。确定输出内容:输出内容的设计首先要确定用户在使用信息方面的需求,然后设计输出信息的内容,包信...
  • 硬件设备又分为输入设备和输出设备,今天,小编就着重的为大家介绍一下计算机的输出设备都是由哪些以及它们的功能作用都是什么。输出设备输出设备(Output Device)是计算机硬件系统的终端设备,用于接收...
  • 输入输出设备、外存储器称为外设。外设与中央处理器的连接通道称为接口,如显卡、声卡等。计算机产品中的主板(或称母板)是一块集成电路板,用于固定各部件产品,以及分布各部件之间的连接总线、接口等。计算机中...
  • C语言的键盘输入和屏幕输出

    千次阅读 2019-06-10 10:14:29
    键盘输入和屏幕输出是编写简单的顺序结构程序时最常用到的操作。C程序中的键盘输入和屏幕输出都是通过调用输入/输出函数实现的。本章介绍常用的输入/输出函数。 一、单个字符的输入/输出 1.字符常量 C语言中的字符...
  • 简述: PLC只是工厂中电气系统的一部分,如果把工厂理解成一个人体,那么PLC就是工厂的大脑,大脑通过眼睛鼻子等信号输入进行分析,最终控制四肢等进行动作。因此眼睛鼻子和四肢同样重要。 眼睛在工厂里对应的是什么...
  • Java输入/输出

    万次阅读 2018-05-06 14:29:58
    文本(Text)输入/输出 输出用PrintWriter类 try-with-resources来自动关闭资源 用Scanner来读取文本 流式处理 二进制(Binary)输入/输出 二进制输入/输出到文件 FilterInputStream/FilterOutputStream ...
  • 常见成衣规格误差规定中,西装总肩宽为()厘米。蒸发量不小于0.2t/h的锅炉,每台锅炉至少应装()个彼此独立的水位计。更换管道中途停工时,应将敞开的管口及时()。()江南六怪为救被欧阳克掳走的女子,以六对一,哪两...
  • C/C++之标准输入输出

    千次阅读 2017-03-10 18:02:39
    资源很都是来自网上的,如有版权请及时告知!  3. 可能会有些错误。如果看到,希望能指出,以此共勉! 文件   在此之前,有必要先了解一下文件是什么东西!所谓“文件”是指一组相关数据的有序集合。这...
  • StringBuilder和输入输出

    千次阅读 2021-01-31 16:37:06
    输入输出 读取输入 打印输出到"标准输出流"(即控制窗口),使用System.out.println即可,那么要想通过控制台输入,首先需要构造一个Scanner对象,并与"标准输入流"System.in关联. Scanner in = new Scanner(System.in); ...
  • 嵌入式学习——c语言数据的输入输出一、输入输出概念1.1输入输出是以计算机为主体而言的1.2C语言本身不提供输入输出语句1.3#include头文件放在程序中二、printf输出数据2.1一般格式2.2格式字符三、scanf输入数据3.1...
  • 牛客网刷算法题的输入输出(C++)

    千次阅读 多人点赞 2020-07-31 18:10:16
    该篇文章将对牛客网刷题中关于输入输出的一些问题作一个总结。每年互联网公司的招聘都必不可少会有算法题,因此平时很多人都会去一些刷题网站进行刷题来学习。这里面用的比较的刷题网站是leetcode和牛客网。...
  • 牛客网刷题的输入输出内容简述输入输出小结 内容简述 该篇文章将对牛客网刷题中关于输入输出的一些问题作一个总结。每年互联网公司的招聘都必不可少会有算法题,因此平时很多人都会去一些刷题网站进行刷题来学习。这...
  • (一)MATLAB中的输入输出

    万次阅读 多人点赞 2018-08-31 21:36:40
    input 的应用形式主要有以下两种,其中第一个输入的数字,第二个输入的是文本信息(一般为字符串) x = input(prompt) str = input(prompt,'s') 式中,prompt 代表要展示的文本信息,例如 a=input('please input...
  • ACM之Java输入输出

    千次阅读 2016-08-01 16:47:26
    一、Java之ACM注意点 ...3. 有些OJ上的题目会直接将OI上的题目拷贝过来,所以即便是题目中有输入和输出文件,可能也不需要,因为在OJ系统中一般是采用标准输入输出,不需要文件 4. 在有多行
  • C++学习笔记:(九)输入/输出

    千次阅读 2018-09-04 18:38:59
    目录 9.输入/输出流 9.1C++流类库简介 9.2输入/输出流 9.3自定义类型的输入/输出 ...C++的输入输出机制为内置数据类型的输入输出提供了支持,同时也支持文件的输入输出。 在此基础上,设计者可以通过扩展...
  • 常见的操作系统有哪些?

    万次阅读 2019-12-26 19:33:42
    一、常见的操作系统有哪些? 1、Windows操作系统 应用比较广泛。 2、Linux操作系统 免费使用,类UNIX 3、Unix操作系统 无界面,使用命令操作,一般安装在服务器上面。 4、Mac操作系统 苹果公司开发的,一般...
  • c语言基础——对文件的输入输出(详细版)

    万次阅读 多人点赞 2019-08-11 22:38:10
    对字符的输入输出前面已说明,怎么输入输出类型丰富的数据呢? printf和scanf 函数向终端进行格式化的输入输出。 fprintf和fscanf 函数向文件进行格式化的输入输出。 1.一般调用方式 fprintf(文件指针,格式...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 354,795
精华内容 141,918
关键字:

常见的多输入多输出系统