自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 性能分析工具

perf安装:yum install perf -y使用:perf record ./a.outperf report可以看到各个函数花费的时间。

2020-12-22 19:00:27 203

原创 【网络编程】网络编程的坑

echo服务阻塞  假设这样一个简单的echo场景:客户端向服务端发送20M的数据,发送完之后接收数据,而服务端每次接收4k数据,接受完全部数据之后进行回显。这样的客户端和服务端程序启动之后,会意外的阻塞。阻塞的点在哪里呢  因为客户端发送完数据之后才会进行接收数据,而服务端接收到了4k数据之后就会进行回显,这时服务端发送到客户端的内核缓冲区中,注意这时客户端并没有读取数据,所以客户端的接收缓冲区中的数据一直积累,直到积累到某个阈值,此时服务端的tcp advertised window大小为0,tcp

2020-12-18 18:44:06 242 2

原创 【linux0.12】超级块、缓冲块、i节点等数据结构

因为代码中很多地方都用到了这几种数据结构,所以还是统一的放在一篇文章中把。缓冲头结构struct buffer_head { char * b_data; //指向真正缓冲块的指针 unsigned long b_blocknr; //数据的逻辑块号 unsigned short b_dev; //设备号 unsigned char b_uptodate; //更新标识:数据是否更新(有效),理解为有效更好

2020-12-16 16:22:39 370

原创 【linux0.12】i节点操作

TODO

2020-12-14 14:08:36 359

原创 【linux0.12】从open系统调用到磁头柱面扇区下篇-----代码讲解

文章目录前言sys_open前置知识代码讲解总结open_namei代码讲解总结dir_namei代码讲解总结get_dir代码讲解其他follow_link总结前言  本文只是讲解打开常规文件(不是块设备文件、字符设备文件等)过程中的主要逻辑,包括目录项的查找,文件名到i节点的映射,i节点的使用,盘块的使用,请求队列的组织与使用,限于篇幅也不会面面俱到的把代码中每个细节都讲到,只讲解其中的骨架代码,一些细节部分如i节点管理与操作,目录项管理与操作等放在单独的文章中讲解,防止主次不分。另外代码中还含有高

2020-12-13 16:47:18 174

原创 【linux0.12】盘块位图和i节点位图的管理与操作

TODO

2020-12-13 15:41:15 620

原创 【linux0.12】目录项管理与操作

TODO

2020-12-13 13:44:25 212

原创 Google C++编程风格指南阅读笔记之命名、注释和格式

前言本文源自Google C++编程风格指南,砍掉了其中比较common的部分,保留了个人认为最有价值的部分,并合入了自己的理解。原文下载连接:Google C++编程风格指南命名约定类型命名类型名称的每个单词首字母均大写,不包含下划线如:MyExecitingClass,IOService变量命名变量名一律小写,单词之间使用下划线连接。类和结构体的成员变量以m_开头(原文是类的成员变量以_结尾,结构体不用)枚举命名枚举的命名应当和宏一致宏的命名宏的命名使用全大写字母加下划线,如MY_M

2020-12-11 16:58:55 294

原创 【linux0.12】文件高速缓冲区管理

概述  为什么要有高速缓冲区?直接对磁盘进行IO操作的速度与内存和cpu处理的速度是相比是非常慢的,为了提高系统性能,设立了高速缓冲区。内核访问块设备中的数据,都需要经过高速缓冲区来间接地进行操作。  高速缓冲区对外提供了三个接口,块读取函数bread、块提前预读函数breada和页块读取函数bread_page,页块读取函数一次读取一页内存所能容纳的缓冲区块数(4块)。我们只讲解其中的bread函数,用户只需提供设备号和逻辑块号就可以通过bread来进行操作高速缓冲区,以达到间接操作磁盘的目的。  

2020-12-10 09:09:49 329

原创 sourceInlight解决symbol not found的问题

原因是有的文件没有被导入,比如.inl文件解决方法:1. 点Options中的File Type Options选项2. 增加.inl类型的文件3. 点击Project选项中的Add and Remove Project Files4. 点Add All并勾选第二个选项:递归增加子目录5. project 选项卡并点击Synchronize Files6. 勾选强制解析所有文件,然后start...

2020-12-04 10:39:55 555

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除