linux
文章平均质量分 74
zacharytse
这个作者很懒,什么都没留下…
展开
-
epoll总结
文章目录文章概述epoll底层实现为什么要使用红黑树epoll如何保证线程安全红黑树实现线程安全就绪队列实现实现安全 文章概述 这篇文章主要介绍了epoll底层的数据结构,epoll如何保证线程安全 epoll底层实现 epoll使用红黑树存储连接。产生了中断事件的连接会被放入就绪队列中。调用epoll_wait时直接返回就绪队列 为什么要使用红黑树 使用hash浪费空间,B+树主要是为了优化访问IO,所以这里适合使用红黑树索引连接 epoll如何保证线程安全 红黑树实现线程安全 插入和删除操作在整颗树上原创 2021-01-09 19:58:23 · 407 阅读 · 0 评论 -
linux内存管理
文章目录内存分配机制虚拟内存MMUNUMAzone三级缓存机制大内存的分配slab内存回收机制页标记具体流程存在的问题 内存分配机制 linux中将内存区域分为了3块 DMA NORMAL:OS占用的内存空间 HIGH:非OS占用的内存空间 虚拟内存 作用如下: 提供了进程间的数据共享 实现了物理内存按需分页 降低了使用物理内存的门槛 虚拟内存的管理使用了红黑树,key为起始地址,value为vma MMU memory management unit,也叫分页内存管理单元。它负责虚拟地址到物理原创 2021-01-09 18:39:19 · 315 阅读 · 0 评论 -
一文搞懂select,poll和epoll
文章目录文章概述BIONIOselect,poll和epoll总结 文章概述 select,poll,epoll这3个函数看了很多博客,但一直没弄懂多路复用是怎么回事。后来在b站上看到netty的视频,没想到学这个的时候弄懂了,所以想在这篇文章中记录下自己对多路复用的理解。我想先从最简单的BIO模型讲起,然后讲下非阻塞型的IO,也就是Nonblocking IO,接下来再来说select、poll、epoll。完整的代码可以见https://github.com/zacharytse/NIOLearn. B原创 2021-01-06 19:54:13 · 675 阅读 · 0 评论