什么是 epoll? epoll 是 Linux 内核的可扩展 I/O 事件通知机制。取代了 select 与 poll 系统函数,让需要大量操作文件描述符的程序得以发挥更优异的性能。旧有的系统函数所花费的事件复杂度为 O(1),epoll 的时间复杂度为 O(logn)。epoll 实现的功能与 ...
分类:
其他好文 时间:
2021-07-12 17:56:41
阅读次数:
0
在学习linux-0.11内核的时候,感觉查看查看内存描述符比较费劲,因此自己写了一个描述符自动分类的软件,使用html+js。用网页打开即可使用,有需要的朋友自行下载。后面如果使用的人多了我挂到gitee去吧。 ...
分类:
其他好文 时间:
2021-07-01 17:26:05
阅读次数:
0
1、IO模型的基础概念 在学习IO模型前先介绍几个概念。 用户空间和内核空间 进程切换 进程的阻塞 文件描述符 缓存 I/O 1、用户空间和内核空间 Linux操作系统和驱动程序运行在内核空间,应用程序运行在用户空间 os分配给每个进程一个独立的、连续的、虚拟的地址内存空间,该大小一般是4G(32位 ...
分类:
编程语言 时间:
2021-06-25 16:53:53
阅读次数:
0
2021-06-19 关键字: 1、shell中的文件描述符 与Linux文件系统一样,shell中也有文件描述符的概念,且每一个shell进程中都默认有三个已打开的文件描述符。它们分别代表“标准输入”、“标准输出”与“错误输出”,对应的文件描述符号分别为 0、1、2。描述符号3及以后的正整数值可自 ...
分类:
系统相关 时间:
2021-06-19 19:36:57
阅读次数:
0
shutdown和close都可以用来关闭TCP连接, 那么它们有区别与联系呢? 下面来研究下这个问题: 1. close 关闭连接和套接字. 成功返回0; 失败为-1, errno被设置 #include <unistd.h> int close(int fd); close会把描述符(sockf ...
分类:
系统相关 时间:
2021-06-06 19:09:08
阅读次数:
0
默认nginx不开启缓存 open_file_cache off; nginx可以缓存以下三种信息: (1) 文件元数据:文件的描述符、文件大小和最近一次的修改时间 (2) 打开的目录结构 (3) 没有找到的或者没有权限访问的文件的相关信息max=N:可缓存的缓存项上限;达到上限后会使用LRU算法实 ...
分类:
其他好文 时间:
2021-06-02 19:44:50
阅读次数:
0
1:开启对页面的压缩处理 gzip on; //开启压缩 gzip_min_length 1000; //小文件不压缩 gzip_comp_level 4; //压缩比率 gzip_types text/plain text/css application/json application/x-ja ...
分类:
其他好文 时间:
2021-06-02 15:02:12
阅读次数:
0
1.描述符表与socket 每个socket都有一个描述符,指向对应socket的结构,但是对这个sockfd的读写是怎么和缓冲区以及文件连接起来的呢? 数据结构: https://www.kernel.org/doc/htmldocs/networking/API-struct-socket.ht ...
分类:
其他好文 时间:
2021-05-25 18:31:55
阅读次数:
0
select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说 ...
分类:
其他好文 时间:
2021-05-24 13:23:15
阅读次数:
0
相关文件 muduo/net/Channel.h muduo/net/Channel.cc 作用 Channel可理解为一个文件描述符fd和如何处理它的事件的回调函数的封装。 Channel负责注册和响应IO事件. muduo用户一般不直接使用Channel,而使用更上一层的封装,如TCPConne ...
分类:
其他好文 时间:
2021-05-24 12:25:58
阅读次数:
0