本页使用了标题或全文手工转换

I/O

维基百科,自由的百科全书
跳转至: 导航搜索

I/O英语:Input/Output),即输入/输出,通常指数据在内部存储器和外部存储器或其他周边设备之间的输入和输出。

輸入/出(英文:Input/Output,簡寫為 I/O)是信息處理系統(例如計算機)與外部世界(可能是人類或另一信息處理系統)之間的通信。輸入是系統接收的信號或數據,輸出則是從其發送的信號或數據。該術語也可以用作行動的一部分;到“執行I/O”是執行輸入或輸出的操作。

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

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

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

用途[编辑]

输入[编辑]

輸出[编辑]

雙向[编辑]

工作模式[编辑]

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

参见[编辑]