自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(212)
  • 资源 (3)
  • 收藏
  • 关注

原创 Linux文件系统(七)---系统调用之open操作(二) 之 get_unused_fd

738 /*739 * Find an empty file descriptor entry, and mark it busy.740 */741 int get_unused_fd(void)742 {743 struct files_struct * files = current->files; /* (1)获得当前进程的文件打开表,这个前面已经说过了 *

2014-10-09 10:53:45 5046

原创 Linux文件系统(六)---三大缓冲区之 目录缓冲区dcache

在文件系统中,有三大缓冲为了提升效率:inode缓冲区、dentry缓冲区、块缓冲。 (内核:2.4.37)

2014-10-06 23:31:50 8133 2

原创 Linux文件系统(五)---三大缓冲区之buffer块缓冲区

在文件系统中,有三大缓冲为了提升效率:inode缓冲区、dentry缓冲区、块缓冲。(内核:2.4.37)

2014-10-06 15:49:54 28392 2

原创 Linux文件系统(四)---三大缓冲区之inode缓冲区 (内存inode映像 )

在文件系统中,有三大缓冲为了提升效率:inode缓冲区、dentry缓冲区、块缓冲。(内核:2.4.37)

2014-09-11 17:41:41 13351

原创 Linux 文件系统(三)---dup和fork函数执行后的文件情况

对于dup和fork函数来说,前者是复制一个文件描述符,后者是复制进程,同时相关的文件信息也会被复制。一、对于Dup之前已经知道,对于一个进程来说,有一个files_struct来管理所有的相关文件,最终的反应形式其实就是一个文件数组而已:                                                     所谓文件描述符就是数组下标

2014-09-04 13:52:46 7956

原创 Linux 文件系统(二)---执行过程及结构间的关系

Linux 文件系统(二)---执行过程及结构间的关系

2014-09-04 11:02:29 6854 2

原创 Linux 文件系统(一)---虚拟文件系统VFS----超级块、inode、dentry、file

Linux文件系统,VFS,super_block,超级块,inode...一:什么是文件系统,详见:http://zh.wikipedia.org/zh/%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F其实一句话就是管理这块文件的机制(组织方式,数据结构之类...)Linux系统中存在很多的文件系统,例如常见的ext2,ext3,ext4,sysfs,rootfs,proc...很多很多。。。我们知道每个文件系统是独立的,有自己的组织

2014-08-31 18:03:11 46586 2

原创 Linux 内核网络协议栈 ------ tcp_ack 函数处理接收到的ACK包之后

注意 tcp_ack 是来处理接收到的ACK的,那么到底怎么去做呢?看下面:先还上把tcp_sock的结构放在这里,下面一些数据的分析需要用到:struct tcp_sock { /* inet_connection_sock has to be the first member of tcp_sock */ struct inet_conn

2014-03-26 19:37:10 10670 1

原创 Linux 内核网络协议栈 ------ TCP拥塞状态机 tcp_fastretrans_alert

这里主要说的是TCP拥塞情况下的状态状态处理/* Process an event, which can update packets-in-flight not trivially. * Main goal of this function is to calculate new estimate for left_out, * taking into account both pa

2014-03-26 19:27:02 6924

原创 Linux 内核网络协议栈 ------ tcp重传数据包 tcp_xmit_retransmit_skb

当知道需要重传数据结的时候执行这个函数:对于函数tcp_xmit_retransmit_queue:需要重传哪些包呢到底?首先是lost、标记的包;然后还需要处理:之前发送过的但是尚未收到确认的包(向前重传),或者新数据,在这两者之间有一个选择/* This gets called after a retransmit timeout, and the initially

2014-03-26 19:22:43 5585

原创 Linux 内核网络协议栈 ------ tcp重传数据包 tcp_retransmit_skb 函数

/* This retransmits one SKB. Policy decisions and retransmit queue * state updates are done by the caller. Returns non-zero if an * error occurred which prevented the send. */int tcp_retransmit_

2014-03-26 19:20:51 6206

原创 Linux 内核网络协议栈 ------ 拥塞避免处理函数 tcp_reno_cong_avoid

慢启动和快速重传拥塞避免算法,函数tcp_reno_cong_avoid在“慢开始”阶段,每收到一个ACK,cwnd++一次,那么一个RTT之后,cwnd就会加倍拥塞避免阶段,其实就是在一个RTT时间内将cwnd++一次( 注意在不丢包的情况下 )/* * TCP Reno congestion control * This is special case used f

2014-03-26 18:59:07 4925

原创 Linux 内核网络协议栈 ------ 清理重传队列中函数 tcp_clean_rtx_queue

如果重传队列中的一些数据已经被确认,那么, 需要从重传队列中清除出去,需要使用这个函数:tcp_clean_rtx_queue/* Remove acknowledged frames from the retransmission queue. If our packet * is before the ack sequence we can discard it as it's

2014-03-26 17:05:54 4842

原创 Linux 内核网络协议栈 ------sk_buff 结构体 以及 完全解释 (2.6.16)

sk_buff 结构体详解

2014-03-13 21:11:40 40086 7

原创 Linux 内核网络协议栈 ------ Linux 内核路由机制(二)之 ip层开始 -> 直到包被处理

Linux 内核路由机制(二) ---- ip层开始 -> 直到包被处理

2014-03-10 22:44:29 12707 3

原创 Linux 内核网络协议栈 ------ 数据从接收到ip层

Linux 内核----- 数据从接收到ip层之前

2014-03-07 11:33:37 7343

转载 NAPI机制分析

NAPI 的核心在于:在一个繁忙网络,每次有网络数据包到达时,不需要都引发中断,因为高频率的中断可能会影响系统的整体效率,假象一个场景,我们此时使用标准的 100M 网卡,可能实际达到的接收速率为 80MBits/s,而此时数据包平均长度为 1500Bytes,则每秒产生的中断数目为:  80M bits/s / (8 Bits/Byte * 1500 Byte) = 6667 个中断 /

2014-03-05 19:42:54 3218

原创 Linux 内核网络协议栈 ----- Linux 内核路由机制(一) (2.6.25)

内核的路由部分是是网络中重要部分,目前在Linux内核中默认的路由查找算法使用的是Hash查找,所以你会看到很多的数据结构是XXX_hash什么之类(例如fn_hash)。Linux内核从2.1开始就支持基于策略的路由,那么什么是基于策略的路由呢?我们一般的最基本的路由转发是考虑IP包的目的地址,但是有些时候不仅仅是这些,还有例如IP协议,传输端口等之类的考虑因素,所以采用所谓基于策略的路由。

2014-02-26 18:38:44 15276

转载 ioctl()函数详解

我这里说的ioctl函数是指驱动程序里的,因为我不知道还有没有别的场合用到了它,所以就规定了我们讨论的范围。写这篇文章是因为我前一阵子被ioctl给搞混了,这几天才弄明白它,于是在这里清理一下头脑。一、 什么是ioctl     ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。它的

2014-02-25 09:16:33 211751 8

原创 Makefile 实际用例分析(三) ------- 是用GUN automake 处理自己的工程

前面两篇已经说过了自己怎么去为一个工程写makefile:第一篇第二篇现在这一篇说的是怎么使用GNU的工具去写一个符合开源标准的Makefile呢!首先我觉你应该参考:AutomakeAutoconf这里就一步一步来解释:依然使用之前两篇中的例子ir_tree!还是先看看我的文件布局是怎么样的!顶层文件夹:相比之前

2013-12-08 15:06:51 8474 1

原创 Makefile 实际用例分析(二) ------- 比较通用的一种架构

之前已经讲了这一篇文章:Makefile实际用例分析(一)-----比较通用的一种架构现在这篇其实和那个差的不是很多,只是在布局上有些差别(这个makefile也是论坛上一起讨论过的,囧,忘了哪个论坛)还是先看看基本的文件布局:介绍:debug是调试版本的binary文件夹release是发行版本binary文件夹src是所有的源文件文件夹、lib是引用

2013-12-08 13:07:31 5657 1

原创 Makefile 实际用例分析(一) ------- 比较通用的一种架构

这里不再说Makefile的基本知识,如果需要学习,那么请参考: 下载:makefile 中文手册或者点击打开链接或者跟我一起写Makefile( 陈皓 )这里说的是一般的实际的一个工程应该怎么去写。

2013-12-08 12:20:32 7418 2

原创 矩阵的求逆

最近做一个加密算法遇到需要计算矩阵的逆,闲着无聊,记录一下,以后免得再麻烦。#include #include #include #define MAX 20#define E 0.000000001/** * 计算矩阵src的模 */double calculate_A( double src[][MAX], int n ){ int i,j,k,x,y;

2013-11-19 11:08:22 2963

原创 判断链表是否有环 、 找到环的入口节点

昨天去完笔试的时候遇到以前见过的老题目,记录一下吧...       题目很简单,就是说:给你一个链表,判断是否存在环!同时求出环的入口节点!       我们先看这样一个题目:两个单链表(无环),判断是否有公共节点!       例图:         * 1 ---> 2 ---> 3 ---> 4 ----> 5        *

2013-10-20 13:23:52 6194 2

原创 windows 下编译 pwlib 和 openh323

今天弄这东西弄了一天,真心无语!一点小的细节没注意,就会导致出错,所以还是记录下来,以后注意一点!测试成功!不忽悠!        注意利用openh323库 去做类似于电话之类终端的开发程序,需要pwlib为基础,所以先需要编译pwlib库!        我使用的版本:http://sourceforge.net/projects/openh323/files/   openh32

2013-09-16 01:27:35 5267

原创 python :使用 C语言 扩展 python

很多时候为了追求在瓶颈处的速度,会采用C/CPP来做核心代码的处理,那么就涉及到混编,即需要将C的代码作为可导入的库给python使用。废话不多说,此处只说一些感觉很重要的内容。      对于代码的编写一般都没有问题,使用python和C之间的接口API即可。   一个小小例子:   文件名:foo.c   模块名:foo#include /* * 模块中所有的函数

2013-09-01 10:19:02 1524

原创 BM 算法

看完上次的kmp后准备看BM算法, 但是一直都没有时间,感觉,看网上的一些原理解释并不能看的很懂,然后看了就迷迷糊糊的,现在总结一下,顺便是理清思路!不知道自己会不会讲的清楚一点!( 至于代码,自己写的还在测试,不知道有没有错,现在贴上来的是参照snort中的代码!虽然网上的很多代码都是这个!不过后来会写上自己的代码的 )BM 算法思路:1:BM算法是整体字串是从左往右移动

2013-05-28 14:49:00 2422 2

转载 MFC中获得各个类的句柄的总结

http://icegull.spaces.live.com/Blog/cns!2C8E21A6BC751D70!633.entry1) 在View中获得Doc指针CYouSDIDoc *pDoc=GetDocument();一个视只能有一个文档。2) 在App中获得MainFrame指针CWinApp 中的 m_pMainWnd变量就是MainFrame的指针,也可以

2013-05-04 09:03:07 1118

原创 动态规划 ( DP ) 和 实例分析

一直都不知道怎么来写这篇博文,真的很难写,主要是怕自己写不好,会造成误解!因为之前自己看的网上的一些文章就是的,不过也有好的~感谢那些大牛!现在也尝试写吧,写的不好,大家请包涵见谅!我一般是比较讨厌在bolg上写概念的,因为那真的很无聊,但并不是概念不重要,很重要,但是写出来应该要用比较好理解的描述。一直尝试着怎么去很好的描述DP,也一直在纠结!很多时候是会这一个DP的题目,下一个

2013-04-03 12:43:56 1644

原创 poj 1006 与 中国剩余定理

poj 1006 题的思路不是很难的,可以转化数学式:现设 num 是下一个相同日子距离开始的天数         p,e,i,d 如题中所设!那么就可以得到三个式子:( num + d ) % 23 == p; ( num + d ) % 28 == e; ( num + d ) % 33 == i;p,e,i,d 是我们输入的,那么我们需要求出num即可,为了方便,我们将num

2013-03-27 09:46:56 9969 3

原创 算法导论:关于时间复杂T(n)的表达式处理

MIT算法导论提供了三种方法,不废话了,直接介绍:( 公式显示不了,所有就截图了,请包涵~ 呵呵)1.      代换法:猜测-> 验证         例如:T(n) = 4*T(n/2) + n (  其中T(1) =O(1)  )         假设是时间复杂度是n^3         那么证明:那么设T(k)          那么带入有:

2013-03-20 16:20:42 7058

转载 又见 AVL ( 平衡二叉树 )

最近变懒了,代码都懒得写,真无语,不过这个链接的AVL的代码还是不错的!http://blog.csdn.net/a_1_2_ab/article/details/6585823#include#include#define EH 0#define LH 1#define RH -1typedef struct Bitree{ int data; int bf;

2013-03-19 09:19:00 1150

原创 孩子们的游戏(圆圈中最后剩下的数)

何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=29每年六一儿童节,JOBDU都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为JOBDU的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为

2013-03-19 08:42:51 1518

原创 扑克牌顺子

何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=28LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A

2013-03-19 08:39:15 1299

原创 Move!Move!!Move!!!

何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=26汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的

2013-03-19 08:34:40 913

原创 翻转单词顺序

何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=25JOBDU最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识

2013-03-19 08:29:46 1818

原创 和为S的连续正数序列

何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=24小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的

2013-03-19 08:24:49 2815

原创 和为S的两个数字

何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=23输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。输入:每个测试案例包括两行:第一行包含一个整数n和k,n表示数组中的元素个数,k表

2013-03-19 08:18:55 1504

原创 数组中只出现一次的数字

何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。输入:http://ac.jobdu.com/problem.php?cid=1039&pid=22每个测试案例包括两行:第一行包含一个整数n,表示数组大小。2第二行包含n个整数,表示数组元素,元素均为int

2013-03-19 08:10:17 1140

原创 二叉树的深度

何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=21输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。输入:第一行输入有n,n表示结点数,结点号从1到n。根结点为1。 n 接下来有n行,每

2013-03-19 08:02:12 1735

ir_tree源代码解决

ir_tree源代码解决 C语言处理 ,实验代码

2013-12-08

ir_tree树源码

ir树代码,这个只是一个实验代码,用在实际的大数据中是有问题的~有待优化~

2013-12-08

ir_tree树源代码

ir树代码,这个只是一个实验代码,用在实际的大数据中是有问题的~有待优化~

2013-12-08

空空如也

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

TA关注的人

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