- 博客(12)
- 资源 (11)
- 收藏
- 关注
原创 RCU 原理与实现分析
这篇文章将从顶层设计谈起,宏观看待实现一个RCU锁,必须实现的一些基本原理与组件,并具体细聊下用户态RCU锁实现,以及内核态RCU锁的实现。
2022-08-07 12:24:11
2573
原创 LeetCode 盛最多水的容器
题目:给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。解法:双指针,移动指针时,移动较小的
2021-11-18 22:52:21
124
原创 LeetCode 寻找两个正序数组的中位数
题目给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。算法的时间复杂度应该为 O(log (m+n)) 。输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2输入:nums1 = [1,2], nums2 = [3,4]输出:2.50000解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5解法:这题麻烦在想
2021-11-18 22:48:43
617
原创 LeetCode-15 三数之和
题目:给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]解法一:用排序+哈希表法,但是需要注意剪枝:func threeSum(nums []int) [][]int { var result [][]int sort.Ints(
2021-11-18 22:43:01
79
原创 基于Libvirt 来搭建网络协议测试环境
文章目录引言准备安装系统连入系统搭建网络拓扑克隆虚拟机建桥当网线建立网卡,并连接到网线配置IP、路由、开启转发测试参考文档引言在研究协议实现细节时,动手实践是极其重要的一环。而搭建一个合适的环境用于协议实现测试,重要性也就不言而喻。这篇文章介绍了我用Libvirt搭建client-router-server拓扑的过程细节。准备确认虚拟化支持:我是在fedora 上搭建的,其他 Linux 发行版也应类似。首先确认Host 支持虚拟化:grep -E –color=auto "(vmx|svm)"
2021-09-03 13:59:03
292
原创 OVS 内核CT实现
文章目录引言OVS CT 定义CT 匹配域CT 动作TCP 使用范例TCP SYN包TCP SYN-ACK 包TCP ACK 包TCP 断连OVS 内核态 CT 实现CT 实现框架OVS 侧实现 - 进入 CT 前Linux 内核侧实现OVS 侧实现 - 离开 CT 后内核 CT 下的TCP 状态迁移关于 NAT 实现TCP 三次握手之旅SYN 包到来时SYN-ACK 包到来时ACK 包到来时遗留问题参考文档引言所有连接跟踪模块的作用,都是在首包到来时,识别并在CT表中生成表项;而当该连接的特定数据包到
2021-08-30 16:06:44
4755
原创 C++ 最小堆实现
最小堆特征最小堆是一棵完全二叉树,通常使用数组来实现:树的根为Arr[0]对于其他 i 节点,则有其他公式:公式返回值Arr[(i-1)/2]返回 i 节点的父节点Arr[(2*i)+1]返回 i 节点的左孩子Arr[(2*i)+2]返回 i 节点的右孩子最小堆类定义先看最小堆的class 定义声明,我们使用数组实现最小堆class MinHeap{private: int *harr; // pointer to array of e
2021-03-19 14:23:58
989
原创 POJ-1001 高精度指数运算
解这道题,主要是几个要点: 1. 大数可表示为: 2. 可利用数组存储,数组索引n上的元素a,代表值:a * 10^n 3. 大数相乘,可表示为: 其他则是一些边界情况处理(比如头尾去0,小数点位置等),这方面主要依靠测试数据集,我使用的测试数据附在文末。下面是算法代码:#include <stdio.h>#include <string.h>#inclu...
2018-08-15 18:17:03
481
原创 Linux 内核协议栈的 TSO、GSO
Linux 内核的 TSO 会在真正将skb发送到网卡前做GSO的检查:对于真实硬件设备,是在sch_direct_xmit中调用validate_xmit_skb_list检查 对于虚拟设备,则是在__dev_queue_xmit中调用validate_xmit_skb检查static int __dev_queue_xmit(struct sk_buff *skb, void *ac...
2018-08-13 10:22:28
2278
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人