自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

SunliyMonkey

想要飞,就必须从不妥协

  • 博客(22)
  • 收藏
  • 关注

原创 Linux内核源码分析之文件系统(1) -- 三思而后行

经历过内核源码阅读的小伙伴,相信你在最初面对如此庞大的内核源码时,一定会有种“面对茫茫大海,无从下手”的感觉,即便幸运的找到了逻辑入口,却在繁琐的函数跳转中晕头转向,无法把握住整个控制路径上的重难点。代码阅读之后,无法上升到整体设计,提炼出实现者的出发点,对代码逻辑,常常感觉迷惑,无法洞悉代码背后的原理。 鉴于此,在研究该部分代码前,我从实现的角度出发,根据文件系统的功能往下进行推敲,提炼出文件系统的重难点,有方向性地阅读代码、印证想法、解决疑问。 挖掘出技术难点,带着问题有方向性的阅读

2015-10-02 17:52:19 5515 2

原创 在c/c++语言中,为什么c[5] == 5[c]

问题:在c/c++语言中,为什么c[5] == 5[c]?  这个问题,当初是在德问上看见的,起初自己也不知道其机理,猜测与c语言的编译机制有关,于是通过反汇编、猜测、验证,最终找到了原由。下面是我分析该问题的过程,首先来看一段关于数组的代码:

2015-09-01 09:21:45 2131 3

原创 状态转移思想解读:辗转相除(欧几里德)算法及扩展

欧几里德算法,也被称为辗转相除法,其被用于求解两个数之间的最大公约数,它的算法实现十分容易,但是其扩展算法的推导,并不那么显然。 相信你的第一感觉是十分简洁,确实也如此,对于一个不懂这两种算法的人,如果提示你从“动态规划",“状态转移”等角度思考这两个问题,相信会有不少人能够推导出它们潜含的道理。

2015-08-30 10:18:40 2133

原创 busybox静态编译及动态编译实践

busybox是一个集成了一百多个最常用linux命令和工具的软件,其包含了一些简单的工具,例如ls、cat和echo等等,还包含了一些更大、更复杂的工具,例grep、find、mount以及telnet。有些人将 BusyBox 称为 Linux 工具里的瑞士军刀。简单的说BusyBox就好像是个大工具箱,它集成压缩了Linux的许多工具和命令。除此

2015-08-28 18:41:19 8927 3

原创 近似直径算法的 GraphChi 实现

GraphChi 是由卡耐基梅隆大学设计, 可以在单机上进行高效大规模计算的框架, 区别于将图的信息全部存储在内存当中, GraphChi 利用单机计算机海量的硬盘进行存储, 由于硬盘与内存的访问速度差距很大, 为了弥补使用硬盘存储带来的缺陷, 他们设计出并行滑动窗口技术, 用来减少硬盘的随机读写。并行滑动窗口技术将整个图谱划按照点的顺序分成不同的分

2015-08-25 20:59:45 2657

原创 单源最短路径算法的MapReduce实现(Metis版本)

Mapreduce 是谷歌提出的一个分布式计算框架, 利用该框架, 能够让用户方便地利用多机并行处理数据。 该框架有两个重要的函数: Map 和 Reduce, Map 函数对整个输入数据进行处理, 按照用户定义的处理方式, 从输入的数据中产生中间键值对( key, value)。Reduce 函数对这些键值对进行处理, 相同 key 的键值

2015-08-25 20:40:02 3521 2

原创 MIT 6.824: 分布式系统实验

6.824是MIT的分布式系统课程,该课程结合相关论文和实验,能够让你充分体会到分布式系统的神奇之处。尤其提供的实验,能够让你摆脱纸上谈兵的困境,切身体会到设计分布式系统具体策略的乐趣。虽然这些实验只能管中窥豹,但是对你理解分布式系统,有相当大的帮助。  以下五篇实验设报告,记录了我在实验中采用的策略,遇到的问题,希望对大家有所帮助。建议,亲们在认真思考之后,读一读,看看在思路上,有什么不同之处。

2015-07-05 18:27:38 8638

原创 MIT 6.824 分布式系统导论: lab5 Persistence实现设计

lab5 Persistence要求在lab4的基础上,增加数据持久化的功能,从而支持节点在dead之后能够根据磁盘数据进行恢复针对恢复时,磁盘的数据可能发生丢失,需要考虑以下恢复场景:本地同步:磁盘数据未丢失,节点同步本地数据后,再次提供服务。异地同步:磁盘数据丢失,节点同步其他节点的数据后,再次提供服务。数据持久化paxos数据固化paxos被用于决策操作之间的执行顺序,每个节点的内存中记录了

2015-07-02 17:19:48 2759 10

原创 tiny linux: 内核精简的根文件系统制作

tiny linux要求实现以下两点:精简linux内核镜像,要求在支持TCP/IP数据传输的情况下,内核镜像和正常运行所需内存能够做到尽可能的小。采用busybox制作根文件系统,利用kernel mode linux补丁,使得busybox运行在内核态。涉及知识点qemu使用linux内核配置,编译根文件系统制作在这里记录了我完成该项目的过程,希望对大家有用。

2015-06-16 20:51:49 4316

原创 Linux IO性能测试工具: FIO之初见

对于存储系统,人们最为关注“三高”问题: 高性能,高可扩展性,高可靠性。尝尝会听到某司宣称自己的存储系统能够达到6个9($99.9999\%$),其指存储系统十分可靠,在一年中最多出现十几秒的宕机时间; 而对于高可扩展性,主要是指系统对存储设备(硬盘,闪存)数量增加的支持。而高性能则是指IOPS高,响应延迟低。说远了,我们回到主题,为了测试系统IO性能的高低,在实际开发中,需要使用IO性能测试工具进行测试。今天在

2015-04-05 22:37:14 12369

原创 个性化配置--Linux Terminal终端

使用linux系统已经很多年,今天才注意到命令终端的格式和颜色均是可以配置,故在网上学习了一番,并写下此博客作为学习笔记。整篇博客简单分析了终端颜色和格式的默认配置代码,然后展示了语法规则,最终给出了作者使用的配置方案。在linux系统中,用户的配置文件有多个,一般熟悉的有 .bashrc,/etc/profile两个文件,我们可以在这两个文件中,找到终端的配置。对于终端的

2015-03-18 19:55:32 5639 1

原创 正多面体几何构造法

正多面体几何构造法概念正多面体:是指多面体的各个面都是全等的正多边形,并且各个多面角都是全等的多面角。五种正多面体:**正四面体、正六面体(正方体)、正八面体、正十二面体、正二十面体**。理论支持欧拉定理:任何凸多面体的顶点数v与面数f的和都较棱数e多2,即v+f-e=2。平面多边形内角和公式: (v-2)×180°。

2014-12-19 13:05:46 5096

原创 LeetCode 89: Gray Code 格雷码

The gray code is a binary numeral system where two successive values differ in only one bit.Given a non-negative integer n representing the total number of bits in the code, print the sequence of gray code. A

2015-09-07 21:17:14 1006

原创 LeetCode 129: Sum Root to Leaf Numbers 树的遍历

Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number.An example is the root-to-leaf path 1->2->3 which represents the number 123.

2015-09-07 20:29:04 985

原创 LeetCode 4:Median of Two Sorted Arrays

博客转载请注明地址:题目描述题目地址:https://leetcode.com/problems/median-of-two-sorted-arrays/ 给出两个有序数组,求两个有序数组合并在一起的中位数是多少?考察点二分查找,分治分类讨论思路传统的二分查找在[L,R][L,R]区间求出满足条件的值。该题是一个举一反三,希望在区间([L1,R1],[L2,R2])([L_1,R_1],[L

2015-09-07 20:18:15 651

原创 LeetCode 124: Binary Tree Maximum Path Sum 树形动态规划

博客转载请注明地址:http://blog.csdn.net/sunliymonkey/article/details/48179427题目描述题目地址:https://leetcode.com/problems/binary-tree-maximum-path-sum/一棵二叉树,每个节点上都标有数值,寻找一条路径,使得路径上所有节点的值和最大。样例:输入 1 / \ 2 3输出6

2015-09-02 15:52:14 2163

原创 LeetCode 230: Kth Smallest Element in a BST 查找二叉排序树

博客转载请注明地址:题目描述题目地址:https://leetcode.com/problems/kth-smallest-element-in-a-bst/ 在一颗二叉排序树当中,寻找第k大的数。考察点递归树的遍历陷阱无Code/** * Definition for a binary tree node. * struct TreeNode { * int val; *

2015-09-02 15:34:44 1822

原创 LeetCode 97: Interleaving String 字符串交错

给定三个字符串S1,S2,S3,判断S3是否能够由S1,S2交错组合而成。考察点:动态规划陷阱:无

2015-09-01 22:50:00 1512

原创 LeetCode 113: Path Sum II 二叉树遍历

题目描述给一棵二叉树,每个节点带有数字,寻找出从根到叶子节点所有的路径,使得路径上的数字之和为给出的sum。考察点:1. 树的遍历2. vector的使用:push_back, pop_back陷阱:无

2015-09-01 21:58:16 1422

原创 Gephi可视化西游记人物关系图

Gephi项目网址:http://gephi.github.io/Gephi是一款开源免费跨平台基于JVM的复杂网络分析软件, 其主要用于各种网络和复杂系统,动态和分层图的交互可视化与探测开源工具。可用作:探索性数据分析,链接分析,社交网络分析,生物网络分析等.总之,用Gephi你可以画出很酷的图形,例如:

2015-08-27 22:36:32 15645

原创 个人配置--常用软件保护色设置

作为一个每天在电脑面前超过十二个小时的研究僧来说,最痛苦的事情就是面对白花花的屏幕,觉得眼睛难受。于是想到将自己常使用的软件的背景色设置成“保护色”,我也看见网上有不少人说,保护色并不能缓解眼疲劳,不过相比于面对亮闪闪的白色背景,我觉得保护色的设定,还是挺舒服的。保护色参数: 色调 85,饱和度 123, 亮度 205

2015-07-31 17:04:39 2491 1

原创 PKU Campus 2015解题报告

PKU Campus 2015解题报告这是第一次参加北大校赛,有一段时间没有好好做题了,加上自己太水,这场比赛做得很不好,场下仔细想了想没搞定的题目,其实没有想象中那么难~下次北大校赛,一定要好好打!因为平时实验室有不少事情要做,没办法将时间全花在做题上面,只能慢慢啃这一套题,同时将我的解决思路总结在这篇博客当中。PKU Campus 2015题目链接: http://poj.openjudge.c

2015-05-13 16:41:03 1811

空空如也

空空如也

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

TA关注的人

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