目录
4. 信号驱动 I/O(Signal-driven I/O)
I/O 模型(Input/Output Model)定义了程序与外部设备(如磁盘、网络、终端等)之间的数据交互方式。在计算机系统中,I/O 操作通常是程序与硬件设备之间的交互,而操作系统为此提供了不同的 I/O 模型来支持不同的并发、效率和资源管理需求。常见的 I/O 模型有以下几种:
1. 阻塞 I/O(Blocking I/O)
在阻塞 I/O 模型中,当程序发起一个 I/O 操作(例如读文件、接收网络数据)时,操作系统会阻塞当前线程,直到 I/O 操作完成。换句话说,程序会被挂起,直到 I/O 数据完全读取或写入完毕。此时线程无法做其他事情,直到操作完成。
-
优点:
-
编程简单,容易理解,应用程序按顺序执行,不需要处理多线程或事件驱动的复杂逻辑。
-
-
缺点:
-
性能差:如果 I/O 操作需要很长时间,程序将一直等待,浪费时间,无法进行其他操作,造成 CPU 的低效利用。
-