自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 linux内核 进程地址空间

1,进程地址空间在内核当中使用vm_area_struct数据结构进行描述,简称为VMA,表示进程线性区/进程地址空间。地址空间属于用户进程(用户进程mm_struct数据有对应成员)。2,PAD是指进程可寻址的虚拟地址空间。如果是64位处理器架构,进程可以寻址256TB的用户态地址空间,但是进程没有权限取寻址内核空间的虚拟地址,我们只能通过系统调用方式取间接访问。linux内核缺页异常处理会报错,严重的情况下:“segment falut”终止进程。3,内存区域包括项目如下:代码段映射、数据段映射(可执行

2024-03-25 20:40:34 175

原创 linux内核--进程调度算法

【代码】linux内核--进程调度算法。

2024-03-22 21:13:16 349

原创 linux内核 --中断实现原理

8,IRQ编号从0-31,那CPU收到中断之后,软件根据0-31中断号是分不清从哪一个终端过来,需要中断控制器本身的编号 + IRQ编号。5,中断控制器:将所有中断发起的中断,通过中断控制器的变成,可以控制每个中断源的优先级,也可以关闭和打开一个中断的操作。7,硬件中断号(物理中断号),linux为系统中注册每一个中断源,都会分配一个唯一编号来识别此中断(IRQ编号)。6,中断产生:在硬件电路中,中断产生只有两种:电平触发方式和边沿触发方式。4,中断是由软件或者硬件触发的一种事件,引起CPU的注意力。

2024-03-21 21:59:22 144

原创 linux内核学习篇 --linux内核启动流程

1,操作系统分界线:内核态和用户态,从实时模式(物理内存)到保护模式(虚拟内存)变化。保护模式:全部使用虚拟内存、页等机制对内存进行保护。相比实时模式更加安全可靠,同时也增加扩展性和灵活性。实时模式:在此模式下地址访问为真实内存地址所在位置,软件可以不受限制操作所有地址的空间和IO设备。2,从启动电源到BIOS:按下电源-->主板会向电源组发出信号-->接收到信号后。当主板收到电源正常启动的信号后,主板就会启动CPU(CPU重置所有寄存器数据,并且初始化数据)。

2024-03-20 21:43:30 306

原创 数据结构篇--排序

思想和冒泡排序一样.从i =1开始遍历,每次把最小值往前放,大的值往后面挤。

2024-03-06 22:21:08 467 1

原创 数据结构篇 - 优先级队列(堆) (记得做题噢~)

①建立一个链表, 在表头以O(1)的复杂度插入操作,然后遍历该链表删除最小元O(N)②建立一个链表, 每次插完进行排序, 然后delete 最小元当然用二叉查找树也可以今天介绍一种时间复杂度较低的手法----堆堆是一颗完全被填满的二叉树. 只有在底层的时候从左到右没填满.同时这样的树也被称为完全二叉树.①对于数组任意 i 位置的元素, 左儿子在 2i ,右儿子在2i + 1。

2024-03-06 21:26:34 328 1

原创 数据结构篇 一文教你掌握树 (记得做题噢~)

树可能是小伙伴们比较恐惧的一种数据结构,在将这个东东前,先明白树的基本操作。

2024-03-04 22:31:37 543 1

原创 数据结构篇 - 一文掌握队列(记得做题噢~)

队列其实就是排队,一个接一个入队出队,也就是俗话说的先入先出(FIFO)ok,到底为止,你已经明白什么是队列了,现在就开始愉快的做题吧~2,简单队列的代码实现。

2024-03-04 21:31:50 346 1

原创 数据结构 一文教你掌握栈 (记得做题噢~)

栈好比一个羽毛球袋,只有一个口让你拿球和塞球。也就是俗话说的后入先出(LIFO)对栈的操作只有两个push 和 pop。

2024-03-04 21:12:34 310 1

原创 数据结构篇---一文教你掌握链表!(记得做题噢)

highval表示最高幂 nums[i]表示从低到高各项系数的值(空为0)①假设一个数据nums[100]元素 0 < nums[i] < 1000。基数排序也不难,基就是你准备排序的准则,可以基于10进制,也可以基于16进制。①增:数组增加一个值需要两部:查找+后移 而链表只需要查找即可。②删:数组删除一个值需要两部:查找+前移 而链表只需要查找即可。③遍历数组nums hash[nums[i]] ++;思想:定义一个数据结构: highval + nums[i]

2024-02-29 23:03:14 344 1

原创 常见通信协议梳理总结---I2C

I2C是一种支持多从机和多主机,用于电子设备数据交换的串行通信协议。● 双线制:I2C使用两根信号线进行通信—— 时钟线(SCL) + 数据线(SDA)● 多从机:多个从机设备可以连到同一条I2C总线上,每个从机都有唯一地址。(MAC地址嘛?● 多主机: 多个主机设备可以通过I2C总线进行通信,通过仲裁机制实现多主机冲突的解决●简单灵活的连接:I2C协议使用统一的总线结构,可以方便地连接各种设备,减少硬件复杂性。

2024-02-27 22:49:12 585

原创 c语言 双端队列构造

【代码】c语言 双端队列构造。

2023-11-28 21:57:33 31

原创 定时器-中断计算

假设TIM_Prescaler = 36000 那就可以分为 72 000 000 / 36 000 = 2000hz 也就是1s个2000hz。OK,通过这个公式,我们可以发现,如果想得到我们想要的一个中断时间,通过设置TIM_Prescaler , TIM_Period, FLK三个参数即可。设置为1000 ,那中断到达时间就是500ms ,设置为2000,那终端到达时间就是1s。TIM_Perio中断计d:定时器周期,也就是多少个hz。FLK: 最大频率,假设为72MHZ。

2023-11-28 19:01:19 322

原创 C语言 优先级队列 大根堆的板子

板子如上所示:其实思想很简单,down就是对一个数组的排序,利用树的结点思想来进行排序。但这样写,复杂度会很大(俩while),因此出现了一个非常牛逼的算法----大根堆。往里面放一个元素, 依然能按照从小打到的距离排序。简单来说 就是一个数组长度为k。

2023-10-18 19:43:28 44 1

原创 c语言 两个队列做一个栈

镜像题,思路一样,无非是做法不同。

2023-09-25 23:31:58 34 1

原创 C语言 --用两个栈做一个队列

向instack放入1,2,3,4,5 此时栈instack排列肯定是这样 栈顶->5,4,3,2,1->栈底。此时把instack向outstack放, outstack排列 栈顶->1,2,3,4,5->栈底。一个用来进,一个用来出.很简单,栈:先入后出。

2023-09-25 23:10:54 38 1

原创 c语言记忆化搜索

一个点向周围虹吸,这样不用重复算。说白了,走过的路,不再走。

2023-09-19 21:28:50 53

原创 c语言拓扑排序篇 ---课程表1

给定一个包含 n个节点的有向图 G,我们给出它的节点编号的一种排列,如果满足:对于图 G中的任意一条。

2023-09-12 13:38:20 59

原创 c语言 qsort快排 二维数组用法 快排内核代码研究

含义:对于二维数组nums进行排序,基于第一个元素排序。这题easy,思路很简单,基于左端点从小到大排一把序。

2023-09-10 20:23:34 96 1

原创 c语言二分法 & 1ll用法

第一步肯定先猜50~,这就是二分的思想。好了,到此为止,你已经学会了二分法,接下来让我们做到题练习一下。1,遍历时间:从min(1) ~ max(rank[i] * cars * cars)2, 时间肯定超了,那就用二分法,一半一半猜~0--100 random一个数字num。二分法思想很简单,举个例子。让你猜这个数字是多少?

2023-09-07 22:09:25 56

原创 c语言hash使用模板

c语言 刷leetcode

2023-08-25 23:13:48 89 1

原创 leetcode 111场双周赛 2023-8-19

博主是今年5月份开始刷leetcode的c语言小白,致力于周赛上分,csdn分享周赛的结果和题解。与诸君共勉!

2023-08-22 19:57:05 28 1

原创 python基础 基础语法

是否可以支持下标索引:支持:列表,元组,字符串 ---序列类型不支持:集合,字典 ---非序列类型是否支持重复元素:支持:列表,元组,字符串不支持:集合,字典是否可以修改支持:列表,集合,字典不支持:元组,字符串⑦数据容器的通用操作#len元素的个数print(f"列表 元素个数{len(my_list)}")print(f"元组 元素个数{len(my_tuple)}")print(f"字符串 元素个数{len(my_str)}")

2023-08-19 22:26:05 27

原创 手撸嵌入式操作系统

多个任务在执行的过程中需要共享有限的资源计算机需要完成的某一项工作。

2023-08-17 22:46:56 28

空空如也

空空如也

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

TA关注的人

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