自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 谈.Net委托与线程——创建无阻塞的异步调用

前言本文大部分内容来自于mikeperetz的Asynchronous Method Invocation及本人的一些个人体会所得,希望对你有所帮助。原英文文献可以在codeproject中搜索到。介绍这篇文章将介绍异步调用的实现机制及如何调用异步方法。大多数.NET开发者在经过delegate、Thread、AsynchronousInvocation之后,通常都会对

2017-01-18 21:03:26 417

转载 子类父类构造函数调用顺序

子类继承和调用父类的构造方法1.如果子类没有定义构造方法,则调用父类的无参数的构造方法,.2.如果子类定义了构造方法,不论是无参数还是带参数,在创建子类的对象的时候,首先执行父类无参数的构造方法,然后执行自己的构造方法。3.如果子类调用父类带参数的构造方法,可以通过super(参数)调用所需要的父类的构造方法,切该语句做为子类构造方法中的第一条语句。4.如果某个构造

2017-01-18 20:43:48 2931

转载 多线程和异步操作

多线程和异步操作两者都可以达到避免调用线程阻塞的目的,从而提高软件的可响应性。甚至有些时候我们就认为多线程和异步操作是等同的概念。但是,多线程和异步操作还是有一些区别的。而这些区别造成了使用多线程和异步操作的时机的区别。异步操作的本质所有的程序最终都会由计算机硬件来执行,所以为了更好的理解异步操作的本质,我们有必要了解一下它的硬件基础。熟悉电脑硬件的朋友肯定对DMA 这个词不陌生,

2017-01-18 20:40:53 977

转载 c# 知识点

GridView数据源可以有哪些? 1 数据集(包括DateSet,DataTable等) 2 集合(键值对,哈希表,字典,队列等) 4 viewstate(当前页面)Machine.Config和Web.Config是什么关系?Machine.Config包括Web.Config,包含和被包含的关系强类型DataSet定义时即将确定其数据类型,用强类型DataSet定义数据库的实体,在业

2017-01-10 22:52:28 375

转载 c#知识点(三)

1:Console.Write();与Console.WriteLine(); Console.Write()是输出一行数据不换行 Cosole.WriteLine()是输出一行数据换行2.  Console.Read();与Console.ReadLine();Console.Read()是读出首字母的ASCII码,后者是读出字符串.   Console.ReadLine()是读

2017-01-09 22:58:26 445

转载 c# 知识点(二)

简要说一下.Net的编译过程. ASP.NET 必须首先将代码编译成一个或多个程序集。 程序集即文件扩展名为 .dll 的文件。 您可以采用多种不同的语言来编写 ASP.NET 代码,如 Visual Basic、C#、J# 和其他语言。 当在编译代码时,会将代码翻译成一种名为 Microsoft 中间语言 (MSIL) 的与语言和 CPU 无关的表示形式。 运行时,MSIL 将运行在 .NE

2017-01-09 22:48:17 593

转载 c#知识点(一)

当使用String str="abc",这种方式时,先去内存的Heap中找是否存在"abc"这个字符串,若存在,则将地址引用。若不存在则创建。2.当使用String str=new String("abc");时,不管事先是否存在"abc",每次都会创建其新的对象。String s1="abc";           String s2="abc";    String

2017-01-09 21:58:27 714

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

此处主要讲的是从数据来到,中断到最终数据包被处理的过程。0:首先来介绍一下IO端口访问问题,内核提供了这样一组函数处理:  // kernel/io.c中>: inb( )、inw( )、inl( )函数       分别从I/O端口读取1、2或4个连续字节。       后缀“b”、“w”、“l”分别代表一个字节(8位)、一个字(16位)以及一

2017-01-08 17:47:35 670

转载 skb的两个函数pskb_copy和skb_copy

skb的两个函数pskb_copy和skb_copy前者仅仅是将sk_buff的结构体和线性数据copy过来,对于非线性数据,是引用原始的skb的数据的!而后者是不仅将sk_buff和线性数据拷贝,同时将非线性数据也copy了一份,看下面就明白了!这就在效率上就差了很多!所以如果不想修改数据,那么还是使用pskb_copy更好!对于skb_copy:

2017-01-08 17:27:49 4908

转载 sk_buff 函数操作(一)

1: Alloc 分配完 之后的结构 仅仅是分配了线束数据区域,但是现在还没有数据2:skb_reserve函数 static inline void skb_reserve(struct sk_buff *skb, int len){ skb->data += len; skb->tail += len; }这个函数很重要,是为

2017-01-08 17:19:05 2546 1

转载 slab分配器

slab分配器功能:提供小的内存块,也可用作一个缓存。分配和释放内存在内核代码上很常见。为了使频繁分配和释放内存所导致的开销尽量变小,程序员通常使用空闲链表。当分配的内在块不再需要时,将这块内存插入到空闲链表中,而不是真正的释放掉,这种空闲链表相当于内存块缓冲区。但这种方法的不足之处是,内核没有一种手段能够全局地控制空闲链表的大小,实时地更新这些空闲链表的大小。事实上,内核根本

2017-01-08 16:36:41 399

转载 sk_buff 内存申请和释放

struct sk_buff *__alloc_skb(unsigned int size, gfp_t gfp_mask, int fclone, int node){ struct kmem_cache *cache; struct skb_shared_info *shinfo; struct sk_buff *skb; u8 *data; cache = fcl

2017-01-08 16:05:54 3390

原创 sk_buff 详解(一)

/*socket buffers,简称skb,中文名字叫套接字缓存。它作为网络数据包的存放地点,使得协议栈中每个层都可以对数据进行操作,从而实现了数据包自底向上的传递。该结构维护一个收到的或者要发送的网络包。但其本身并不包含存放网络包的数据的存储区。存储区是另外单独分配的内存空间,但该结构说明了如何访问存储区空间,如何维护多个存储区空间以及存储网络包解析的成果。所有的sk_buff是通

2017-01-08 15:38:19 6595 2

转载 skb_buff 详解(二)

skbuffs是那些linux内核处理网络分组的缓存。网卡收到分组后,将它们放进skbuff,然后再传送给网络堆栈。网络堆栈一直要用到skbuff。1. 一个完整的skb buff组成(1) struct sk_buff--用于维护socket buffer状态和描述信息(2) header data--独立于sk_buff结构体的数据缓冲区,用来存放报文分组,使各层协议的head

2017-01-08 15:35:57 10765 2

转载 C 指针问题

第一章、指针的概念指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。 先声明几个指针放着做例子: 例一: (1)int*ptr; (2)char*ptr; (3)int**ptr; (4)int(*

2017-01-08 15:14:27 269

转载 SKB 的分配细节.

1. 关于 SKB 的分配细节.LINUX 中 SKB 的分配最终是由函数 : struct sk_buff *__alloc_skb(unsigned int size, gfp_t gfp_mask,int fclone) 来完成.SKB 可以分为 SKB 描述符与 SKB 数据区两个部分,其中描述符必须从 CACHE 中来分配 : 或者从skbuff_fclone_cache 中

2017-01-08 15:04:20 1207

原创 sk_buff详细介绍

struct sk_buff可能是linux网络代码中最重要的数据结构,它表示接收或发送数据包的包头信息,并包含很多成员变量供网络代码中的各子系统使用。 // 这个结构被网络的不同层(MAC或者其他二层链路协议,三层的IP,四层的TCP或UDP等)使用,并且其中的成员变量在结构从一层向另一层传递时改变。// L4向L3传递前会添加一个L4的头部,同样,L3向L2传递前,会添加一个L3的头部

2017-01-07 13:16:22 2306

最小操作系统制作过程

这是一个不错的资源 帮助那些想学习 并且想自己写操作系统的人员

2014-10-27

空空如也

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

TA关注的人

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