ruger 发表于 2006-9-6 09:50:04

请教:sk_protinfo怎么使用?

只是知道在socket结构下面有个void *sk_protinfo;不知道怎么用,注释里面只是说“私有区域,不使用slab时的特定net簇”google搜索出来大多都是Don't use sk_protinfo + private sock slab cache和get rid of sk_protinfo的帖子,就算不让用了也好明白怎么个意思啊,否则没发明白程序的,还有就是能否介绍一下slab簇,先谢谢!

ruger 发表于 2006-9-6 17:57:20

等了一天也没人回复啊!

manioster 发表于 2006-9-7 23:27:45

人气不旺我有错啊,对不起大家。
讲一下我对SLAB的理解吧,这是原来看书的时候写在笔记上的。也不知道对不对,有错大家一起讨论吧。

先讲一下空闲链表吧,空闲链表是用来存放一些常用的数据结构的,要用的时候拿出去,不用的时候收回来,这样就可以提高速度减少内存的分配次数。这个空闲链表像是高缓存。
用SLAB也就是说不要自己去实现空闲链表,而是让SLAB分配符去实现。

ruger 发表于 2006-9-8 21:08:57

人气不旺我有错啊,对不起大家。
讲一下我对SLAB的理解吧,这是原来看书的时候写在笔记上的。也不知道对不对,有错大家一起讨论吧。

先讲一下空闲链表吧,空闲链表是用来存放一些常用的数据结构的,要用的时候拿出去,不用的时候收回来,这样就可以提高速度减少内存的分配次数。这个空闲链表像是高缓存。
用SLAB也就是说不要自己去实现空闲链表,而是让SLAB分配符去实现。
不大懂,还是谢谢版主了~

ruger 发表于 2006-9-8 21:44:49

从编程上理解了一些,void *sk_protinfo是一个void类型的指针:
void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。
也就是说void *sk_protinfo是一个预留借口,可以接任何类型的指针(包括函数指针),也就是注释上说的“私有区域,当不用slab时的特定net簇”,估计sock结构在设计的时候打算把sk_protinfo接口用作和协议簇有关的定义,所以是“特定net簇”,至于slab什么机理,还是不明白,不过好多书上都有的。
页: [1]
查看完整版本: 请教:sk_protinfo怎么使用?