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

6)Linux³ÌÐòÉè¼ÆÈëÃÅ

6)Linux³ÌÐòÉè¼ÆÈëÃÅ--ÏûÏ¢¹ÜÀí
ǰÑÔ:LinuxϵĽø³ÌͨÐÅ(IPC)
LinuxϵĽø³ÌͨÐÅ(IPC)
POSIXÎÞÃûÐźÅÁ¿
System VÐźÅÁ¿
System VÏûÏ¢¶ÓÁÐ
System V¹²ÏíÄÚ´æ
1¡£POSIXÎÞÃûÐźÅÁ¿ Èç¹ûÄãѧϰ¹ý²Ù×÷ϵͳ,ÄÇô¿Ï¶¨ÊìϤPV²Ù×÷ÁË.PV²Ù×÷ÊÇÔ­×Ó
²Ù×÷.Ò²¾ÍÊDzÙ×÷ÊDz»¿ÉÒÔÖжϵÄ,ÔÚÒ»¶¨µÄʱ¼äÄÚ,Ö»Äܹ»ÓÐÒ»¸ö½ø³ÌµÄ´úÂëÔÚCPUÉÏÃæ
Ö´ÐÐ.ÔÚϵͳµ±ÖÐ,ÓÐʱºòΪÁË˳ÀûµÄʹÓúͱ£»¤¹²Ïí×ÊÔ´,´ó¼ÒÌá³öÁËÐźŵĸÅÄî. ¼ÙÉè
ÎÒÃÇҪʹÓÃһ̨´òÓ¡»ú,Èç¹ûÔÚͬһʱ¿ÌÓÐÁ½¸ö½ø³ÌÔÚÏò´òÓ¡»úÊä³ö,ÄÇô×îÖյĽá¹û»á
ÊÇÊ²Ã´ÄØ.ΪÁË´¦ÀíÕâÖÖÇé¿ö,POSIX±ê×¼Ìá³öÁËÓÐÃûÐźÅÁ¿ºÍÎÞÃûÐźÅÁ¿µÄ¸ÅÄî,ÓÉÓÚLi
nuxֻʵÏÖÁËÎÞÃûÐźÅÁ¿,ÎÒÃÇÔÚÕâÀï¾ÍÖ»ÊǽéÉÜÎÞÃûÐźÅÁ¿ÁË. ÐźÅÁ¿µÄʹÓÃÖ÷ÒªÊÇÓÃ
À´±£»¤¹²Ïí×ÊÔ´,ʹµÄ×ÊÔ´ÔÚÒ»¸öʱ¿ÌÖ»ÓÐÒ»¸ö½ø³ÌËùÓµÓÐ.Ϊ´ËÎÒÃÇ¿ÉÒÔʹÓÃÒ»¸öÐźÅ
µÆ.µ±ÐźŵƵÄֵΪij¸öÖµµÄʱºò,¾Í±íÃ÷´Ëʱ×ÊÔ´²»¿ÉÒÔʹÓÃ.·ñÔò¾Í±í>ʾ¿ÉÒÔʹÓÃ.
ΪÁËÌṩЧÂÊ,ϵͳÌṩÁËÏÂÃæ¼¸¸öº¯Êý
POSIXµÄÎÞÃûÐźÅÁ¿µÄº¯ÊýÓÐÒÔϼ¸¸ö:
#include <semaphore.h>
int sem_init(sem_t *sem,int pshared,unsigned int value);
int sem_destroy(sem_t *sem);
int sem_wait(sem_t *sem);
int sem_trywait(sem_t *sem);
int sem_post(sem_t *sem);
int sem_getvalue(sem_t *sem);
sem_init´´½¨Ò»¸öÐźŵÆ,²¢³õʼ»¯ÆäֵΪvalue.pshared¾ö¶¨ÁËÐźÅÁ¿ÄÜ·ñÔÚ¼¸¸ö½ø³Ì
¼ä¹²Ïí.ÓÉÓÚĿǰLinux»¹Ã»ÓÐʵÏÖ½ø³Ì¼ä¹²ÏíÐźŵÆ,ËùÒÔÕâ¸öÖµÖ»Äܹ»È¡0. sem_dest
royÊÇÓÃÀ´É¾³ýÐźŵƵÄ.sem_waitµ÷Óý«×èÈû½ø³Ì,Ö±µ½ÐźŵƵÄÖµ´óÓÚ0.Õâ¸öº¯Êý·µ»Ø
µÄʱºò×Ô¶¯µÄ½«ÐźŵƵÄÖµµÄ¼þÒ».sem_postºÍsem_waitÏà·´,Êǽ«ÐźŵƵÄÄÚÈݼÓһͬ
ʱ·¢³öÐźŻ½ÐѵȴýµÄ½ø³Ì..sem_trywaitºÍsem_waitÏàͬ,²»¹ý²»×èÈûµÄ,µ±ÐźŵƵÄÖµ
Ϊ0µÄʱºò·µ»ØEAGAIN,±íʾÒÔºóÖØÊÔ.sem_getvalueµÃµ½ÐźŵƵÄÖµ.
ÓÉÓÚLinux²»Ö§³Ö,ÎÒÃÇûÓа취ÓÃÔ´³ÌÐò½âÊÍÁË.
Õ⼸¸öº¯ÊýµÄʹÓÃÏ൱¼òµ¥µÄ.±ÈÈçÎÒÃÇÓÐÒ»¸ö³ÌÐòÒªÏòÒ»¸öϵͳ´òÓ¡»ú´òÓ¡Á½Ò³.ÎÒÃÇ
Ê×ÏÈ´´½¨Ò»¸öÐźŵÆ,²¢Ê¹Æä³õʼֵΪ1,±íʾÎÒÃÇÓÐÒ»¸ö×ÊÔ´¿ÉÓÃ.È»ºóÒ»¸ö½ø³Ìµ÷ÓÃse
m_waitÓÉÓÚÕâ¸öʱºòÐźŵƵÄֵΪ1,ËùÒÔÕâ¸öº¯Êý·µ»Ø,´òÓ¡»ú¿ªÊ¼´òÓ¡ÁË,ͬʱÐźŵÆ
µÄֵΪ0 ÁË. Èç¹ûµÚ¶þ¸ö½ø³ÌÒª´òÓ¡,µ÷ÓÃsem_waitʱºò,ÓÉÓÚÐźŵƵÄֵΪ0,×ÊÔ´²»¿É
ÓÃ,ÓÚÊDZ»×èÈûÁË.µ±µÚÒ»¸ö½ø³Ì´òÓ¡Íê³ÉÒÔºó,µ÷ÓÃsem_postÐźŵƵÄֵΪ1ÁË,Õâ


Ïà¹ØÎĵµ£º

ÍêÉÆLinuxϵͳ

 
ÍêÉÆLinuxϵͳ
1.¿ª»ú×Ô¶¯¹ÒÔØwindow·ÖÇø
   
fedora10ËäÈ»ÄÜ×Ô¶¯¹ÒÔØ,µ«ÊǹÒÔØµÄ·ÖÇøÓÐʱ»á²»ÈϺº×ÖÎļþ¼Ð
 
 ´ÓÖÕ¶ËÓÃvi»ògedit´ò¿ª/etc/fstab£¬ÔÚÆäÖÐÌí¼Ó£º
 /dev/sda1 /mnt/1 ntfs default 0 0
 ×¢£ºµÚÒ»ÏîÊÇ·ÖÇøÇý¶¯µØÖ·
   ......

linuxÇý¶¯¿ª·¢Ñ§Ï°±Ê¼Ç£¨¶þ£©

                    scull×Ö·ûÇý¶¯Ñ§Ï°±Ê¼Ç
Ŀ¼
1 scullÇý¶¯¼ò½é
2 Ö÷´Î±àºÅ
3 scullÔ´Âë·ÖÎö
-------------------------
|  1 scullÇý¶¯¼ò½é      |
-------------------------
  scullÊÇÒ»¸ö× ......

ÉîÈëdz³öLinuxÉ豸Çý¶¯Ö®×èÈûÓë·Ç×èÈû

×¢: ¸ÃϵÁÐÎÄÕÂ×ªÔØ×Ôarm+linux chinaunix²©¿ÍȦȦÖ÷Ö®²©¿Í——http://blog.chinaunix.net/u/22630 /article_54997.html   ΪÁËÊʺÏÎҵıàÒë»·¾³£¬Ô´´úÂëÓи͝£¬µ«ÊÇÏàÐÅÎÒ¸ü¸ÄºóµÄ´úÂë¸ü¼ÓÊʺÏÏÖÔÚ´ó¶àÊý¶ÁÕßµÄpc»·¾³¡£
×èÈû²Ù×÷ÊÇÖ¸£¬ÔÚÖ´ÐÐÉ豸²Ù×÷ʱ£¬Èô²»ÄÜ»ñµÃ×ÊÔ´£¬Ôò½ø³Ì¹ÒÆðÖ±µ½Âú×ã¿É²Ù×÷µ ......

linux´®¿ÚÓ¦Óÿª·¢

linux´®¿ÚÓ¦Óÿª·¢
2009Äê10ÔÂ20ÈÕ ÐÇÆÚ¶þ 14:16
1¡¢´®¿Ú¸ÅÊö
    Óû§³£¼ûµÄÊý¾ÝͨÐŵĻù±¾·½Ê½ÓÐÁ½ÖÖ£º²¢ÐÐͨÐźʹ®ÐÐͨÐÅ¡£
    ´®ÐÐͨÐÅÊǼÆËã»ú³£ÓõĽӿڣ¬È磺RS-232-C½Ó¿Ú¡£¸Ã±ê×¼¹æ¶¨²ÉÓÃÒ»¸öDB25оÒý½ÅÁ¬½ÓÆ÷»òDB9оÒý½ÅÁ¬½ÓÆ÷¡£Ð¾Æ¬ÄÚ²¿³£¾ßÓÐUART¿ØÖÆÆ÷£¬Æä¿É¹¤×÷ÓÚInterrup ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ