计算机的IO操作到底是同步的还是异步的?

本文探讨了计算机的IO操作在操作系统和用户程序层面的不同表现。在操作系统层面,所有IO都是异步的,通过中断机制实现。而在用户程序层面,IO可以是同步或异步,取决于用户选择和应用场景。常见的异步实现方式包括异步IO接口、多线程、多进程以及消息队列等中间件产品。
摘要由CSDN通过智能技术生成

前言

大家看操作系统教科书的时候,可能会看到操作系统的目的之一,就是为了让计算机能够异步地进行IO操作,以此来避免CPU处于长时间等待状态,浪费资源;而在学习IO命令和进行网络编程的时候,又发现有一些函数是异步的,有些函数是同步的。

那么IO操作到底是异步的还是同步的?这个问题曾经困扰了我好久,今天打算整理一下我的思考。

从不同的层面理解IO操作

首先我们要学会从不同的层面去看IO操作。

大家都知道,从计算机的模型是分层的,最底层是计算机硬件层,也就是实际的物理设备;再往上是操作系统层,负责调度系统资源,并提供给用户系统调用接口;最上层才是用户程序层,用来实现各种各样的功能。而在不同的层次,IO的性质也是不一样的。在这里我先说上个问题的结论:

在操作系统的层面来讲,至少是对于现代的操作系统来说,所有IO都是异步的;而从用户程序层面讲,IO是异步还是同步是由用户决定的。

操作系统层面的IO

前边说到: “在操作系统的层面来讲,至少是对于现代的操作系统来说,所有IO都是异步的”。 要理解这句话,我们首先要回顾一下操作系统的历史:

计算机诞生之初,是没有操作系统的概念的。那个时候所有任务都是串行执行的,也可以说,IO操作是同步的。计算机从打孔纸上读取数据

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值