Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

LinuxÄں˴úÂë·ÖÎö slab.c by Áõ¿º


LinuxÄں˴úÂë·ÖÎö slab.c by Áõ¿º liukang@bjut.edu.cn
slab.cÀ´×ÔlinuxÄÚºË2.4.22°æ£¬±¾Îļþ°´ÕÕGNUЭÒé·¢²¼¡£
Ò»¡¢×¼±¸ÖªÊ¶£º
slabµÄ¸ÅÄ
Ìá³öµÄÔ­Òò£ºÓÉÓÚ²Ù×÷ϵͳÔÚÔËÐÐÖл᲻¶Ï²úÉú¡¢Ê¹Óá¢ÊÍ·Å´óÁ¿Öظ´µÄ¶ÔÏó£¬
ËùÒÔ¶ÔÕâÑùµÄÖظ´¶ÔÏóµÄÉú³É½øÐиĽø¿ÉÒÔ´ó´óÌá¸ßЧÂÊ
×îÔçÓÉsunµÄ¹¤³ÌʦÌá³ö(1994Äê)²¢Ê×ÏÈÔÚsunos5.4ÉÏÓ¦Óá£
slabËã·¨µÄ»ù±¾Ë¼Â·£º
·ÖÅ䣺
if(¶ÔÏà¶ÔÓ¦µÄ»º´æÇøÓпÕÏÐλÖÃ)
ʹÓÃÕâ¸öλÖ㬲»±ØÔÙ³õʼ»¯£»
else{
·ÖÅäÄڴ棻
³õʼ»¯¶ÔÏó£»
}
ÊÍ·Å£º
ÔÚ»º´æÖбê¼Ç¿ÕÏУ¬²»×öÎö¹¹£»
×ÊÔ´²»×㣺
Ñ°ÕÒδʹÓõĶÔÏó¿Õ¼ä£»
°´ÕÕÒªÇó¶Ô²¿·Ö¶ÔÏó×öÎö¹¹£»
ÊͷŶÔÏóÕ¼ÓõĿռ䣻
»º´æÇø£ºÃ¿Ò»¸ö¶ÔÏó·ÅÔÚÒ»¸ö»º´æÇø
slab£ºÃ¿¸öslab¿é¶¼ÊÇÒ³Ãæ´óСµÄÕûÊý±¶£¨ÓÐÉÏÏÞ£©
×ÅÉ«£º×Ö½ÚÊý°´ÕÕÓ²¼þµÄÒªÇó¶ÔÆ룬¿ÉÒÔ´ó´óÌá¸ßÓ²¼þ»º´æµÄÀûÓÃÂʺÍЧÂÊ¡£
slab¿éµÄÁ½ÖÖ¹ÜÀíģʽ£º
on-slab ÊÊÓÃÓÚС¶ÔÏó£¨Ð¡ÓÚ1/8Ò³£©£¬slab¹ÜÀí½á¹¹´æ·ÅÔÚslab¿éÖС£
off-slabÊÊÓÃÓÚ´ó¶ÔÏó£¬(´óÓÚµÈÓÚ1/8Ò³),¶ÔÏóºÍslab¿éµÄ¹ÜÀí½á¹¹¶¼ÓÉcache_slabpÖзÖÅä¡£
¸ù¾ÝslabÌá³öÕßµÄÂÛÎÄ,slab²»ÊʺÏÓÃÔÚ´ó¶ÔÏóÉÏ¡£
slabÉæ¼°µÄÖØÒª²Ù×÷£º
»º´æÇø´´½¨kmem_cache_createÓëÏú»Ùkmem_cache_destory
»º´æÇøÊÕËõkmem_cache_shrinkÓëÀ©ÕÅkmem_cache_grow
¶ÔÏó·ÖÅäkmem_cache_allocÓëÊÍ·Åkmem_cache_free
ÄÚºË̬ÄÚ´æµÄÉêÇëkmallocÓëÊÍ·Åkfree
¶þ¡¢Éæ¼°µÄÖØÒªÊý¾Ý½á¹¹£º
typedef unsigned int kmem_bufctl_t£ºslab¿éÖеĹÜÀí½á¹¹
cache_size±í£º±£´æÁ˲»Í¬´óС(2^n)Ò³ÃæÖ¸Ïòcache_cacheµÄÁ½ÖÖÖ¸Õë(dmaºÍ·Çdma)¡£
Á´±í£º×îÖØÒªµÄÊÇÔÚ¹ÜÀíslab½á¹¹ÖгöÏÖµÄ3¸öÁ´±í£¬·Ö±ðΪÍêȫʹÓõģ¬²¿·ÖʹÓõĺÍÍêȫûÓùýµÄslab¡£
½á¹¹Ì壺¼ûÏÂÃæµÄ´úÂë·ÖÎö¡£
Èý¡¢´úÂë·ÖÎö£º
ÿ¸öÑÕÉ«´ú±íµÄº¬Ò壺
ºìÉ«£º´úÂë×¢ÊÍ£»
źºÉÉ«£º±àÒëÔ¤´¦ÀíÐèÒª´¦ÀíµÄÄÚÈÝ£»
À¶É«£ºCÓïÑԹؼü×Ö¡¢º¯Êý¶¨Ò壻
ÂÌÉ«£ººê¶¨Ò壻
ºÚÉ«£º´úÂ룻
»ÒÉ«£ºÊä³öÐÅÏ¢£»
ÉîÀ¶É«£ºÎÒ¸ø³öµÄ×¢½â¡£
/*
* linux/mm/slab.c
* Written by Mark Hemment, 1996/97.
* (markhe@nextd.demon.co.uk)
*
* kmem_cache_destroy() + some cleanup - 1999 Andrea Arcangeli
*
* Major cleanup, different bufctl logic, per-cpu arrays
* (c) 2000 Manfred Spraul
*ÒÔÉÏΪ°æȨÐÅÏ¢
* An implementation of the Slab Allocator as described in outline in;
* UNIX Internals: The N


Ïà¹ØÎĵµ£º

linux D Bus tutorial

http://dbus.freedesktop.org/doc/dbus-tutorial.html
D-Bus Tutorial
Havoc
Pennington
Red Hat, Inc.
<hp@pobox.com
>
David
Wheeler
John
Palmieri
Red Hat, Inc.
<johnp@redhat.com
>
Colin
Walters
Red Hat, Inc.
<walters@redhat.com
>
Version 0.5.0
Table of Contents
......

LINUX쵀iptables

Ô­Ìû£ºhttp://www.cnscn.org/read.php?tid-44684.html
iptablesÓÐÈýÖÖÁ´
1£ºINPUT (½øÀ´µÄÁ´)
2£ºOUTPUT(³öÈ¥µÄÁ´)
3£ºFORWARD(ת·¢µÄÁ´)
iptables -A INPUT -p icmp -j DROP
-A(Ìí¼ÓÒ»¸öÁ´) -p ЭÒé -j(Ìí¼Ó¶¯×÷) ˵Ã÷Ìí¼ÓÒ»¸ö½øÀ´µÄÁ´¡£Ð­ÒéÊÇicmp¶¯×÷¾Ü¾ø¡£
iptables -L -n (ÓÃÊ÷ÐνṹÀ´¿´Ò»ÏÂiptablesµÄÉèÖÃ)
......

linux tasklet 4

ÒýÓà 2 Â¥ cokeliu µÄ»Ø¸´:
лл! ÇëÎÊÊÇ·ñÿµ÷ÓÃÒ»´Îtasklet_schedule(B task); B taskÈÎÎñ±»¼Óµ½Á´±íÉÏÖ»»á±»Ö´ÐÐÒ»´Î?
Êǵģ¬Ö»±»¼ÓÒ»´Î
µÚÒ»´Îtasklet_schedule(B task)¸øËûÒ»¸ö״̬TASK_STATE_SCHED
×÷±ê¼Ç£¬ÒÔºóµÄtasklet_schedule(B task)»á¼ì²éÕâ¸ö±ê¼Ç
http://os.inf.tu-dresden.de/l4env/doc/html/dde_linux ......

linux ÐźŴ¦Àí µÄѧϰ

      linuxϵͳÖжÔÐźŵĴ¦ÀíÖ÷ÒªÊÇsignal ºÍsigactionº¯ÊýÀ´Íê³É£¬pauseÓÃÀ´ÏìÓ¦ÈκÎÐźţ¬µ«²»×öÈκδ¦Àí¡£
      1¡£signalº¯Êý
¸Ãº¯ÊýÓÃÀ´ÉèÖýø³ÌÔÚ½Óµ½ÐźŵĶ¯×÷¡£¿ÉÒÔ man signal²é¿´¾ßÌåÓ÷¨£¬ÏÖÔÚ¶ÔÆäÓ÷¨ÑÝʾ£¬
SIGKILL SIGSTOPÊDz»Äܱ»²¶×½ºÍºöÂÔµÄÐź ......

SynapticsÖúÁ¦Chrome OSºÍLinux¶à點觸Ãþ

4ÔÂ19ÈÕ£¬²Ù×÷½çÃæ½â¾ö·½°¸ÌṩÉÌSynaptics Inc.Ðû²¼ÁËÒ»Ì×ÓÃÓÚLinuxϵ統µÄ Synaptics Gesture Suite¿ª·¢Ì××°£¨SGS-L£©£¬Õâ¿îÈí¼þ½«´ø¸ø¿ªÔ´LinuxϵͳÒÔ¶àµã´¥ÃþµÄÄÜÁ¦¡£
SGS-LÖ§³Ö眾¶àµÄLinux·¢ÐаæÈçFedora, Millos Linpus, Red Flag, SuSE, UbuntuºÍXandros£¬並ÌØ別Ìá¼°¿ÉÍØÕ¹Chrome OSµÄй¦Ä ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ