自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++红黑树

红黑树为什么要设置nil节点?对于插入情况下,有多少种情况分析?

2025-08-03 09:47:25 51

原创 C++中typename基本用法

在使用模板类中定义的类型的时候,且该模板参数并没有定死(编译写死)的时候,必须使用typename;而在后来开发的时候根据需求对T模板类型已经确定下来,如vector<int>就不需要加typename

2025-08-01 22:36:35 500

原创 Linux物理内存模型、内存管理架构

物理内存被最底层的page结构体管理。由于物理内存可能并非连续,由此引出了三种物理内存模型,特别提到稀疏内存模型可以支持动态热插拔等功能。最后谈到了物理内存模型的上层管理结构---Node、Zone、Page三层内存管理结构。其中每一个NUMA节点都会有自己的Node节点,而Node又划分为多个Zone区域,Zone区域由PFN关联到page,从而访问到真实的物理内存。

2025-07-30 00:25:59 976

原创 mmap的调用层级与内核态陷入全过程

mmap的层级调用详解,用户态是如何转换到内核态的?syscall是什么?同时与之前文章中的内核数据相结合,方便理解记忆。且注意mmap对于文件映射,必须要是已经打开的文件;对于匿名映射fd传入-1。

2025-07-27 22:55:17 569

原创 Linux内存映射原理

普通文件每一次读写都需要3次拷贝:上层应用、C语言、内核态、磁盘。而文件映射则是把磁盘中的数据拷贝到物理内存之后,在内存中读写,适合的机会写回磁盘,大大减少了从物理内存拷贝到磁盘的步骤。最后,匿名映射则根本不会有写回磁盘的操作,纯内存,通信效率最高。

2025-07-23 23:42:30 843

原创 Linux打开、读写一个文件内核做了啥?

files_struct是一个进程管理其打开文件的结构体,在他之中核心在于文件描述符表和文件描述符与file的映射。而file则是真正描述一个打开文件的各种信息的结构体。然后引出了读写文件时候的3层缓冲区,以及fork函数对于files_struct的写时拷贝

2025-07-22 22:01:48 1003

原创 Linux物理地址空间入门:从硬件到内核内存的基石

物理内存的理解

2025-07-21 22:20:53 795

原创 用户虚拟地址空间布局架构

vm_area_struct的作用是给每个区域的详细描述,而mm_struct仅仅是在整个进程层次上进行描述,宏观作用。

2025-07-21 16:31:00 855

原创 Linux内核空间的布局

内核空间布局了解,用户空间在分配内存的本质是规划虚拟空间,在第一次实际使用时候才会落实到物理内存

2025-07-19 20:47:24 1008

原创 RCU机制及常见锁的理解

锁也是一种资源(类似于磁盘网卡等外设资源),只不过位于内核空间。RCU是多读少写的最优解。

2025-07-17 23:10:35 868

原创 CPU架构、三级缓存以及内存优化屏障

冯诺依曼体系架构下的内存、缓存布局;常见的两种CPU架构;以及内存屏障的理解。

2025-07-17 23:01:46 1041

原创 实时调度类

Linux实时调度类,采取优先级队列数组来管理调度实体,从而做到抢占式调度。同时还分为FIFO和RR两种类型,以适应对时间敏感情况不同的实时进程。

2025-07-16 20:38:31 973

原创 CFS完全公平调度器

Linux的CFS调度原理、优化了上篇文章对于进程创建的理解

2025-07-16 15:18:46 721

原创 进程创建与退出的原理

linux进程的创建与销毁过程,并涉及到了该过程中内核的数据结构发生了什么样的变化

2025-07-15 18:17:04 939

原创 Linux内核结构概览

说明了宏内核、微内核的优缺点,并提到Linux的折中处理策略

2025-07-14 14:22:15 288

原创 SPI协议

SPI协议的简单介绍

2025-05-05 12:48:55 1139 1

原创 IIC协议

IIC协议原理讲解

2025-04-29 11:22:10 1839

原创 UART串口通信协议

串口简单介绍、实现了基础的通信功能

2025-04-23 23:19:11 2946

原创 STM32定时器---基本定时器

STM32基本定时器的理解

2025-04-21 16:52:47 1100

原创 STM32时钟树

时钟树的理解

2025-04-21 09:22:12 1057

原创 STM32---外部中断EXTI

STM32的GPIO配置成外部中断

2025-04-20 00:37:41 1376 1

原创 STM32---GPIO

c++封装GPIO

2025-04-18 14:27:00 1212

原创 STM32各个外设和CortexM3内核的关系

各种外设和STM32芯片架构的关系理解

2025-04-18 00:52:37 872

原创 深入理解单片机的运行流程

深刻理解单片机的运行流程,代码是如何下载到flash的,又是如何从flash读取到内核运算处理的。

2025-04-17 01:25:42 2238 1

原创 使用KeilAssistant代替keil的UI界面

keil Assistant的使用

2025-04-16 16:27:20 714

原创 keil可以使用c++编程吗?

keil如何使用C++编程,及C++11以上如何更换库文件以支持C++新特性

2025-04-15 13:09:24 1048 1

原创 keil如何创建一个工程

如何创建一个工程,理解工程文件树

2025-04-14 21:50:53 1197

原创 数据结构---跳表

skiplist本质上也是一种查找结构,用于解决算法中的查找问题,跟平衡搜索树和哈希表的价值是一样的,可以作为key或者key/value的查找模型。

2025-04-14 11:36:35 1194

原创 B+树和B*树及数据库索引了解

B+树,B*树的理解。数据库索引使用B+树的原理

2025-04-10 21:33:16 828

原创 数据结构---B树

B树的产生原因以及优势:1.高度降低2.一个节点存多个关键字。并且简单实现了一个B树。

2025-04-10 00:41:22 1100

原创 高并发内存池整体测试和性能分析

性能瓶颈分析

2025-04-07 17:54:35 912

原创 PageCache

PageCache的实现

2025-04-07 16:08:49 262

原创 CentralCache

CentralCache

2025-04-07 13:06:11 518

原创 ThreadCache

ThreadCache的实现

2025-04-07 12:50:15 901

原创 内存池整体框架设计

TCmalloc的三层架构

2025-04-06 20:37:24 735

原创 定长池的实现

定长池简介

2025-04-04 18:55:24 954

原创 new/malloc到底做了啥?

malloc的底层认知---内存池引入

2025-04-02 22:06:39 786

原创 数据库的数据类型

因为时间戳实际上存储的是一个4字节的整数,需要查看的时候再由Mysql自动转化为字符串类型,而timedate本身就是一个字符串这导致了他们字节数的不同。当然由于时间戳只有4字节,他能表示的范围肯定是有限的(varchar这里却是字节长度了,这是因为varchar是一个可变长度的char,他会随着你插入的字符串的长度二动态分配。比如(在utf-8下,每个汉字3个字节)你要存“中国人”,他就会给你分配3*3+1=10个字节。时间戳是一个自动由Mysql维护的字段,每次当你增改这一行的时候,时间戳会自动更新。

2025-03-31 16:22:56 427

原创 多路转接epoll

1.调用epoll_create创建一个epoll句柄;2.调用epoll_ctl, 将要监控的文件描述符注册到红黑树;3.调用epoll_wait, 等待文件描述符就绪后, 去队列中拿;

2025-03-27 19:37:40 670

原创 多路转接Poll

在之前我们讲过select是最古老的多路转接方案,古老就意味着他不是很方便使用,他需要用户手动保存fd_set这个位图结构,来表示读写事件的关注与否或者就绪性。而且由于fd_set的大小是固定的,这就意味着他能管理的套接字文件描述符是有限的。针对这两个问题,人们研究出来了poll,他一方面不需要用户手动保存位图了,还能让poll管理的文件描述符是无限多的,只要你的内存足够大。

2025-03-25 19:15:36 436

空空如也

空空如也

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

TA关注的人

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