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

spinlock ÓëlinuxÄں˵÷¶ÈµÄ¹ØÏµ


¹ØÓÚ×ÔÐýËøÓ÷¨½éÉܵÄÎÄÕ£¬ÒѾ­Óкܶ࣬µ«ÓÐЩϸ½ÚµÄµØ·½µãµÄ»¹²»¹»Í¸¡£ÎÒÕâÀï¾Í°ÑÎÒ¸öÈËÈÏΪ´ó¼ÒÈÝÒ×ÓÐÒÉÎʵĵط½ÄóöÀ´ÌÖÂÛһϡ£

Ò»¡¢×ÔÐýËø£¨spinlock£©¼ò½é

×ÔÐýËøÔÚͬһʱ¿ÌÖ»Äܱ»×î¶àÒ»¸öÄÚºËÈÎÎñ³ÖÓУ¬ËùÒÔÒ»¸öʱ¿ÌÖ»ÓÐÒ»¸öÏß³ÌÔÊÐí´æÔÚÓÚÁÙ½çÇøÖС£Õâµã¿ÉÒÔÓ¦ÓÃÔÚ¶à´¦Àí»úÆ÷¡¢»òÔËÐÐÔÚµ¥´¦ÀíÆ÷ÉϵÄÇÀռʽÄÚºË
ÖÐÐèÒªµÄËø¶¨·þÎñ¡£

¶þ¡¢ÐźÅÁ¿¼ò½é

ÕâÀïÒ²½éÉÜÏÂÐźÅÁ¿µÄ¸ÅÄÒòΪËüµÄÓ÷¨ºÍ×ÔÐýËøÓÐÏàËÆµÄµØ·½¡£

LinuxÖеÄÐźÅÁ¿ÊÇÒ»ÖÖ˯ÃßËø¡£Èç¹ûÓÐÒ»¸öÈÎÎñÊÔͼ»ñµÃÒ»¸öÒѱ»³ÖÓеÄÐźÅÁ¿Ê±£¬ÐźÅÁ¿»á½«ÆäÍÆÈëµÈ´ý¶ÓÁУ¬È»ºóÈÃÆä˯Ãß¡£Õâʱ´¦ÀíÆ÷»ñµÃ×ÔÓÉÈ¥Ö´ÐÐ
ÆäËü´úÂë¡£µ±³ÖÓÐÐźÅÁ¿µÄ½ø³Ì½«ÐźÅÁ¿Êͷźó£¬Ôڵȴý¶ÓÁÐÖеÄÒ»¸öÈÎÎñ½«±»»½ÐÑ£¬´Ó¶ø±ã¿ÉÒÔ»ñµÃÕâ¸öÐźÅÁ¿¡£

Èý¡¢×ÔÐýËøºÍÐźÅÁ¿¶Ô±È

ÔÚºÜ¶àµØ·½×ÔÐýËøºÍÐźÅÁ¿¿ÉÒÔÑ¡ÔñÈκÎÒ»¸öʹÓ㬵«Ò²ÓÐһЩµØ·½Ö»ÄÜÑ¡ÔñijһÖÖ¡£ÏÂÃæ¶Ô±ÈһЩÁ½ÕßµÄÓ÷¨¡£

±í1-1×ÔÐýËøºÍÐźÅÁ¿¶Ô±È
Ó¦Óó¡ºÏ
ÐźÅÁ¿or
×ÔÐýËø
µÍ¿ªÏú¼ÓËø£¨ÁÙ½çÇøÖ´ÐÐʱ¼ä½Ï
¿ì£©
ÓÅÏÈÑ¡Ôñ×ÔÐýËø
µÍ¿ªÏú¼ÓËø£¨ÁÙ½çÇøÖ´ÐÐʱ¼ä½Ï
³¤£©
ÓÅÏÈÑ¡ÔñÐźÅÁ¿
ÁÙ½çÇø¿ÉÄܰüº¬ÒýÆð˯ÃߵĴúÂë
²»ÄÜÑ¡×ÔÐýËø£¬¿ÉÒÔÑ¡ÔñÐÅ
ºÅÁ¿
ÁÙ½çÇøÎ»Óڷǽø³ÌÉÏÏÂÎÄʱ£¬´Ëʱ²»ÄÜ˯Ãß
ÓÅÏÈÑ¡Ôñ×ÔÐýËø
£¬¼´Ê¹Ñ¡ÔñÐÅ
ºÅÁ¿Ò²Ö»ÄÜÓÃdown_trylock
·Ç×èÈûµÄ·½Ê½
ËÄ¡¢×ÔÐýËøÓëlinuxÄں˽ø³Ìµ÷¶È¹ØÏµ

ÎÒÃÇÌÖÂÛϱí1-1ÖеĵÚ3ÖÖÇé¿ö£¨ÆäËü¼¸ÖÖÇé¿ö±È½ÏºÃÀí½â£©£¬Èç¹ûÁÙ½çÇø¿ÉÄܰüº¬ÒýÆð˯ÃߵĴúÂëÔò²»ÄÜʹÓÃ×ÔÐýËø£¬·ñÔò¿ÉÄÜÒýÆðËÀËø¡£
ÄÇôΪʲôÐźÅÁ¿±£»¤µÄ´úÂë¿ÉÒÔ˯Ãß¶ø×ÔÐýËø¾Í²»ÄÜÄØ£¿
ÏÈ¿´ÏÂ×ÔÐýËøµÄʵÏÖ·½·¨°É£¬×ÔÐýËøµÄ»ù±¾ÐÎʽÈçÏ£º
spin_lock(&mr_lock);
//ÁÙ½çÇø
spin_unlock(&mr_lock);
¸ú×ÙÒ»ÏÂspin_lock(&mr_lock)µÄʵÏÖ
#define spin_lock(lock) _spin_lock(lock)
#define _spin_lock(lock) __LOCK(lock)
#define __LOCK(lock) \
do { preempt_disable(); __acquire(lock);
(void)(lock); } while (0)

×¢Òâµ½“preempt_disable()”£¬Õâ¸öµ÷ÓõŦÄÜÊÇ“¹ØÇÀÕ¼”£¨ÔÚspin_unlockÖлáÖØÐ¿ªÆôÇÀÕ¼¹¦ÄÜ£©¡£´ÓÖпÉÒÔ¿´³ö£¬Ê¹ÓÃ×ÔÐý
Ëø±£»¤µÄÇøÓòÊǹ¤×÷ÔÚ·ÇÇÀÕ¼µÄ״̬£»¼´Ê¹»ñÈ¡²»µ½Ëø£¬ÔÚ“×ÔÐý”״̬ҲÊǽûÖ¹ÇÀÕ¼µÄ¡£Á˽⵽Õ⣬ÎÒÏëÔÛÃÇÓ¦¸ÃÄܹ»Àí½âΪºÎ×ÔÐýËø±£»¤µÄ´úÂë²»ÄÜ˯ÃßÁË¡£ÊÔ
Ïëһϣ¬Èç¹


Ïà¹ØÎĵµ£º

Linux²é¿´ÏµÍ³ÅäÖó£ÓÃÃüÁî

ϵͳ
# uname -a               # ²é¿´
ÄÚºË/²Ù×÷ϵͳ/CPUÐÅÏ¢
# head -n
1 /etc/issue   # ²é¿´
²Ù×÷ϵͳ°æ±¾
# cat /proc/cpuinfo      # ²é¿´
CPUÐÅÏ¢
#
hostname    &nb ......

dzÎöLinuxÏÂcoreÎļþ

µ±ÎÒÃǵijÌÐò±ÀÀ£Ê±£¬ÄÚºËÓпÉÄܰѸóÌÐòµ±Ç°ÄÚ´æÓ³Éäµ½coreÎļþÀ·½±ã³ÌÐòÔ±ÕÒµ½³ÌÐò³öÏÖÎÊÌâµÄµØ·½¡£×î³£³ö
Ïֵ쬼¸ºõËùÓÐC³ÌÐòÔ±¶¼³öÏÖ¹ýµÄ´íÎó¾ÍÊÇ“¶Î´íÎó”ÁË¡£Ò²ÊÇ×îÄѲé³öÎÊÌâÔ­ÒòµÄÒ»¸ö´íÎó¡£ÏÂÃæÎÒÃǾÍÕë¶Ô“¶Î´íÎó”À´·ÖÎöcoreÎļþµÄ²úÉú¡¢ÒÔ¼°ÎÒÃÇ
ÈçºÎÀûÓÃcoreÎļþÕÒµ½³öÏÖ±ÀÀ£µÄµØ· ......

Linux °²×°¼Æ»®

1. ´ÓÓ²Å̰²×°linuxµÄѧϰ£¬ºÍʵÑé   Done
     Use wingrub, install the Ubuntu on /dev/sda2. and could boot!
2.  pppoe connection                      &nbs ......

LinuxÏÂÅäÖÃSVN Server(¶þ)

ÔÚÒ»ÖÐÒѾ­ËµÃ÷ÁËÔÚlinuxÏÂÅäÖÃSVN serverµÄÖ÷Òª²½Ö裬Èç¹ûÈí¼þÒÀÀµÃ»ÓÐÎÊÌâµÄ»°Ó¦¸ÃÒѾ­°²×°³É¹¦ÁË£¬ÏÂÃæ¾ÍÊÇÅäÖõÄÎÊÌâÁË¡£Ê×ÏÈҪȷ¶¨subversionµÄÁ½¸öÄ£¿éÊDz»ÊÇÕýÈ·µÄ°²×°µ½ÁËapacheÏ£¬¿ÉÒÔÔÚapacheµÄÒ»¸öÅäÖÃÎļþÖп´µ½£¬¸ÃÅäÖÃÎļþÔÚapacheµÄ°²×°Ä¿Â¼Ï /conf/httpd.conf
ÔÚhttpd.confÏÂÃæ»áÓÐÁ½ÐУº
LoadModul ......

ÎÒ¶ÔLinuxµÄһЩ¿´·¨

      ÒÔǰ×ÜÊÇÒÔΪֻÓÐwindowsÒ»ÖÖ²Ù×÷ϵͳ£¬ºóÀ´Ìý˵ÁËUnix¡¢LinuxºÍMacOSµÈ£¬²ÅÖªµÀÔ­À´²Ù×÷ϵͳµÄÖÖÀ໹ÊÇͦ¶àµÄ¡£ÓùßÁËwindows£¬¾ÍÏëÊÔÏÂÆäËûµÄ²Ù×÷ϵͳ£¬Ïë¿´¿´ÎªÊ²Ã´windows»á½øÈëǧ¼ÒÍò»§£¬¶øLinuxûÓС£ËùÒÔ£¬×òÌ죬»¨ÁË5¿éÇ®£¬×Ô¼º×°Á˸öred hat enterprise Linux server 5.4°æ£¨±¾À´Ï ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ