LinuxÖÐRCU»úÖÆµÄÔÀí
ÔÎÄÍøÖ·£ºhttp://group.ednchina.com/1036/21283.aspx
RCU»úÖÆÊÇLinux2.6Ö®ºóÌṩµÄÒ»ÖÖÊý¾ÝÒ»ÖÂÐÔ·ÃÎʵĻúÖÆ£¬´ÓRCU£¨read-copy-update£©µÄÃû³ÆÉÏ¿´£¬ÎÒÃǾÍÄܶÔËûµÄʵÏÖ»úÖÆÓÐÒ»¸ö´ó¸ÅµÄÁ˽⣬ÔÚÐÞ¸ÄÊý¾ÝµÄʱºò£¬Ê×ÏÈÐèÒª¶ÁÈ¡Êý¾Ý£¬È»ºóÉú³ÉÒ»¸ö¸±±¾£¬¶Ô¸±±¾½øÐÐÐ޸ģ¬ÐÞ¸ÄÍê³ÉÖ®ºóÔÙ½«ÀÏÊý¾Ýupdate³ÉеÄÊý¾Ý£¬´ËËùνRCU¡£
ÔÚ²Ù×÷ϵͳÖУ¬Êý¾ÝÒ»ÖÂÐÔ·ÃÎÊÊÇÒ»¸ö·Ç³£ÖØÒªµÄ²¿·Ö£¬Í¨³£ÎÒÃÇ¿ÉÒÔ²ÉÓÃËø»úÖÆÊµÏÖÊý¾ÝµÄÒ»ÖÂÐÔ·ÃÎÊ¡£ÀýÈ磬semaphore¡¢spinlock»úÖÆ£¬ÔÚ·ÃÎʹ²ÏíÊý¾Ýʱ£¬Ê×ÏÈ·ÃÎÊËø×ÊÔ´£¬ÔÚ»ñÈ¡Ëø×ÊÔ´µÄǰÌáϲÅÄÜʵÏÖÊý¾ÝµÄ·ÃÎÊ¡£ÕâÖÖÔÀíºÜ¼òµ¥£¬¸ù±¾µÄ˼Ïë¾ÍÊÇÔÚ·ÃÎÊÁÙ½ç×ÊԴʱ£¬Ê×ÏÈ·ÃÎÊÒ»¸öÈ«¾ÖµÄ±äÁ¿£¨Ëø£©£¬Í¨¹ýÈ«¾Ö±äÁ¿µÄ״̬À´¿ØÖÆÏ̶߳ÔÁÙ½ç×ÊÔ´µÄ·ÃÎÊ¡£µ«ÊÇ£¬ÕâÖÖ˼ÏëÊÇÐèÒªÓ²¼þÖ§³ÖµÄ£¬Ó²¼þÐèÒªÅäºÏʵÏÖÈ«¾Ö±äÁ¿£¨Ëø£©µÄ¶Á-ÐÞ¸Ä-д£¬ÏÖ´úCPU¶¼»áÌṩÕâÑùµÄÔ×Ó»¯Ö¸Áî¡£²ÉÓÃËø»úÖÆÊµÏÖÊý¾Ý·ÃÎʵÄÒ»ÖÂÐÔ´æÔÚÈçÏÂÁ½¸öÎÊÌ⣺
1¡¢ ЧÂÊÎÊÌâ¡£Ëø»úÖÆµÄʵÏÖÐèÒª¶ÔÄÚ´æµÄÔ×Ó»¯·ÃÎÊ£¬ÕâÖÖ·ÃÎʲÙ×÷»áÆÆ»µÁ÷Ë®Ïß²Ù×÷£¬½µµÍÁËÁ÷Ë®ÏßЧÂÊ¡£ÕâÊÇÓ°ÏìÐÔÄܵÄÒ»¸öÒòËØ¡£ÁíÍ⣬ÔÚ²ÉÓöÁÐ´Ëø»úÖÆµÄÇé¿öÏ£¬Ð´ËøÊÇÅÅËûËø£¬ÎÞ·¨ÊµÏÖÐ´ËøÓë¶ÁËøµÄ²¢·¢²Ù×÷£¬ÔÚijЩӦÓÃÏ»ؽµµÍÐÔÄÜ¡£
2¡¢ À©Õ¹ÐÔÎÊÌâ¡£µ±ÏµÍ³ÖÐCPUÊýÁ¿Ôö¶àµÄʱºò£¬²ÉÓÃËø»úÖÆÊµÏÖÊý¾ÝµÄͬ²½·ÃÎÊЧÂÊÆ«µÍ¡£²¢ÇÒËæ×ÅCPUÊýÁ¿µÄÔö¶à£¬Ð§ÂʽµµÍ£¬Óɴ˿ɼûËø»úÖÆÊµÏÖµÄÊý¾ÝÒ»ÖÂÐÔ·ÃÎÊÀ©Õ¹ÐԲ
ΪÁ˽â¾öÉÏÊöÎÊÌ⣬LinuxÖÐÒý½øÁËRCU»úÖÆ¡£¸Ã»úÖÆÔÚ¶àCPUµÄƽ̨ÉϱȽÏÊÊÓ㬶ÔÓÚ¶Á¶àдÉÙµÄÓ¦ÓÃÓÈÆäÊÊÓá£RCUµÄ˼·ʵ¼ÊÉϺܼòµ¥£¬ÏÂÃæ¶ÔÆä½øÐÐÃèÊö£º
´ÓÉÏÊö·ÖÎöÀ´¿´£¬RCU˼ÏëÊDZȽϼòµ¥µÄ£¬ÆäºËÐÄÄÚÈݽô½ôÎ§ÈÆ“дʱ¿½±´”£¬²ÉÓÃRCU»úÖÆ£¬Äܹ»±£Ö¤ÔÚ¶Áд²Ù×÷¹²Ïí×ÊԴʱ£¬»ù±¾²»ÐèÒªÈ¡Ëø²Ù×÷£¬Äܹ»ÔÚÒ»¶¨³Ì¶ÈÉÏÌáÉýÐÔÄÜ¡£µ«ÊǸûúÖÆµÄÓ¦ÓÃÊÇÓÐÌõ¼þµÄ£¬¶ÔÓÚ¶Á¶àдÉÙµÄÓ¦Ó㬻úÖÆµÄ¿ªÏú±È½ÏС£¬ÐÔÄÜ»á´ó·ù¶ÈÌáÉý£¬µ«ÊÇÈç¹ûд²Ù×÷½Ï¶àʱ£¬¿ªÏú½«»áÔö´ó£¬ÐÔÄܲ»Ò»¶¨»áÓÐËùÌáÉý¡£×ÜÌåÀ´Ëµ£¬RCU»úÖÆÊǶÔrw_lockµÄÒ»ÖÖÓÅ»¯¡£
1¡¢ ¶ÔÓÚ¶Á²Ù×÷£¬¿ÉÒÔÖ±½Ó¶Ô¹²Ïí×ÊÔ´½øÐзÃÎÊ£¬µ«ÊÇǰÌáÊÇÐèÒªCPUÖ§³Ö·Ã´æ²Ù×÷µÄÔ×Ó»¯£¬ÏÖ´úCPU¶ÔÕâÒ»µã¶¼×öÁ˱£Ö¤¡£µ«ÊÇRCUµÄ¶Á²Ù×÷ÉÏÏÂÎÄÊDz»¿ÉÇÀÕ¼µÄ£¨ÕâÒ»µãÔÚÏÂÃæ½âÊÍ£©£¬ËùÒÔ¶Á·ÃÎʹ²Ïí×ÊԴʱ¿ÉÒÔ²É
Ïà¹ØÎĵµ£º
1. HCI²ãÐÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI) ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈÐÒé ......
Ò»£ºÇ°ÑÔ
×î½üÔÚÑо¿androidµÄsensor driver£¬Ö÷ÒªÊÇE-compass£¬ÆäÖÐÓõ½ÁËLinux input×Óϵͳ.ÔÚÍøÉÏÒ²¿´Á˺ܶàÕâ·½ÃæµÄ×ÊÁÏ£¬¸Ð¾õ»¹ÊÇÕâÆª·ÖÎöµÄ±È½ÏϸÖÂ͸³¹£¬Òò´Ë×ªÔØÒ»ÏÂÒÔ±ã×Ô¼ºÑ§Ï°£¬Í¬Ê±ºÍ´ó¼Ò·ÖÏí£¡
£¨ÕâÆª²©¿ÍÖ÷ÒªÊÇÒÔ¼üÅÌÇý¶¯ÎªÀýµÄ£¬²»¹ý½²½âµÄÊÇLinux Input Subsystem£¬¿ÉÒÔ×ÐϸµÄÑо¿Ò»Ï£¡£©
¼üÅÌÇý¶¯½«¼ì ......
1. Òý×Ó
int a;
int size = 8;
Èç¹ûÈÃaΪ(size =8)µÄÕûÊý±¶±íʾ³É¶þ½øÖÆÓ¦ÊÇʲôÑù×ÓÄØ£¿ÄǾÍÊÇÈÃÕâ¸öÊý±íʾ³É¶þ½øÖÆÊ±µÄ×îºóÈýλΪ0.
¶øÒª´ïµ½ÕâһĿ±ê£¬Ö»ÒªÏÂÃæÕâ¸öÊýÓëËü½øÐÐÓëÔËËã¾Í¿ÉÒÔÁË:
11111111 11111111 11111111 11111000
¶øÉÏÃæÕâ¸öÊýʵ¼ÊϾÍÊ ......
diffµÄÊä³ö¸ñʽ·ÖΪ´«Í³¸ñʽºÍͳһ¸ñʽ
1)diffµÄ´«Í³¸ñʽÊä³ö.
############################################
cat before.txt
Êä³ö:
This is a line to be deleted
This is a line that will be changed
This is a line that will be unchanged
cat after.txt
Êä³ö:
This is a line that has been changed
Thi ......