[ת]linuxÐźÅÁ¿µÄʵÏÖ
ÔÎĵØÖ·£ºhttp://blog.sina.com.cn/s/blog_460b9cbf0100gxtv.html
ҪʹÓÃÐźÅÁ¿£¬Äں˴úÂë±ØÐë°üÀ¨<asm/semaphore.h>¡£Ïà¹ØµÄÀàÐÍÊÇstruct semaphore£»Êµ¼ÊµÄÐźÅÁ¿¿Éͨ¹ý¼¸ÖÖ;¾¶À´ÉùÃ÷ºÍ³õʼ»¯¡£ÆäÖÐÖ®Ò»ÊÇÖ±½Ó´´½¨ÐźÅÁ¿£¬Õâͨ¹ýsema_initÍê³É£º
viod sema_init(struct semaphore *sem,int val);
ÆäÖÐvalÊǸ³ÓèÒ»¸öÐźÅÁ¿µÄ³õʼֵ¡£
²»¹ý£¬ÐźÅÁ¿Í¨³£ÓÃÓÚ»¥³âģʽ¡£ÎªÁËÈÃÕâÖÖÇé¿ö¸ü¼Ó¼òµ¥£¬ÄÚºËÌṩÁËÒ»×鸨Öúº¯ÊýºÍºê¡£Òò´Ë£¬ÎÒÃÇ¿ÉÒÔÓÃÏÂÃæµÄ·½·¨Ö®Ò»À´ÉùÃ÷ºÍ³õʼ»¯»¥³âÌ壺
DECLARE_MUTEX(name);
DECLARE_MUTEX_LOCKED(name);
ÉÏÃæÁ½¸öºêµÄ½á¹ûÊÇ£¬Ò»¸ö³ÆÎªnameµÄÐźÅÁ¿±»³õʼ»¯Îª1(DECLARE_MUTEX)»òÕß0£¨Ê¹ÓÃDECLARE_MUTEX_LOCKED)¡£ÔÚºóÃæÒ»ÖÖÇé¿öÏ£¬»¥³âÌåµÄ³õÊ¼×´Ì¬Ê±Ëø¶¨µÄ£¬Ò²¾ÍÊÇ˵£¬ÔÚÔÊÐíÈκÎÏ̷߳ÃÎÊ֮ǰ£¬±ØÐëÏÔʽµØ½âËø¸Ã»¥³âÌå¡£
Èç¹û»¥³âÌ屨ÐëÔÚÔËÐÐʱ±»³õʼ»¯£¨ÀýÈçÔÚ¶¯Ì¬·ÖÅ以³âÌåµÄÇé¿öÏ£©£¬Ó¦Ê¹ÓÃÏÂÃæµÄº¯ÊýÖ®Ò»£º
void init_MUTEX(struct semaphore * sem);
void init_MUTEX_LOCKED(struct semaphore *sem);
ÔÚlinuxÊÀ½çÖУ¬Pº¯Êý±»³ÆÎªdown--»òÕßÕâ¸öÃû×ֵįäËü±äÖÖ¡£ÕâÀ"down"Ö¸µÄÊǸú¯Êý¼õСÁËÐźÅÁ¿µÄÖµ£¬ËüÒ²Ðí»á±»µ÷ÓÃÕßÖÃÓÚÐÝÃß״̬£¬È»ºóµÈ´ýÐźÅÁ¿±äµÃ¿ÉÓã¬Ö®ºóÊÚÓèµ÷ÓÃÕß¶Ô±»±£»¤×ÊÔ´µÄ·ÃÎÊ¡£ÏÂÃæÊÇdownµÄÈý¸ö°æ±¾£º
void down(struct semaphore *sem);
int down_interruptible(struct semaphore *sem);
int down_trylock(struct semaphore *sem);
down¼õÉÙÐźÅÁ¿µÄÖµ£¬²¢ÔÚ±ØÒªÊ±Ò»Ö±µÈ´ý¡£down_interruptibleÍê³ÉÏàͬµÄ¹¤×÷£¬µ«²Ù×÷ÊÇ¿ÉÖжϵġ£¿ÉÖжϵİ汾¼¸ºõÊÇÎÒÃÇʼÖÕҪʹÓõİ汾£¬ËüÔÊÐíµÈ´ýÔÚij¸öÐźÅÁ¿ÉϵÄÓû§¿Õ¼äµÄ½ø³Ì¿É±»Óû§Öжϡ£Ê¹ÓÃdown_interruptibleÐèÒª¶îÍâСÐÄ£¬Èç¹û²Ù×÷±»Öжϣ¬¸Ãº¯Êý»á·µ»Ø·ÇÁãÖµ£¬¶øµ÷ÓÃÕß²»»áÓµÓиÃÐźÅÁ¿¡£¶Ôdown_interruptibleµÄÕýȷʹÓÃÐèҪʼÖÕ¼ì²é·µ»ØÖµ£¬²¢×÷³öÏàÓ¦µÄÏìÓ¦¡£
×îºóÒ»¸ö°æ±¾(down_trylock)ÓÀÔ¶²»»áÐÝÃߣ»Èç¹ûÐźÅÁ¿ÔÚµ÷ÓÃʱ²»¿É»ñµÃ£¬down_trylock»áÁ¢¼´·µ»ØÒ»¸ö·ÇÁãÖµ¡£
µ±Ò»¸öÏ̳߳ɹ¦µ÷ÓÃÉÏÊödownµÄij¸ö°æ±¾Ö®ºó£¬¾Í³ÆÎª¸ÃÏ߳̔ӵÓГ(»ò”Äõ½“£¬”»ñÈ¡“£©Á˸ÄÐźÅÁ¿¡£ÕâÑù£¬¸ÃÏ߳̾ͱ»¸³Óè·ÃÎÊÓɸÃÐźÅÁ¿±£»¤µÄÁÙ½çÇøµÄȨÀû¡£µ±»¥³â²Ù×÷Íê³Éºó£¬±ØÐë·µ»Ø¸ÃÐźÅÁ¿¡£LinuxµÈ¼ÛÓÚVµÄº¯ÊýÊÇup:
void up(struct semaphore * sem);
µ÷ÓÃupÖ®ºó£¬µ
Ïà¹ØÎĵµ£º
Èç¹ûÏë½øÒ»²½Á˽âlinuxϵͳ£¬ÊìϤһЩϵͳµ×²ãµÄ¶«Î÷»¹ÊǷdz£±ØÒªµÄ£¬ÎÒÃÇ¿ÉÒÔÏÈÁ˽âһЩlinuxÃüÁîÊÇÈçºÎʵÏÖÏà¹Ø¹¦Äܵģ¬ÄÇôÈçºÎ»ñµÃÃüÁîµÄÔ´´úÂëÄØ£¿ÏÂÃæÎÒÃÇÏêϸ½éÉÜһϡ£
¡¡¡¡ÏÂÃæÒÔ»ñÈ¡catÃüÁîµÄÔ´´úÂëΪÀý˵Ã÷£º
cd /sbin
rpm -qif cat
¡¡ ......
¡¡¡¡4ÔÂ13ÈÕÏûÏ¢£¬¾Ý¹úÍâýÌ屨µÀ£¬Ó¢¹úITÍøÕ¾VnunetÁ½ÖÜǰÆÀ³öÁË“ITÊг¡10´ó¶ñ¹÷”£¬ÈÕǰ£¬VnunetÓÖÆÀ³öÁË“ITÊг¡10´óÓ¢ÐÛ”£¬LinuxÖ®¸¸ÀîÄÉ˹·ÍÐÎÖ×È(Linus Torvalds)ºÍÆ»¹ûÁªºÏ´´Ê¼ÈËÊ·µÙ·ò·ÎÖ×ÈÄáÑÇ¿Ë(Steve Wozniak)µÈ·×·×Éϰñ¡£
¡¡¡¡ÕâÀïËùνµÄ“Ó¢ÐÛ”²¢²»ÊÇÖ¸Óж ......
LinuxÉ豸Çý¶¯³ÌÐòѧϰ±Ê¼ÇϵÁÐÎÄÕÂÔ×÷ÕßÊÇ£ºTekkaman Ninja£¬Ëû²©¿ÍµØÖ·£º
http://blog.chinaunix.net/u1/34474/showart_404278.html
ÔÚ´ËÏòTekkaman Ninja±íʾ¸Ðл£¬Ð´³öÕâôºÃµÄÎÄÕ£¬Ê¹ÎÒÉÙ×ßÁ˺ܶàÍä·¡£
ÒÔ¡¶LDD3¡·µÄ˵·¨£ºLinuxÉ豸ģÐÍÕⲿ·ÖÄÚÈÝ¿ÉÒÔÈÏΪÊǸ߼¶½Ì²Ä£¬¶ÔÓÚ¶àÊý³ÌÐò×÷ÕßÀ´ËµÊDz»±ØÒªµÄ¡£µ«ÊÇÎÒ¸ ......
1.
In /etc/pacman.conf, add 2 lines:
[ati]
Server = http://dl.dropbox.com/u/4832298/x86_64
from this repo, install:
kernel26-pm, ......