I/O

本页使用了标题或全文手工转换,现处于中国大陆简体模式
求闻百科,共笔求闻

I/O(英语:Input/Output),即输入/输出,通常指数据存储器(内部和外部)或其他周边设备之间的输入和输出,是信息处理系统(例如计算机)与外部世界(可能是人类或另一信息处理系统)之间的通信。输入是系统接收的信号或数据,输出则是从其发送的信号或数据。该术语也可以用作行动的一部分;到“执行I/O”是执行输入或输出的操作。

输入/出设备是硬件中由人(或其他系统)使用与计算机进行通信的部件。例如,键盘或鼠标是计算机的输入设备,而监控器和打印机是输出设备。计算机之间的通信设备(如电信调制解调器和网卡)通常执行输入和输出操作。

将设备指定为输入或输出取决于视角。鼠标和键盘截取人类用户的肢体动作,并将其转换为计算机可解的输入信号;这些设备的输出是计算机的输入。同样,打印机和监控器则用于将计算机处理的过程和结果输出,并将这些信号转换为人类用户能理解的呈现。从用户的角度来看,阅读或查看这些呈现的过程则是接受输入;人机交互主要是在研究了解机器与人类之间这种过程的交互接口。

在现代计算机体系结构中 CPU 可以使用单独的指令直接读取或写入,被认为是计算机的核心。而 CPU 和主存储器的组合,任何信息传入或传出 CPU /内存组合,例如通过从磁盘驱动器读取数据,就会被认为是 I/O;CPU 及其电路版提供用于低端编程的存储器映射 I/O,例如在设备驱动程序的实现中,或者提供对 I/O 通道的访问。一个 I/O 算法设计是利用内存,而且高效地进行与辅助存储设备交换数据时,如一个磁盘驱动器。

用途

输入

输出

双向

工作模式

  • 交互机制(消息通信机制),或理解为协作机制:
    • 同步:调用者会主动等待调用结果。按照“调用者”线程在等待调用结果时的状态可分为:
      • 阻塞:线程被操作系统挂起。
      • 非阻塞:线程不被操作系统挂起,可以处理其他事情。
    • 异步:调用者发起一个异步调用,然后立即返回去做别的事。“被调用者”通过状态、通知、回调函数等手段来通知“调用者”。异步IO不是FIFO有序的,例如进程A与进程B先后对一个端口发起了异步读操作,有可能是进程B先得到读操作的结果。

参见