Linux IO 模式及 select、poll、epoll 详解

一、概念说明

1、内核态(内核空间)和用户态(用户空间)的区别和联系?

用户空间是用户进程所在的内存区域,系统空间是操作系统所在的内存区域。

为了保证内核的安全,处于用户态的程序只能访问用户空间,而处于内核态的程序可以访问用户空间和内核空间。

2、文件描述符 fd

Linux 将所有设备都当做文件来处理,文件描述符来标识每个文件对象。

当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。

3、缓存 IO

Linux 的缓存 IO 机制中,操作系统会将 IO 的数据缓存在文件系统的页缓存中,也就是说,数据会先被拷贝到操作系统内核的缓冲区,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间


二、IO 模式

对于一次 IO 访问(以 read 为例),数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间。所以说,当一个 read 操作发生时,会经历两个阶段:

1、等待数据准备(Waiting for the data to be ready)

2、将数据从内核拷贝到进程中(Copy the data from kernel to the process)

linux 系统产生了下面五种网络模式的方案:

1、阻塞 I

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值