自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 nuraft源码笔记——(4)

关于集群配置文件的处理。

2023-07-29 15:58:15 256 1

原创 nuraft源码笔记——(3)

关于快照的处理和分发。

2023-07-29 15:57:22 212

原创 nuraft源码笔记——(1)

根据mit6.824的思路,来梳理nuraft中的实现过程。

2023-07-29 15:56:31 199

原创 nuraft源码解读——(2)

梳理一遍raft和F和L之间同步日志的过程在日志中,会有两个部分同步日志,一个是在提交时,会发送一个同步请求,另一个是server会在后台维护一个同步日志的线程。

2023-07-29 15:13:31 149

原创 【Linux】—中断处理流程

简单了解Linux中实现中断过程。这里参考一篇博文、《深入Linux内核架构》和Linux 2.6.11源码,基于ARM架构实现的中断过程来理解中断的实现过程。|set_type|设置IRQ的电流类型。该方法主要使用在ARM、PowerPC和SuperH机器上。,一个中断可以有多个处理函数,当一个中断有多个处理函数,说明这个是共享中断。将新注册的action,挂载到irqaction上。将irq和action进行关联。开机启动时会进行一些中断注册。设定irqaction。

2023-06-22 10:04:03 862

原创 【Linux】—elf文件的加载

但是内存信息的排布,并不是唯一的,其内容地址可变。Section Header Table 描述了所有节信息表,而 Program Header Table 其实描述的是所有的 段信息表。此时,在ELF文件头中就会有一项PT_INTERP,记录了程序的解释器路径。load_elf_binary,主要负责对可执行文件中elf文件读取,并提前做好相关的内存布局。找到段信息中为栈类型的,根据其标志,来调整相关标志变量。对进行的段、堆、代码段、数据段地址进行设置。根据loc中信息,确定解释器的类型。

2023-06-08 23:45:00 1037 1

原创 【Linux】—内存映射(线性映射、非线性映射、逆映射)

如果存在大文件的情况,那么需要将文件的不同部分以不同顺序映射到虚拟内存的连续区域中,通常必须使用几个映射,这样代价很昂贵。在实际的运行中,一个物理内存,可能被多个进程使用,与多个vm之间进行关联。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mlAUBZP0-1686223392527)(img/内存映射/5.png)]但是存在一个疑问,在将vm和file之间进行挂载的过程中,没有看到vm和address_space之间的关联,也没有看到其与rb_tree之间的挂载情况。

2023-06-08 19:25:32 878

原创 【Linux】—内存管理

图1. 总体结构.

2023-06-08 19:22:56 498

原创 【mit6.828】Lab02

前言在这一节中,会关注操作系统的内存管理,内存管理分为两个部分,一个部分是服务于操作系统的物理地址分配器,这里分配器能够操作4096个比特,称作pages。第二个部分则是虚拟内存,其通过内核和用户软件将虚拟地址映射到物理地址上。在实验前,将代码拉取下来,并以此完成exercise目录前言Part 1: Physical Page Managementpart 1 小结Part 2: Virtu...

2022-09-12 23:08:00 46

原创 【mit6.828】Lab01

前言mit6.828每个实验的相关步骤以及自己的解读参考lab中的介绍和其他博客的解读目录前言1. Part1: PC Bootstrap2. Part 2:The Boot Loader3. Part 3:The Kernel3.1 Stack4. 小结1. Part1: PC Bootstraplab01的相关知识的了解Lab 1 Part1Exercise 1要求:...

2022-09-08 10:52:00 28

原创 Apollo学习(1)—预测

前言本文将对Apollo预测模块进行梳理,了解Apollo中进行预测的具体流程和工作原理如上述架构图所示,预测处于感知与规划之间,它会对感知到的障碍物信息进行分析,并对障碍物未来一段时间内的行为及轨迹进行预测,并将信息反馈到规划模块,使规划模块能够生成更加合理、安全的轨迹我会根据每个不同的文件,来对Apollo预测模块进行解读1. ReadMe预测模块中的ReadMe出了该模块的输...

2022-06-11 22:16:00 114

原创 procotol buffer 的使用(二)

protocol buffer(二)前面我们针对prcuaotocol进行了简单的基本使用,例如一个.proto中message的使用,经过前面的例子,我们对protocol已经有了一个基本的了解,下面我们则进一步了解服务器数据传输中为什么要使用protocol buffer?学过计算机网络,我们就应该知道网络世界中进行数据传输离不开网络协议的配合。在网络世界里,只要通信双方遵守相同的通信协议,就可以实现数据传输,同样的,在实际的业务开发中,我们在基于底层的网络协议外,也需要在上层使用一套通信协议,p

2020-05-09 11:55:13 349

原创 protocol buffer 的使用(一)

Protocol buffer(一)1、什么是Protocol bufferProtocol buffer是由Geogle开发的通用通信协议,一种语言无关、平台无关、扩展性好的用于通信协议、数据存储的结构化数据序列化方法。2、protocol buffer的使用及数据类型介绍protocol buffer(下面介绍时,统称为p_b)在使用上,有些像c语言的结构体,声明结构体名称及结构体内部的相关变量。 下面通过一个示例,来了解p_b的相关结构体定义及其类型message Person { re

2020-05-09 11:53:39 499

原创 Linux常用指令

Linux相关指令的学习文件目录相关文件传输ftpscplscdpwdmkdirtouchcpmvrmcatwhichgrep文件压缩与解压缩gzipunziptardifffind系统使用free网络使用wget网络配置routeifconfigethtool网络服务器mysqlmysqlshow进程和作业管理ipcrmipcsservicepstreeeps文件过滤分割与合并wcsplit内核...

2020-05-07 11:08:47 203

原创 共享内存中出现段错误

关于共享内存中,另一个程序访问时出现段错误的问题https://blog.csdn.net/a838502647/article/details/100585439

2020-05-05 19:53:21 2070

原创 Linux系统编程----线程使用方法

Linux系统编程---进程相关接口介绍简述相关接口1、线程创建2、线程终止3、线程同步4、互斥量5、读写锁6、条件变量7、自旋锁简述前面描述了Linux下进程的创建过程,在Linux下,我们可以用fork()来开创一个进程空间和父进程搭配执行,但在实际开发中,仍旧多用线程的方法去实现。关于线程与进程间的不同,我们可以通过上面这个该篇博文了解进程和线程关系及区别相关接口1、线程创建#in...

2020-04-25 10:18:37 244

原创 Linux系统编程---进程相关接口介绍

Linux系统编程---进程简述相关接口fork()函数简述在日常的开发中,接触的较多可能是多线程的实现。当要实现并行处理时,Linux提供开辟线程和子进程的方式去实现,但从开销上来看,线程是要优于子进程的开辟,但在一些情况下,开辟子进程也是我们去实现功能的首选,相关接口fork()函数/接口描述/fork()后,会开辟一个子进程,通过下面的例子,我们可以发现通过对进程描述符的判断,我...

2020-04-21 20:43:03 593 7

原创 Delphi----TThread的使用方法

Delphi----TThread的使用方法TThread的使用方法简述继承的TThread接口具体实现相关补充(TFUN,property)TThread的使用方法简述TThread是Delphi的一个线程类,与win32的的系统调用相比,TThread的功能更丰富,对用户而言自由度更高。下面的代码,会针对TThread的继承使用和同步进行展开。继承的TThread接口 TFun =...

2020-04-21 10:43:54 2083

原创 LINUNX系统编程-----信号

LINUNX系统编程-----信号简述Linux信号处理的相关函数函数signal信号集函数sigprocmask函数sigpending函数sigsuspend简述Linux中信号属于软中断,很多比较重要的应用程序都需要处理信号,并利用信号提供了一种异步事件的方法。在实际的应用中,我们可以使用系统提供的信号,也可以让程序响应我们自定义的相关信号。Linux信号处理的相关函数函数signa...

2020-04-19 15:14:16 186

原创 【sylar服务器】TcpServer网络连接管理

目录TcpServer1、TcpServer1.1、私有成员1.2、sock连接处理1.3、思考1.4、致谢[1]sylar服务器 https://github.com/sylar-yin/sylarTcpServer1、TcpServer前面讲的内容,大多为本机资源的调度,作为服务器程序,关于客户端连接,同样需要注意。TcpServer类负责接收外部客户端的连接,并...

2020-03-16 11:59:00 33

原创 【论文总结】MapReduce

目录MapReduce1、MapReduce1、介绍2、编程模型3、实现4、容错机制5、技巧6、思考MapReduce本文只对论文中对分布式设计的相关算法做总结交流1、介绍MapReduce是谷歌工程师提出的一个编程模型,用于处理、产生大数据集的相关实现。MapReduce在计算上实现是基于计算机集群,这篇论文就是在描述在集群进行计算时资源管理、分配的方法。2、编程模型- Ma...

2020-03-11 10:16:00 22

原创 【sylar服务器】IO资源管理调度

目录IO资源管理调度1、IO管理调度1.1、事件枚举1.2、socket事件上下文类1.3、IO管理的函数1.4、类中私有成员1.5、总结1.6、致谢[1]sylar服务器 https://github.com/sylar-yin/sylarIO资源管理调度基于TCP/UDO实现服务器与客户端之间的连接,后台需要时刻接收来自客户端的连接信息,在高并发的环境,如何去实...

2020-03-10 15:26:00 18

原创 【Linux系统编程】——进程控制

目录进程控制1、进程标识2、函数fork3、函数exit4、函数wait和waitpid5、函数waitid6、wait3和wait47、竞争条件8、函数exec9、函数system进程控制1、进程标识若要对进行相关操作时,那么需要获取相关进程的标识信息。一般情况下,获取本身的pid即可pid_t getpid(void); //返回进程的进程IDpid_t getppid(voi...

2020-03-01 21:19:00 22

空空如也

空空如也

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

TA关注的人

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