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

LinuxÉ豸Çý¶¯ÖеIJ¢·¢¿ØÖÆ

²¢·¢Ó뾺̬
½â¾ö¾ºÌ¬ÎÊÌâµÄ;¾¶ÊDZ£Ö¤¶Ô¹²Ïí×ÊÔ´µÄ»¥³â·ÃÎÊ¡£
·ÃÎʹ²Ïí×ÊÔ´µÄ´úÂëÇøÓò³ÆÎªÁÙ½çÇø£¬ÁÙ½çÇøÐèÒªÒÔijÖÖ»¥³â»úÖÆ¼ÓÒÔ±£»¤¡£ÖÐ¶ÏÆÁ±Î¡¢Ô­×Ó²Ù×÷¡¢×ÔÐýËøºÍÐźÅÁ¿µÈÊÇLinuxÉ豸Çý¶¯ÖпɲÉÓõĻ¥³â;¾¶¡£
ÖÐ¶ÏÆÁ±Î
ÖÐ¶ÏÆÁ±Î½«Ê¹µÃÖжÏÓë½ø³ÌÖ®¼äµÄ²¢·¢²»ÔÙ·¢Éú£¬¶øÇÒ£¬ÓÉÓÚLinuxÄں˵Ľø³Ìµ÷¶ÈµÈ²Ù×÷¶¼ÒÀÀµÖжÏÀ´ÊµÏÖ£¬ÄÚºËÇÀÕ¼½ø³ÌÖ®¼äµÄ²¢·¢Ò²¾ÍµÃÒÔ±ÜÃâÁË¡£µ«ÊÇ£¬ÐèҪעÒâÊǵÄÊdz¤Ê±¼äµÄÖжÏÊÇΣÏյģ¬ÓпÉÄܵ¼ÖÂÊý¾Ý¶ªÊ§»ò×Åϵͳ±ÀÀ£¡£
local_irq_disable()ºÍlocal_irq_enable()¶¼Ö»ÄܽûÖ¹ºÍʹÄܱ¾CPUÄÚµÄÖжϣ¬²»Äܽâ¾öSMP¶àCPUÒý·¢µÄ¾ºÌ¬¡£
local_irq_save(flags)³ýÁ˽øÐнûÖ¹ÖжϲÙ×÷ÒÔÍ⣬»¹±£´æÄ¿Ç°CPUµÄÖжÏλÐÅÏ¢£¬local_irq_restore(flags)½øÐÐÏà·´µÄ²Ù×÷¡£
Èç¹ûÖ»Ïë½ûÖ¹Öжϵĵװ벿£¬Ó¦Ê¹ÓÃlocal_bh_disable(),ʹÄܵװ벿ʹÓÃlocal_bh_enable()¡£
Ô­×Ó²Ù×÷
Ô­×Ó²Ù×÷Ö¸µÄÊÇÔÚÖ´Ðйý³ÌÖв»»á±»±ðµÄ´úÂë·¾¶ËùÖжϵIJÙ×÷¡£
LinuxÄÚºËÌṩÁËһϵÁк¯ÊýÀ´ÊµÏÖÄÚºËÖеÄÔ­×Ó²Ù×÷£¬ÕâЩº¯ÊýÓÖ·ÖΪÁ½À࣬·Ö±ðÕë¶ÔλºÍÕûÐͱäÁ¿½øÐÐÔ­×Ó²Ù×÷¡£
 ÕûÐÍÔ­×Ó²Ù×÷
 1. ÉèÖÃÖµ void atomic_set(atomic_t *v,int i); Atomic_t v = ATOMIC_INT(0);
2. »ñȡֵ atomic_read(atomic_t *v);
3. ¼Ó¼õ void atomic_add(int i,atomic_t *v); void atomic_sub(int i,atomic_t *v);
4. ×ÔÔö×Ô¼õ void atomic_inc(atomic_t *v); void atomic_dec(atomic_t *v);
5. ²Ù×÷²âÊÔ int atomic_inc_and_test(atomic_t *v); int atomic_dec_and_test(atomic_t *v); int atomic_sub_and_test(int i, atomic_t *v);
²Ù×÷ºó²âÊÔÆäÖµÊÇ·ñΪ0£¬Îª0·µ»Øtrue£¬·ñÔò·µ»Øfalse¡£
6. ²Ù×÷·µ»Øint atomic_inc_and_return(atomic_t *v); int atomic_dec_and_return(atomic_t *v); int atomic_sub_and_return(int i, atomic_t *v); int atomic_add_and_return(int i, atomic_t *v);
²Ù×÷ºó·µ»ØÐÂÖµ¡£
 Î»Ô­×Ó²Ù×÷
 1. ÉèÖÃλ void set_bit(nr,void *addr); ÉèÖÃaddrµØÖ·µÄµÚnr룬¼´½«Î»Ð´1¡£
2. Çå³ýλ void clear_bit(nr,void *addr); ½«Î»Ð´Îª0¡£
3. ¸Ä±äλ void change_bit(nr,void *addr); ½«Î»½øÐз´Öá£
4. ²âÊÔλtest_bit(nr,void *addr); ·µ»ØµÚnrλ¡£
5. ²âÊÔ²Ù×÷int test_and_set_bit(nr,void *addr); int test_and_clear_bit(nr,void *addr); int test_and_change_bit(nr,void *a


Ïà¹ØÎĵµ£º

Linux µÄ¶àÏ̱߳à³ÌµÄ¸ßЧ¿ª·¢¾­Ñé

2009 Äê 4 ÔÂ 23 ÈÕ
±¾ÎÄÖÐÎÒÃÇÕë¶Ô Linux É϶àÏ̱߳à³ÌµÄÖ÷ÒªÌØÐÔ×ܽá³ö 5 Ìõ¾­Ñ飬ÓÃÒÔ¸ÄÉÆ Linux ¶àÏ̱߳à³ÌµÄϰ¹ßºÍ±ÜÃâÆäÖеĿª·¢ÏÝÚå¡£ÔÚ±¾ÎÄÖУ¬ÎÒÃÇ´©²åһЩ Windows µÄ±à³ÌÓÃÀýÓÃÒÔ¶Ô±È Linux ÌØÐÔ£¬ÒÔ¼ÓÉî¶ÁÕßÓ¡Ïó¡£
±³¾°
Linux ƽ̨ÉϵĶàÏ̳߳ÌÐò¿ª·¢Ïà¶ÔÓ¦ÆäËûƽ̨£¨±ÈÈç Windows£©µÄ¶àÏß³Ì API ÓÐһЩϸ΢ ......

LinuxÄÚºËÅäÖÃÎĵµ(make menuconfig)

Ò»¡¢ÒýÑÔ£º
    ±¾ÎĵµµÄÄÚÈݴ󲿷ÝÄÚÈݶ¼ÊÇ´ÓÍøÉÏÊÕ¼¯¶øÀ´£¬È»ºóÅäºÏһЩеĽØÍ¼£¨Äں˰汾£ºV2.4.19£©¡£ÔÚÿһÅäÖÃÏîºó»áÓÐÒ»¸öÑ¡ÔñÖ¸ÄϵIJ¿·Ý£¬ÓÃÀ´Ö¸µ¼´ó¼ÒÔõôÑù¸ù¾Ý×Ô¼ºµÄÇé¿öÀ´×öÏàÓ¦µÄÑ¡Ôñ£»»¹ÓÐÔÚÿһ¸ö´óÏîºÍÎĵµµÄ×îºó»áÓÐÒ»¸ö¾­Ñé̸£¬ËüÊÇһЩ¸ßÊÖÃÇÔÚÓ¦¶ÔÎÊÌâºÍ´¦ÀíÌØÓÐÓ²¼þʱµÄһЩ¾­Ñ飨Õâ¸ö»¹µ ......

¡¶LinuxÐÔÄܼ°µ÷ÓÅÖ¸ÄÏ¡·£­£­£­£­1.1 Linux½ø³Ì¹ÜÀí

·­Ò룺·É¸ç (
http://hi.baidu.com/imlidapeng
)
°æÈ¨ËùÓУ¬×ðÖØËûÈËÀͶ¯³É¹û£¬×ªÔØÊ±Çë×¢Ã÷×÷ÕߺÍԭʼ³ö´¦¼°±¾ÉùÃ÷¡£
Ô­ÎÄÃû³Æ£º¡¶Linux Performance and Tuning Guidelines¡·
Ô­ÎĵØÖ·£ºhttp://www.redbooks.ibm.com/abstracts/redp4285.html
------------------------------------------------------------------- ......

Linux/Unix環¾³ÏµÄmakeºÍmakefile詳½â

無論ÊÇÔÚLinux還ÊÇÔÚUnix環¾³ÖУ¬make¶¼ÊÇÒ»個·Ç³£ÖØÒªµÄ編譯Ö¸Áî¡£
²»¹ÜÊÇ×Ô¼º進ÐÐ項Ä¿開發還Êǰ²裝應ÓÃ軟體£¬ÎÒ們¶¼經³£ÒªÓõ½make»òmake install¡£ÀûÓÃmake¹¤¾ß£¬ÎÒ們¿ÉÒÔ將´óÐ͵Ä開& ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ