Nginx(7)--5种IO模型

本文介绍了Linux中IO的基本概念,强调了内存IO、网络IO和磁盘IO的区分,并详细阐述了阻塞IO、非阻塞IO、IO复用、信号驱动IO和异步IO这五种模型的工作原理。在IO复用模型中,提到了select、poll和epoll在nginx中的应用。
摘要由CSDN通过智能技术生成

1.IO概念

  • IO(Input/Output,输入/输出)即数据的读取(接收)或写入(发送)操作
  • 通常用户进程中的一个完整的IO分为两个阶段:用户进程空间–>内核空间、内核空间–>设备空间(磁盘、网络等)
  • IO有内存IO、网络IO和磁盘IO三种,通常说IO指的是后两种
    在这里插入图片描述
  • Linux中进程无法直接操作I/O设备,必须通过系统调用请求kernel来协助完成I/O动作,内核会为I/O设备维护一个缓冲区
  • 对于一个输入来说,进程IO系统调用后,内核会先看缓冲区中有没有响应的缓存数据,没有的话再到设备中读取
  • 因为设备IO一般速度较慢,需要等待;内核缓冲区有数据则直接复制到进程空间
  • 对于一个网络输入操作通常包括两个不同阶段:
  • 1>等待网络数据到达网卡–>读取到内核缓冲区,数据准备好
  • 2>从制数据到进程空间

2.IO模型的分类

  • 5种IO模型分别是阻塞IO模型、非阻塞IO模型、IO复用模型、信号驱动的IO模型、异步IO模型

阻塞IO模型
在这里插入图片描述

  • 进程发
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值