IO
IO
面试官:谈谈你对“零拷贝”的理解?
无论是传统 IO,还是零拷贝,其中两次 DMA 拷贝都不能省略,这是为什么?零拷贝技术除了 MMap 和 sendFile() 之外,还有没有其他的技术实现?
47    2024-09-27
面试官:谈谈你对IO多路复用的理解?
IO 多路复用技术是一种允许单个线程管理多个网络连接的技术,它使得服务器能够高效地处理大量的并发连接而不需要为每个连接创建一个独立的线程或进程。
48    2024-09-26
面试官:说说零拷贝的实现原理?
无论是传统 IO,还是零拷贝,其中两次 DMA 拷贝都不能省略,这是为什么?零拷贝技术除了 MMap 和 sendFile() 之外,还有没有其他的技术实现?
39    2024-07-31
落泪!滴滴一面,凉了......
IO多路复用是一种高效的IO处理方式,它允许单个进程或线程同时监视多个文件描述符,如网络连接或文件句柄。当这些描述符中的任何一个就绪时,比如有数据可读或可写,多路复用机制就能够通知应用程序进行相应的读写操作。
48    2024-05-15
图文详解io_uring高性能异步IO架构(原理篇)
释放已完成IO请求只需要将CQ Ring head指针自增1指向下一个CQE即可,这样做的目的是防止
53    2023-12-28
彻底理解IO多路复用,你学会了吗?
实际上所有的I/O设备都被抽象为了文件这个概念,一切皆文件,Everything is File,磁盘、网络数据、终端,甚至进程间通信工具管道pipe等都被当做文件对待。
新一代异步IO框架 io_uring
io_uring的性能基本超越linux 内核以往任何软件层面的IO解决方案,达到了与硬件级解决方案
44    2023-04-12
Redis的IO多路复用以及Select,Epoll的演进
当socket 写缓冲区已满,假如设置了非阻塞I/O,应用程序调用send会返回EAGAIN,告诉应用程序写缓冲区已满,下次再来尝试调用,这时候就有一个尝试的时机问题,应用程序怎么知道socket 缓冲区可写呢?如果频繁调用send,会浪费CPU。
44    2023-03-01
说透IO多路复用模型
在实际开发过程中,实际上LT更易用一些,毕竟系统帮助我们做了大部分校验通知工作,之前提到的SELECT和POLL,默认采用的也都是这个。但是需要注意的是,当有成千上万个客户端连接上来开始进行数据发送,由于LT的特性,内核会频繁的处理通知操作,导致其相对于ET来说,比较的耗费系统资源,所以,随着客户端的增多,其性能也就越差。
谈谈你对IO多路复用机制的理解
IO多路复用是一种同步的IO模型。利用IO多路复用模型,可以实现一个线程监视多个文件句柄;一旦某个文件句柄就绪,就能够通知到对应应用程序进行相应的读写操作;没有文件句柄就绪时就会阻塞应用程序,从而释放出CPU资源。
43    2022-08-26