I/O

英語:),即输入/输出,通常指数据存储器(内部和外部)或其他周边设备之间的输入和输出,是信息處理系統(例如計算機)與外部世界(可能是人類或另一信息處理系統)之間的通信。輸入是系統接收的信號或數據,輸出則是從其發送的信號或數據。該術語也可以用作行動的一部分;到“執行I/O”是執行輸入或輸出的操作。

輸入/出設備是硬件中由人(或其他系統)使用與計算機進行通信的部件。例如,鍵盤或鼠標是計算機的輸入設備,而監視器和打印機是輸出設備。計算機之間的通信設備(如電信數據機和網卡)通常執行輸入和輸出操作。

將設備指定為輸入或輸出取決於視角。滑鼠和鍵盤擷取人類用戶的肢体動作,並將其轉換為計算機可解的輸入信號;這些設備的輸出是計算機的輸入。同樣,打印機和監視器則用於將計算機處理的過程和結果輸出,並將這些信號轉換為人類用戶能理解的呈現。從用戶的角度來看,閱讀或查看這些呈現的過程則是接受輸入;人機互動主要是在研究了解機器與人類之間這種過程的交互介面。

在現代計算機體系結構中 CPU 可以使用單獨的指令直接讀取或寫入,被認為是計算機的核心。而 CPU 和主存儲器的組合,任何信息傳入或傳出 CPU /內存組合,例如通過從磁盤驅動器讀取數據,就會被認為是 I/O;CPU 及其電路版提供用於低階編程的存儲器映射 I/O,例如在設備驅動程序的實現中,或者提供對 I/O 通道的訪問。一個 I/O 算法設計是利用內存,而且高效地進行與輔助存儲設備交換數據時,如一個磁盤驅動器。

输入

輸出

雙向

工作模式

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

参见

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.