发布时间:2013-01-27 20:06:59
从内核里来看,socket fd本来就是 file[]数组的下标,因此,在单个线程内(父子线程的fd是copy的,还是共享的有待确定,我记得是copy的)此下标具有天然唯一性,可以作为很多其余资源的index入口。......【阅读全文】
发布时间:2012-12-22 22:03:26
了解了linux的线程实现机制后,对java的线程是怎么回事有了强烈的兴趣,找到一段好分析,摘录如下:来源:http://bbs.csdn.net/topics/270083696 以前的老java自己实现了线程库,也就是说java的线程并不和操作系统的线程对应,jvm在操作系统上面是一个进程,当这个进程被操作系统调度到后,jvm内部实现的线程库再调度java线程,为什么是这样呢?考虑到以前的操作系统内核,比如linux,在以前都不直接支持线程,用户线程和内核线程是多对一的关系,solaris一度也是这样,所以java当然心有余而力不足了,你操作系统都不能完美支持线程,你让我实现不是难为我吗......【阅读全文】
发布时间:2012-12-21 22:24:30
各种形形色色的讲SKB的文章已经有很多了,我这里就不说大而全的东西,想了解全部建议还是看《深入Linux网络内幕》里关于skb的介绍。 本文重点强调介绍两个方面: 一,skb所占用的内存分布 二,skb的报文头存放地方限制 一:skb占用的内存分布 一个skb包含三个部分: skb结构体本身,内含大量的指针指向各种关联数据 skb->data指向的线性数据区,其实内存应该从skb->head开始算到skb->end为止,skb->data和skb->tail是用来指向当前处理所指向的数据的。比如内存从0x00ff1000(head)开始,到0x00......【阅读全文】