linux
文章平均质量分 51
chauneyWang
专注学习,专注进阶,专注自己
展开
-
网络IO原理汇总:五种IO模型
网络IO一直都是网络通信的基础,经过多年的演变,现在也衍生出了很多种不同的通信方式,今天就大概说明一下每种方式的原理以及优劣。 阻塞IO 这是最容易理解的一种IO模型,顾名思义,用户层调用了系统IO之后需要阻塞等待内核的回复。这样虽然说消息的准确性比较高,但是在高并发的场景下,如果一个消息一直未收到,那么就会一直阻塞,及其影响通信的效率。 ...原创 2021-03-15 23:48:49 · 454 阅读 · 0 评论 -
进程fork、exit及wait函数
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动。 我们通常使用进程的创建、销毁、退出、等函数对进程进行操作。 fork函数 pid_t fork(); // 父进程返回的是子进程的ID,子进程返回的是0 子进程会复制父进程的堆和栈和数据空间,但是共享代码段。代码段实现使用写时复制法,发现有不同的地方再分出一个修改的副本。同时,在fork函数执行之前已打开的文件描述...原创 2019-05-20 00:02:29 · 800 阅读 · 0 评论 -
内存池解析
今天来大概记录一下内存池的原理。内存池实际上就是将内存集中在一起,需要取内存的时候到内存中取。主要是用在需要频繁的请求,需要不断的操作内存进行malloc和free,这样会形成内存的碎片化。 那么我们应该如何去实现一个内存池? 首先内存池其实需要封装成一个组件,能够在不同的项目中进行复用。因此就需要确定内部的基础结构以及api,并且需要测试函数确认自己的模块正确。 内存池的结构定义: 内存中一页是4k,因此一般小于4k的话就属于小块内存,大于4k的话属于大块内存。如果当前的内存是小块内存的话,比较难办的一个原创 2021-02-21 21:19:41 · 230 阅读 · 0 评论 -
线程池源码剖析
线程池源码剖析欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdo原创 2021-02-18 15:43:26 · 90 阅读 · 0 评论 -
Linux总结篇
Linux总结篇系列-第一篇 指路篇: https://zhuanlan.zhihu.com/p/303994412 Linux总结篇系列-第二篇 数据结构篇: https://zhuanlan.zhihu.com/p/304044744 Linux总结篇系列-第二篇 问答篇: https://zhuanlan.zhihu.com/p/304298927原创 2021-02-10 23:07:56 · 67 阅读 · 0 评论 -
Linux内核相关知识总结
Linux内核总体架构总体架构进程管理内存管理文件系统设备驱动网络三级目录 总体架构 Linux内核在C/C++程序员的技术栈中占据着举足轻重的作用,不仅仅是考验一位程序员扎实的基本功,也考验对于整个架构的熟悉程度。理解linux内核中整个的实现之后,会对自己做项目时底层的通信以及数据存储等有很大的帮助。 Linux内核总共有五大部分组成。进程 进程管理 内存管理 文件系统 设备驱动 网络 三级目录 ...原创 2020-10-28 00:14:36 · 578 阅读 · 0 评论