- 博客(69)
- 收藏
- 关注
原创 手写操作系统 - 操作系统内核突破512字节
boot.asmsetup.asmboot.osetup.oboot.odd0磁道0柱面1扇区BIOS例程0x7c00setup.odd0磁道0柱面2扇区boot。
2023-12-29 09:58:50
486
原创 手写操作系统 - CPU段页门
CPU是如何找到数据并读写的?拿到数据段寄存器中的值 ds = 0x10解析段寄存器中的值,0x10->段选择子CPU读自己的gdtr寄存器取到数据段的描述符解析段描述符检查p位 有效位检查dpl位s位、type域type域 数据段取base、limit判断base + offset <= limit返回线性地址。
2023-12-29 09:57:24
1057
3
原创 手写操作系统 --汇编执行流(一)
使用Java、C++写程序,基本单位是类的方法;使用C语言写程序,基本单位是函数;使用汇编写程序,基本单位就称为执行流(CPU执行引擎执行程序也称为执行流);
2023-12-29 09:55:54
514
原创 手写操作系统 -- 微内核
创建一个微内核项目,编写boot.asm使用命令生成boot.o文件。如何生成一个硬盘?使用命令生成。hd.img硬盘如何将内核写入硬盘?使用将内核程序(boot)写入硬盘(hd.img)当中。如何运行起来?利用bochs或qemu来运行。为什么要读到0x7c00位置?查看实时实时模式下内的存布局图可以发现0x7c00为BIOS例程的入口。为什么要调到处?BIOS例程的内存地址。
2023-12-29 09:54:54
708
1
原创 剑指offer常见题 - 链表问题(二)
链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。:链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。:相比于线性表顺序结构(数组),操作复杂。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)
2022-12-18 15:37:02
425
1
原创 剑指offer常见题 - 链表问题(一)
链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。:链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。:相比于线性表顺序结构(数组),操作复杂。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)
2022-12-18 15:28:57
455
原创 Reactor 和 Proactor 区别
总结:由此可以看到采用同步的方式可以马上获知操作的结果。总结:io 函数调用后,不能获知 io 的操作结果, 此时 io 操作都由内核完成充电站推荐一个零声学院免费公开课程,个人觉得老师讲得不错,分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习
2022-12-18 14:14:33
532
原创 剑指offer常见题 - 位运算问题(二)
二叉树相关性质:计算机中的数在内存中都是以二进制形式进行存储的 ,而位运算就是直接对整数在内存中的二进制位进行操作,因此其执行效率非常高,在程序中尽量使用位运算进行操作,这会大大提高程序的性能。需要掌握的内容:典型题例:示例 :思路核心:代码:不用加减乘除做加法典型题例:示例 :思路代码:充电站推荐一个零声学院免费公开课程,个人觉得老师讲得不错,分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,
2022-12-03 23:40:24
729
原创 剑指offer常见题 - 位运算问题(一)
二叉树相关性质:计算机中的数在内存中都是以二进制形式进行存储的 ,而位运算就是直接对整数在内存中的二进制位进行操作,因此其执行效率非常高,在程序中尽量使用位运算进行操作,这会大大提高程序的性能。需要掌握的内容:典型题例:示例 :思路核心:代码:数组中唯一只出现一次的数字典型题例:示例 :思路代码:充电站推荐一个零声学院免费公开课程,个人觉得老师讲得不错,分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,
2022-12-03 23:34:57
100
原创 DFS - 常见算法题总结
一种用于遍历或搜索树或图的算法。沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所在边都己被探寻过或者在搜寻时结点不满足条件,搜索将回溯到发现节点v的那条边的起始节点。整个进程反复进行直到所有节点都被访问为止。属于盲目搜索,最糟糕的情况算法时间复杂度为O(n!)。
2022-11-20 00:56:42
564
原创 深度学习-虚拟机当服务器的安装环境
将下载好的文件放在系统文件夹下,然后输入bash Anaconda3-5.3.1-Linux-x86_64.sh进行安装。删除conda remove -n your_env_name --all。安装完毕 激活环境 : source activate yuyin。查看已经安装的虚拟环境 conda info --envs。将下载好的文件放在系统文件夹下,然后输入。选择yes在虚拟环境中进行安装所需要的包。选择yes在虚拟环境中进行安装所需要的包。换成清华源 速度增加 还是不行。查看已经安装的虚拟环境。
2022-11-14 11:57:29
578
原创 剑指offer常见题 - 二叉树问题(三)
在二叉树的第i层上至多有2^(i-1)个结点(i>=1):深度为k的二叉树至多有2^(k-1)个结点(k>=1):对任意一颗二叉树T,若终端结点数为n0,而其度数为2的结点数为n2,则n0=n2+ 1。:具有n个结点的完全二叉树的深度为 ⌊log n⌋+1(以2为底)满二叉树:深度为k,且有2^(k-1)个结点的二叉树。在满二叉树中,每层结点都是满的,即每层节点都具有最大结点数。完全二叉树:深度为k,结点数为n的二叉树,如果其结点1n的位置序号一一对应,则为完全二叉树。
2022-11-06 23:26:52
204
原创 剑指offer常见题 - 二叉树问题(二)
在二叉树的第i层上至多有2^(i-1)个结点(i>=1):深度为k的二叉树至多有2^(k-1)个结点(k>=1):对任意一颗二叉树T,若终端结点数为n0,而其度数为2的结点数为n2,则n0=n2+ 1。:具有n个结点的完全二叉树的深度为 ⌊log n⌋+1(以2为底)满二叉树:深度为k,且有2^(k-1)个结点的二叉树。在满二叉树中,每层结点都是满的,即每层节点都具有最大结点数。完全二叉树:深度为k,结点数为n的二叉树,如果其结点1n的位置序号一一对应,则为完全二叉树。
2022-11-06 23:17:06
107
原创 剑指offer常见题 - 二叉树问题(一)
在二叉树的第i层上至多有2^(i-1)个结点(i>=1):深度为k的二叉树至多有2^(k-1)个结点(k>=1):对任意一颗二叉树T,若终端结点数为n0,而其度数为2的结点数为n2,则n0=n2+ 1。:具有n个结点的完全二叉树的深度为 ⌊log n⌋+1(以2为底)满二叉树:深度为k,且有2^(k-1)个结点的二叉树。在满二叉树中,每层结点都是满的,即每层节点都具有最大结点数。完全二叉树:深度为k,结点数为n的二叉树,如果其结点1n的位置序号一一对应,则为完全二叉树。
2022-11-06 23:09:04
106
原创 动态规划-状态压缩、树形DP问题总结
通过额外的空间将已经搜索过的相似的结果(指某些具有相同性质解的集合)用一个数组存起来,所以DP中的状态转移看上去是某两三个值之间的推导,
2022-10-23 11:50:35
928
原创 动态规划-区间、计数类DP问题总结
通过额外的空间将已经搜索过的相似的结果(指某些具有相同性质解的集合)用一个数组存起来,所以DP中的状态转移看上去是某两三个值之间的推导,
2022-10-23 11:41:31
867
原创 动态规划-线性DP问题总结(二)
通过额外的空间将已经搜索过的相似的结果(指某些具有相同性质解的集合)用一个数组存起来,所以DP中的状态转移看上去是某两三个值之间的推导,
2022-10-23 11:18:18
701
原创 动态规划-线性DP问题总结(一)
通过额外的空间将已经搜索过的相似的结果(指某些具有相同性质解的集合)用一个数组存起来,所以DP中的状态转移看上去是某两三个值之间的推导,
2022-09-25 15:54:58
891
原创 动态规划- 背包问题总结(一)
通过额外的空间将已经搜索过的相似的结果(指某些具有相同性质解的集合)用一个数组存起来,所以DP中的状态转移看上去是某两三个值之间的推导,
2022-09-24 22:25:28
1213
原创 动态规划- 背包问题总结(二)
通过额外的空间将已经搜索过的相似的结果(指某些具有相同性质解的集合)用一个数组存起来,所以DP中的状态转移看上去是某两三个值之间的推导,
2022-09-24 21:29:01
1169
原创 LeetCode 1345、1371
给你 n 笔订单,每笔订单都需要快递服务。请你统计所有有效的 收件/配送 序列的数目,确保第 i 个物品的配送服务 delivery(i) 总是在其收件服务 pickup(i) 之后。由于答案可能很大,请返回答案对 10^9 + 7 取余的结果。
2022-09-11 18:26:41
579
原创 Tcp/ip 定时器与滑动窗口(持续更新)
1.服务器主动告诉2.客户端主动咨询tcp 客户端主动轮询,window = 0时,启动探测计时器。tcp已经实现 Keepalive,为什么应用层还要实现心跳包?不建议利用tcp 自带的 Keeplive,应用层无法知道其是否超时,应用实现可以根据不同策略进行设计。......
2022-08-28 20:35:29
634
原创 关于Linux学习中的诸多问题
如果上传服务器·.tmux.conf但是并没有配置tmux,可能是因为.tmux.conf只会在tmux第一次创立的时候加载,所以只要清除所有tmux,再创建tmux即可。即然后再tmux。配置目录都在~/下。
2022-08-09 21:21:44
420
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人