²`¤J²z¸Ñ¦}¦æ½sµ{ ( ²Åé ¦r) |
§@ªÌ¡GÁÂÄ_¤Í,¾|¶§ | Ãþ§O¡G1. -> µ{¦¡³]p -> ºî¦X |
ĶªÌ¡G |
¥Xª©ªÀ¡G¹q¤l¤u·~¥Xª©ªÀ | 3dWoo®Ñ¸¹¡G 47141 ¸ß°Ý®ÑÄy½Ð»¡¥X¦¹®Ñ¸¹¡I¡i¯Ê®Ñ¡j NT°â»ù¡G 645 ¤¸ |
¥Xª©¤é¡G7/1/2017 |
¶¼Æ¡G524 |
¥úºÐ¼Æ¡G0 |
|
¯¸ªø±ÀÂË¡G |
¦L¨ê¡G¶Â¥Õ¦L¨ê | »y¨t¡G ( ²Åé ª© ) |
|
¥[¤JÁʪ«¨® ¢x¥[¨ì§Úªº³Ì·R (½Ð¥ýµn¤J·|û) |
ISBN¡G9787121315084 |
§@ªÌ§Ç¡@|¡@ĶªÌ§Ç¡@|¡@«e¨¥¡@|¡@¤º®e²¤¶¡@|¡@¥Ø¿ý¡@|¡@§Ç |
(²Åé®Ñ¤W©Òz¤§¤U¸ü³sµ²¯Ó®É¶O¥\, ®¤¤£¾A¥Î¦b¥xÆW, YŪªÌ»Ýn½Ð¦Û¦æ¹Á¸Õ, ®¤¤£«OÃÒ) |
§@ªÌ§Ç¡G |
ĶªÌ§Ç¡G |
«e¨¥¡G§@ªÌ§Ç
§Ú§Æ±æ¯à°÷»¡¥»®Ñªº½Ï¥Í·½¤_²¢»e©M¥ú©ú¡A¦ý³oµLºÃ¬OÓÁÀ¨¥¡C©M³\¦h»Ýnªø¦~°í«ù§V¤Oªº¨Æ±¡¤@¼Ë¡A¥»®Ñ¸g¹L¤F¤j¶q®À§é¤~±o¥H½Ï¥Í¡C §A¬Ý¡A¤j¬ù10¦~«e¡A¦b¦}µo»â°ìªº¤@Ó¦æ·~±M®a¤p²Õ¬ã°Q·|¤W¡A§Ú«Üºa©¯±o¥H´£°Ý³Ì¦Z¤@Ó°ÝÃD¡C¤@¨Ç°Ñ·|ªº±M®aªø½g¤j½×¦a°Q½×¤F¦}¦æ½sµ{ªº°ªÃø«×¡A©Ò¥H§Ú°Ý¬°¤°¤\¦}¦æ½sµ{¤£·|¦b10©Î20¦~¤º¦¨¬°¥qªÅ¨£ºDªº¨Æ±¡¡C¤j¦h¼Æ¤p²Õ¦¨û¤@ÂI³£¤£³ßÅw³oÓ°ÝÃD¡C¨Æ¹ê¤W¡A²Ä¤@Ó¤p²Õ¦¨û¸Õ¹Ï¥Î¤@Ó²µuªº¦^µª¼Ål¤F¨Æ¡A¦ý§Ú«Ü®e©ö¦a°µ¤F²µuªº¤Ï»é¡CµL©`¡A¥L¹Á¸Õµ¹¥X¤F²Ä¤GÓ²µu¦^µª¡A§Ú¤]Ä~Äò¤Ï»é¡C´X½ü¤§¦Z¡A¥L¤jÁn³Û¥s¡G¡§¹³§A³o¼Ëªº¤HÀ³¸Ó¥ÎÁè¤lºVºVÀY¡I¡¨§Ú¤£¥Ì¥Ü®z¦a¦^µª¹D¡G¡§¨º§A¥in±Æ¶¤¤~¯àºV±o¨ì¡C¡¨ §Ú¤£»{¬°³oºØ¥æ¬y¬O¯S§O¦³±Òµo©Êªº¡A¬Û¤Ï³o®i¥Ü¤F¤@Ó²@µLºÃ°Ýªº¨Æ¹ê¡G³o¦ì¡§·~¤º¡¨±M®a¹ï¤_¦}¦æ½sµ{¤@µL©Òª¾¡C¤£¹L¦b³õªº¨ä¥LÅ¥²³«o»{¬°³o³õ¹ï¸Ü«D±`¦³±Òµo©Ê¡A¤×¨ä¬O¨º¤@¦ì·PÁ§ڴ£¥X³oÓ°ÝÃDªºÅ¥²³¡A¥Lªº²´¨½¬Æ¦Ü§tµÛ²\¤ô¡C¥L¹³¾Ç®{¤@¼Ë¦bSequent pºâ¾÷¨t²Î¤½¥q¾Ç¨ì¤F¦}¦æ½sµ{ªº³Z¬¡A¥¿¦p§Ú´¿¸g©Ò°µªº¨º¼Ë¡C¦Z¨Ó¥L¸õ¼Ñ¥h¤F¥t¤@®a¤½¥q¡A¥Lªº·s¶±¥D¶}©l¯A¨¬¦}¦æ½sµ{¡C¥X¥G¥L·N®Æ¤§¥~¡A¨Æ±¡µo®i±o¦}«D¤@¦|·¶¶¡C¥¿¦p¥L©Ò»¡¡A¡§§Ú¤w¸g¨¬¨¬¸ò¥LÌ»¡¤F¨â¦~¡A¥un§A¥Î¥¿½Tªº¿ìªk¡A³o¦}¤£¬O«ÜÃø¡A¦ý¥Ļ¹¥þ¤£Å¥§Úªº¸Ü¡I¡¨ ²{¦b¡A§ÚÌ«Ü®e©ö±N³oÓ´d¶Ë¬G¨Æ¨½±ªº¹Î¶¤§@¬°¤Ï±±Ð§÷¡C¦ý¬O¦b¥L̪º¬Ýªk¤¤¡A¦}¦æ½sµ{µ¥¤_¥Î§A¦Û¤vªº´¼¤O¶Ë®`¦Û¤v¡C°£«D§A¤F¸Ñ¹ê²{¦}¦æ©Êªº¥¿½T¤èªk¡A§_«h¦b·NÃѨì¹J¨ì³Â·Ð¤§«e¡A§A¶VÁo©ú¡A«õªº§|´N¶V²`¡C¦]¦¹¡A§A¶VÁo©ú¡A¦}¦æ½sµ{¬Ý°_¨Ó´N¶VÃø¡C¤£¶È¦p¦¹¡A¦b³o¥ó¨Æµo¥Í®É¡A·¥¤Ö¦³¤Hª¾¹D¦p¦ó¶i¦æ¦}¦æ½sµ{¡A³o·N¨ýµÛ¤j¦h¼Æ¤Hèè¶}©l¤F¸Ñ¨ì¥L̬°¦Û¤v«õªº¦}¦æ½sµ{§|ªº²`«×¡C §Y¨Ï¦p¦¹¡A·í³oÓ¤H¥Î®C«|ªºÁnµÁ¿z¥Lªº¬G¨Æ¡A²´²\·Æ¹L¥LªºÁyÃe®É¡A§Ú·NÃѨì§Ú¤£±o¤£°µ¤@¨Ç¨Æ¡C¨º´N¬O¼g²´«e³o¥»®Ñ¡A³o¨½±¤£¶È¶È¿@ÁY§Ú¦Û¤v¥|¤À¤§¤@Ó¥@¬öªº¸g¾ú¡AÁÙ¦³¨ä¥L¤H¥[°_¨Ó¼Æ¤£²M´XÓ¥@¬öªº¸g¾ú¡C §Úªº¥À»y¬O^»y¡A^»y¬O§Ú°ß¤@¥i¥HÁnºÙ´x´¤¤Fªº»y¨¥¡C¦ý©¯¹Bªº¬O¡A·PÁ¾|¶§©MÁÂÄ_¤Í©Ò¥I¥Xªº¥¨¤j§V¤O¡A²{¦b¤¤¤åª©Â½Ä¶§Y±N±¥@¡C§Ú§Æ±æ³o¥»®Ñ¤£¶È¥i¥HÀ°§U§A¾Ç²ß§Ú©Òª¾¹Dªºª¾ÃÑ¡A±q¦Ó¤£¦A»Ýn¾á¤ß¦}¦æ½sµ{¡AÁÙ¯à¨Ï§A¯à°÷³Ð«ØÄݤ_¦Û¤vªº¦}¦æ½sµ{·sµo²{¡I
Paul E. McKenney ±ÀÂ˧Ç
ŪµÛ¡m²`¤J²z¸Ñ¦}¦æ½sµ{¡nªº¼Ë³¹¡A§Úªº¸£®ü¨½¤£Â_¦a¯B²{¥X9¦~«eªº¤@¹õ¹õ¡C§Ú¦bºô¤W´M§ä¾Þ§@¨t²Îªº§Ó¦P¹D¦XªÌ¡A¬Ý¨ì¤@Óµ|¦¬±M·~¤¤±M²¦·~ªÌªº¦ÛÂË«H¡A¨ä®É¥L¤w¨ã¦³10¦~ªºIT¦æ·~¤u§@¸gÅç¡A±q¨Æ¹L¤j¶q¤â¾÷¡B³q«H¦æ·~³n¥ó¬ãµo¤u§@¡A¾á¥ô¹L¶µ¥ØÁ`ºÊ¬ãµoºÞ²z¤u§@¡A¦b¹q«HÀ³¥Î¶}µo¤è±¤w¸g°µ±o¤ñ¸û¦¨¥\¡C¦ý¥L¹ï¾Þ§@¨t²Î¦³¿@«pªº¿³½ì¡B°õµÛªº°l¨D¡A©ñ±ó¤F¦b°ª¼hÀ³¥Î³n¥ó¤è±ªº¬J¦³Àu¶Õ¡A±Mª`¤_¾Þ§@¨t²Îªº¬ã¨s¡CÂ÷¾¦b®a¡A§Q¥Î¥b¦~®É¶¡¶}µo¥X¤@Ó´O¤J¦¡¾Þ§@¨t²Î¼Ò«¬¡Ap¹º¨â¦~¤º¬ãµo¤@´Ú¦Û¬ã¾Þ§@¨t²Î¡C¦³·P¤_¥Lªº°õµÛ©M¼ö·R¡A§Ú¦V¤½¥qª§¨ú¯}®æ¿ý¨ú¥L¡C§Ú»{¬°°µ¤@Ó¾Þ§@¨t²Î¤£Ãø¡A¦ý°µ¥ÍºAÃø¡A°µ°Ó·~¦¨¥\Ãø¡A«Øij¥L²`¤J¾Ç²ß¶}·½Linuxªº§Þ³N¡A¯¸¨ì¥¨¤HªÓ»H¤W¡A¦Aµ²¦X¾Þ§@¨t²Î¹Î¶¤ªº°Ó·~¼Ò¦¡±´¯Á¡Aª§¨ú§â¾Þ§@¨t²Î°µ¦¨¥\¡C¤_¬O¡A¥L¦pè¦p¾K¦a¬ã¨sLinux¤º®Ö¡A¦b¤@¦~®É¶¡¨½¡A¨C¤Ñ±ß¤W°í«ùªá¤TÓ¤p®É¥H¤Wªº®É¶¡à¹¬ã¡m²`¤J²z¸ÑLinux¤º®Ö¡n³o¥»®Ñ¡AÁÙ±N¦Û¤vªºÅª®Ñ¤ß±oµ§°O¦@¨É¨ì¹Î¶¤½×¾Â¤W¡A¦}¹ï¶}·½¤º®Ö¶i¦æª`¸Ñ¡A¤À¨É¨ì¶}·½½×¾Â¤W¡C 2008¦~¥¿¬O¦h®Ö¬[ºc§Ö³tµo®i¤§®É¡A¾Þ§@¨t²Îªº¤ä«ù°Ñ®t¤£»ô¡AÅX°Ê¡BÀ³¥Î¶}µo¼Ò¦¡¤£¦¨¼ô¡A¬J¦³³æºA³æ®Ö³æ¶iµ{ªº·~°ÈÀ³¥Î¦p¦ó¶i¦æ«ºc©Mºt¶i¡A¤è®×³]p¡B¶}µoÁp½Õ¡B¬G»Ù±Æ¬d¡B¨t²Î½ÕÀu¤S·|¹J¨ì«Ü¦h´_Âø©M´Æ¤âªº°ÝÃD¡A¤¤¿³³q°T¾Þ§@¨t²Î¹Î¶¤»Ýn¤ä¼µ¤½¥q©Ò¦³²£«~¡B¦UºØCPU¬[ºc¡B¦UºØ´_Âø·~°È³õ´º¡A¹Î¶¤±Á{µÛ«e©Ò¥¼¦³ªº§Þ³N©M¶i«×À£¤O¡C¹Î¶¤¦¨û°£¤F¦b¬ãµo¤@½u³q¹L¤£Â_¹ê½î¶i¦æ³Q°Ê¿n²Ö©M´£¤É¥~¡A¤]¥[±j¤F¥D°Êªº²z½×ª¾ÃÑ´£¤É¡A¾\Ū¡m²`¤J²z¸Ñ¦}¦æ½sµ{¡n´N¬O¨ä¤¤¤§¤@¡C¥O§Ú¦L¶H«D±`²`¨èªº¬O¡A¦h®Ö¬G»Ù©¹©¹¤ñ¸ûÀH¾÷©M´_Âø¡AÃø¥H´_²{©M²z¸Ñ¡A¦ý¥HÁÂÄ_¤Í¬°¥Nªíªº¹Î¶¤¦¨û©¹©¹¥i¥H³q¹L¾\Ū·~°È¡BÅX°Ê¡B¤º®Ö¥N½X´N©w¦ì¨ì¬G»Ù®Ú·½¡A¾ã²z¥X¬G»ÙÅÞ¿è¡A§Ú»{¬°³o»P¥L̪º¨t²Î²z½×¤ô¥´£¤É¬O¤À¤£¶}ªº¡C«D±`ªY¼¢ªº¬O¡A§Ú̦¨¥\¦a¸Ñ¨M¤F³oÓ¹L´ç®É´Á¯F²{ªº½Ñ¦p¦h®Ö¤º¦s§Ç¬ÛÃö¬G»Ù¡A§Q¥ÎµLÂê¦}¦æ½sµ{Àu¤Æ¤F¨t²Î©Ê¯à¡C®É¦Ü¤µ¤é¡A§Ú̹椤w¸g±q30¤Hµo®i¨ì¼Æ¦Ê¤H¡A´O¤J¦¡¾Þ§@¨t²Î¤w¥þ±À³¥Î¤_¤½¥q©Ò¦³²£«~¡A¦b¥þ²yéw°Ó¥Î¡A¦}¥BÂX®iÀ³¥Î¨ì¹q¤O¡BÅK¸ô¡B¨T¨®µ¥»â°ì¡A2016¦~Àò±o¤F²Ä¥|©¡¤¤°ê¤u·~¤j¼ú¡C ¥t¤@¤è±¡A¯¸¦b§Þ³Nªº¨¤«×¨Ó¬Ý¡A¦bpºâ¾÷»â°ì¡A¦}¦æ½sµ{ªº§xÃø¬O²³©Ò©Pª¾ªº¡C ¦³4¡B5¦~½sµ{¸gÅ窺ŪªÌ¡A¥i¯à©Î¦h©Î¤Ö¹J¨ì¹L¦}¦æ½sµ{ªº°ÝÃD¡A³ÌµÛ¦Wªº°ÝÃD¥i¯à´N¬O¦ºÂê¡CŪªÌ»Ýn´x´¤½Õ¸Õ¦ºÂê°ÝÃDªº§Þ¥©¡A¥H¤ÎÁקK¦ºÂê°ÝÃDªº½sµ{§Þ³N¡C ³ßÅw²`¤J«ä¦ÒªºÅªªÌ¡A¦b²z¸Ñ¦}¸Ñ¨M¦ºÂê°ÝÃD¤§¦Z¡A¥i¯àÁÙ·|¾\Ū¦}¦æ½sµ{¤è±ªº®ÑÄy¡A¶i¤@¨B±µÄ²¨ì¬¡Âê¡BÄȾjµ¥§ó¦³½ìªº¦}¦æ½sµ{°ÝÃD¡C¤¤¿³³q°T¾Þ§@¨t²Î¹Î¶¤ªº¦P¨Æ¡A´N´¿¸g¦b¶}·½µêÀÀ¤Æ³n¥ó¤¤¹J¨ì¹LÃþ¦üªº°ÝÃD¡GµêÀÀ¾÷®e¾¹¦b¤¬¥¸Âꪺ«OÅ@¤U¡A½ü¸ß¨t²Îª¬ºA¦}µ¥«Ýª¬ºAÅܤơC³o¼Ëªº½ü¸ß¾Þ§@³y¦¨¤F¶iµ{½Õ«×¤£¤Î®É¡A¨t²Îª¬ºA¿ð¿ð¤£¯àÅܤơC³o¬O¤@Ө嫬ªº¬¡Âê°ÝÃD¡C¦b¦h®Ö¨t²Î¶V¨Ó¶V´¶¤Îªº¤µ¤Ñ¡AÃþ¦üªº¬¡Âê°ÝÃD§ó®e©ö¥X²{¡C¸Ñ¨M³oÃþ°ÝÃD¡A»Ýn¸gÅçÂ×´Iªº¤uµ{®v¡AɧU¦hºØ½Õ¸Õ¤u¨ã¡Aªá¶O¤£¤Öªº®É¶¡¡C ¦ý¬O¡A¦}¦æ½sµ{¶È¶È»PÂê¬ÛÃö¶Ü¡H ¦b¼¯º¸©w«ß©|¥¼¥¢®Ä®É¡A¦}¦æ½sµ{½T¹ê¥Dn»PÂêºò±K¬ÛÃö¡C¦ý¬O¡A§Ú̬ݬÝÀNª÷¦VIT¤uµ{®v©Ò´£¥Xªº¨âÓÃøÃD¡G 1¡D¦³ªº¥ú³t¡F 2¡Dª«½èªºì¤l¯S©Ê¡C ³o¨âÓÃøÃD³Ì²×·|±NCPUÀW²vªº²z½×¤W¨î¦b10GHz¥H¤º¡A¤£¥iÁקK¦a¨Ï¼¯º¸©w«ß¥¢®Ä¡CnÄ~Äò´£¤Éµw¥ó©Ê¯à¡A»ÝnɧU¤_¦h®ÖÂX®i¡C n¥R¤Àµo´§¦h®Ö¨t²Îªº©Ê¯à¡A¥²¶·´£¤É¦}¦æ³n¥óªºÂX®i©Ê¡C¤]´N¬O»¡¡A¦}¦æ³n¥ó»ÝnºÉ¶q´î¤ÖÂê¨R¬ð¡AÁקK¥Ñ¤_ÂêÄvª§¦Ó¤Þ°_©Ê¯à«æ¼@¤U°¡C³o¤£¬O¤@¥ó²³æªº¨Æ±¡¡I§Ú̪¾¹D¡ALinux¾Þ§@¨t²Î¦b±µªñ20¦~ªº®ÉÔ¤º¡A¤@ª½¨ü¨ì¤j¤º®ÖÂꪺ§xÂZ¡C¬°¤F¹ý©³©ß±ó¤j¤º®ÖÂê¡A¶}·½ªÀ°Ïªñ´X¦~¤º°µ¥X¤FÁ}¨¯ªº§V¤O¡A¤~¹ê²{¤F³oӥؼСC§Y¨Ï¦p¦¹¡ALinux¤º®Ö¤´µM¤j¶q¨Ï¥Î¤£¦PºØÃþªºÂê¡A¦}¥B¤£¥i¯à§¹¥þ©ñ±óÂꪺ¨Ï¥Î¡C ¤]³\§A·|»¡¡A¦b¦h®Ö¨t²Î¤¤¡A¦³¤@ºØ²³æªºÁקKÂꪺ¤èªk¡A´N¬Oì¤lÅܶq¡C¦b¬Y¨Ç¬[ºc¤¤¡Aì¤lÅܶq¬O¥Ñ³æ±ø«ü¥O¹ê²{ªº¡A©Ê¯à¡§·Q¥²¡¨¤£®t¡A¨Ï¥Î¤èªk¤]²³æ¡C´¿¸g¦³¤@¦ì¨ã¦³¤Q¦h¦~½sµ{¸gÅ窺¤uµ{®v¤]ªí¹F¹LÃþ¦üªºÆ[ÂI¡C¦b¦¹¡A¦³¨âÓ°ÝÃD»Ýn¦^µª¡C 1¡D³o¼Ëªºì¤l¾Þ§@«ü¥O¡A¨ä©Ê¯à¯uªº¤£®t¡H¥¦ªº°õ¦æ©P´Á¬O§_¥i¯à¹F¨ì¤W¤dÓ®ÉÄÁ©P´Á¡H 2¡D¹ï¤_¦hÓ¬Û¤¬¤§¶¡¦³ÅÞ¿èÃöÁpªºÅܶq¡Aì¤l¾Þ§@¬O§_º¡¨¬n¨D¡H ¹ê»Ú¤W¡A¦h®Ö¨t²Î¤¤ªº¦}¦æ³n¥ó¡A°£¤F±`¨£ªºÂꤧ¥~¡AÁÙ»Ýn¨Ï¥Î«_ÀI«ü°w¡BRCU¡B¤º¦s«Ì»Ù³o¼Ëªº«¶q¯Å¦}¦æ½sµ{¤u¨ã¡C³o¨Ç½sµ{¤u¨ã³£Äݤ_¡§µLÂê½sµ{¡¨ªºSÃ¥¡C §Y¨Ï¦bLinux¤º®Ö¶}·½ªÀ°Ï¤u§@10¦~¥H¤Wªº¸ê²`¤uµ{®v¡A¤]¤£¤@©w¯à¯u¥¿ÆF¬¡¦Û¦p¦a¨Ï¥ÎRCU¡B¤º¦s«Ì»Ù¨Ó¶i¦æ¦}¦æ½sµ{¡C¦]¦¹¡A¯u¥¿¤F¸Ñ¦}¦æ½sµ{ªºÅªªÌ¡AÃø§K¦b±¹ï¦}¦æ½sµ{ÃøÃD®É¡A¦³¤@ºØ¡§¼¾Ã̪ø¹Ä®§¡¨ªº·Pı¡C µM¦Ó¡A§Ú̪¾¹D¡A¦³«Ü¦h«nªºÀ³¥Î¨Ì¿à¤_¦}¦æ¡X¡X¹Ï§Î´è¬V¡B±K½X¯}¸Ñ¡B¹Ï¹³±½´y¡Bª«²z»P¥Íª«¹Lµ{¼ÒÀÀµ¥¡C¦³¤@Ó·¥ºÝªº¨Ò¤l¡A¦bÃÒ¨é¥æ©ö©Ò¡A¬°¤FÁקKªø¶ZÂ÷¶Ç¿é¤Þ°_ªº³q«H©µ¿ð¡]²z½×¤W¡A¥ú§ô¶¦a²y¤@©P»Ýn¤j·§130ms¡^¡A»Ýn±N¤ÀªRÃÒ¨é¥æ©öªºpºâ¾÷©ñ¨ì§ó±µªñÃÒ¨é¥æ©öªº¦a¤è¡A¦}¥BÀ£º^¥Xpºâ¾÷ªº©Ò¦³©Ê¯à¡C³o¼Ë¡A¤~¯à«OÃÒ¹F¦¨¦³§QªºÃÒ¨é¥æ©ö¡C¥i¥H²@¤£¦j±i¦a»¡¡A¹ï³n¥ó©Ê¯à¦³V¨è»Ý¨Dªº³n¥ó¤uµ{®v©M¤j«¬³n¥ó¶}µo¥ø·~¡A³£»Ýn¯u¥¿´x´¤¦}¦æ½sµ{ªºÃÀ³N¡A¯S§O¬O¡§µLÂê½sµ{¡¨ªºÃÀ³N¡C¤@¥¹¯u¥¿´x´¤¤F¡A¥¦´N·|¬°§A±a¨Ó·N·Q¤£¨ìªº©Ê¯à´£¤É¡C´¿¸g¦³¤@¦ìµÛ¦W¥ø·~ªº°ª¯Å±M®a¡A¦bÀ³¥Î¤F¥»®Ñ©ÒzªºRCU¦Z¡A³n¥ó©Ê¯à´£¤É¤F¤j¬ù10¿¡C ¥»®Ñ¥¿¬O³o¼Ë¤@¥»²`¤JÁ¿¸Ñ¦h®Ö¦}¦æ½sµ{¡A¯S§O¬OµLÂê½sµ{ªº¦n®Ñ¡C º¥ý¡A¥»®Ñ§@ªÌPaul¨ã¦³40¦~³n¥ó½sµ{¾·~¥Í²P¡A¥L¤j³¡¤Àªº¤u§@³£»P¦}¦æ½sµ{¬ÛÃö¡C§Y¨Ï¦b»â¾ÉIBM Linux¤¤¤ß®É¡A¥L¤´µM°í«ù¨C¤Ñ½sµ{¡A¬O¤@¦W¯u¥¿ªº¡§¤u¦K¡¨¡C¦P®É¡A§@ªÌ¤]¬OLinux¶}·½ªÀ°ÏRCU¼Ò¶ôªº»â¾ÉªÌ©MºûÅ@ªÌ¡C»{¯u¾\Ū¥»®Ñ¦Z¡A¤£±o¤£´Ü¨Ø¤_§@ªÌ¦b¦}¦æ½sµ{¤è±ªº¯uª¾¨`¨£©M¹ê½î¯à¤O¡C¨Ò¦p§@ªÌ¿Ë¦Û½s¼g¤F¤@Ó³n¥ó¥Î¨Ò¡A¨Ó¦Ò¹îCPU®Ö¤§¶¡ì¤l¾Þ§@©MÂꪺ©Ê¯à¡A±o¥X¤@Óµ²½×¡Aì¤l¾Þ§@©MÂê¥i¯à®ø¯Ó¶W¹L1000ÓCPU®ÉÄÁ©P´Á¡F§@ªÌ¤]½s¼g¹L¥t¥~¤@ÓÃö¤_¥þ§½Åܶqªº¥Î¨Ò¡A¨ä¤¤¤@ÓCPU®Ö»¼¼W¾Þ§@¤@Ó¥þ§½Åܶq¡A¦P®É¦b¤£¦PªºCPU®Ö¤WÆ[¹î©ÒŪ¨ìªº¥þ§½ÅܶqÈ¡C³oӥΨҦVŪªÌ®i¥Ü¤F¦h®Ö¨t²Î¥O¤HÅå©_ªº¡B¤Ïª½Ä±ªº®ÄªG¡F§@ªÌ¹ï¤º¦s«Ì»ÙªºÁ¿¸Ñ¡A¯S§O¬O¤º¦s«Ì»Ù¶Ç»¼©ÊªºÁ¿¸Ñ¡A¤Q¤À²`¤J¡C³o¨Ç²`¤Jªº¤º®e¡AÃø±o¤@¨£¡A«D¤j®v¤£¯à¬°¡C ¨ä¦¸¡A³o¥»®Ñ¤]±o¨ìLinux¤º®ÖªÀ°Ï©MÀ³¥Î³n¥ó±M®aªº¤@P±ÀÂË¡C³o¨Ç±ÀÂ˪̬J¥]¬ALinuxªÀ°Ï¤j¦W¹©¹©ªºIngo Molnar¡BRusty Russel¡BGreg Kroah-Hartman¡BMaged M.Micheal¡A¤]¥]¬A°ê¤º¬¡ÅD¤_ªÀ°ÏªºÃe°V½U¡BShawn Guoµ¥¶}·½°^ÄmªÌ¡AÁÙ¥]¬ALinaro¶}·½²Õ´ªº»â¾É©M¸ê²`¤uµ{®v¡A¥H¤Î¦bBAT¤u§@¦h¦~ªº°ª¯ÅÀ³¥Î³n¥ó±M®a¡C ²Ä¤T¡A³o¥»®Ñªº¤º®e¤ñ¸û¥þ±¡C°£¤F¤¶²Ð±`¨£ªºÂê¥H¥~¡AÁÙ«ÂI¤¶²Ð¤FRCUªº¨Ï¥Î¤Î¨äì²z¡A¥H¤Î¹ê²{RCUªº°ò¦¡G¤º¦s«Ì»Ù¡C¥»®Ñ³Ì¦ZÁÙ¤¶²Ð¤F¦}¦æ³n¥óªºÅçÃÒ¡A¥H¤Î¦}¦æ¹ê®Épºâµ¥¤º®e¡C¹ê»Ú¤W¡A¨ä¤¤¨C¤@³¡¤À³£¬O¦}¦æ½sµ{ªºÄ_ÂáC¥Ñ¤_½g´T©MÃø«×ªºì¦]¡A§@ªÌ¦b·í«eª©¥»¤¤¡A±NRCU³¡¤À§@¤F¤j´TÀ£ÁY¡C¹ïRCU·P¿³½ìªºÅªªÌ¥i¥H¾\Ū¦´Á쪩µÛ§@¡C§Y¨Ï¦p¦¹¡A¥»®Ñ¹ïRCUªºÁ¿¸Ñ¤]«D±`²`¤J¡C¹ï¤_¦}¦æ³n¥óªºÅçÃÒ¡A§@ªÌ´£¥X¤F¤£¤Ö¿W¯SªºÆ[ÂI¡A³o¨ÇÆ[ÂI©M§@ªÌ¦h¦~ªº½sµ{¸gÅ箧®§¬ÛÃö¡A»P±`¨£ªº²z½×µÛ§@¬Û¤ñ¡A¦³¤@©wªº·s·N¡C§Î¦¡ÅçÃÒ³¡¤À¡A§@ªÌ¥H¹ê»Úªº¨Ò¤l¡A¤@¨B¤@¨BÁ¿zÅçÃÒ¹Lµ{¡A«Ü©úÅã¡A§@ªÌ¿Ë¦Û°Ê¤â°µ¹L³oºØÅçÃÒ¡C¦}¦æ¹ê®Épºâ³¡¤À¡A¬O§@ªÌ·s¼Wªº¤º®e¡A§O¨ã¤@®æ¡AȱoŪªÌ²ÓŪ¡C¤º¦s«Ì»Ù³¡¤À¡A¬O¥»®Ñ¤@ÓÃøÂI¡AɧU¤_§@ªÌ¦b³o¤è±ªº¥\¤O¡A»ÝnŪªÌ¤Ï´_¾\Ū¡A¤~¯à¯u¥¿²z¸Ñ¡C ²Ä¥|¡A³o¥»®ÑÁ¿¸Ñ±o«Ü²`¤J¡C¦³¨Ç»y¥y¡A»ÝnŪªÌ¤Ï´_µZ¿i¡B±ÀºV¡A¬Æ¦Ü»Ýn¦h¦¸³qŪ¥»®Ñ¤~¯à»â·|§@ªÌªº·N«ä¡C¤]³\¡A¸g¨å®ÑÄyªº¾\Ū¤èªk§¡¬O¦p¦¹¡Cèè¶}©l±µÄ²Linux¤º®ÖªºÅªªÌ¡A¤£¤Ó·|³ßÅw¾\Ū¡m²`¤J²z¸ÑLinux¤º®Ö¡n¤@®Ñ¡Aı±o³o¥»®Ñ¤£©ö²z¸Ñ¡C¦ý¬O¡A¦pªG§Aº@·Nªá¤@¦~®É¶¡¡A±N³o¥»®Ñ¤Ï´_¾\Ū¤T¹M¡A«h·|¦³¤@ºØ§O¼Ëªº¤ß±¡¡C¥»®Ñ¤]¬O¦p¦¹¡A«ØijŪªÌ¦bªì¦¸¾\Ū®É¡A¤£n»´©ö©ñ±ó¡C¥»®Ñ¹ê¬°¦}¦æ½sµ{¤è±¤£¥i¦h±oªº¦n®Ñ¡CÁ|¨âÓ¨Ò¤l¡G²Ä¤@¡A5.2.2¸`¤¤¦³¤@¥yì¤å¬O¡§One way to provide per-thread variables is to allocate an array with one element perthread (presumably cache aligned and padded to avoid false sharing).¡¨¡CĶªÌ±N¨ä½Ķ¬°¡§¤@ºØ¹ê²{¨C½uµ{Åܶqªº¤èªk¬O¤À°t¤@ӼƲաA¼Æ²Õ¨CÓ¤¸¯À¹ïÀ³¤@Ó½uµ{¡]°²³]¤w¸g¹ï»ô¦}¥B¶ñ¥R¹L¤F¡A³o¼Ë¥i¥H¨¾¤î¦@¨É¥X²{¡§°²¦@¨É¡¨¡^¡¨¡C²Ä¤@¦¸¾\Ū¥»®Ñ¡A¥i¯à·|¤£²z¸Ñ¬A¸¹¤¤¨º¥y¸Ü¡A¦³¤@ºØ¤ª¨½Ãú¨½ªº·Pı¡Cn¯u¥¿²z¸Ñ³o¥y¸Ü¡A»ÝnŪªÌ¥J²Ó¾\Ū¥»®Ñ¦Z±Ãö¤_MESI®ø®§¨óij³¡¤À¡A°Ñ¾\§ó¦h°Ñ¦Ò¸ê®Æ¡Cn²z¸Ñ¥»¥y¤¤¡§¹ï»ô¡¨©M¡§¶ñ¥R¡¨¨âÓµü¡A¤]»Ýn²`«pªº¤º®Ö¥\©³¡C²Ä¤G¡A14.2.10.2¸`¡A¡§¤@ÓLOCK¾Þ§@¥R·í¤F¤@Ó³æ¤è±«Ì»Ùªº¨¤¦â¡C¥¦½T«O¡G¹ï¤_¨t²Î¤¤¨ä¥L²Õ¥óªº¨¤«×¨Ó»¡¡A©Ò¦³Âê¾Þ§@¦Z±ªº¤º¦s¾Þ§@¬Ý°_¨Óµo¥Í¦bÂê¾Þ§@¤§¦Z¡CLOCK¾Þ§@¤§«eªº¤º¦s¾Þ§@¥i¯àµo¥Í¦b¥¦§¹¦¨¤§¦Z¡C¡¨³o¥y¸ÜŪ°_¨Ó¤]¤ñ¸û¶¡AÃø¤_²z¸Ñ¡A¦ü¥G¤]¬Û¤¬¥Ù¬Þ¡C¹ê»Ú¤W¡AŪªÌ»ÝnµZ¿i¡§¬Ý°_¨Ó¡¨³oÓµü¡A¥¦ªí¥Ü¨ä¥L®Ö¬Ý¨ì¤º¦s¾Þ§@ªº¶¶§Ç¡A¦}¤£¥Nªí¤º¦s¾Þ§@ªº§¹¦¨®É¾÷¡C Á`¤§¡A¦pªG§A¹ï¦}¦æ½sµ{©ÎªÌ¾Þ§@¨t²Î¤º®Ö¦³¿³½ì¡A©ÎªÌ»Ýn¹ï¶µ¥Ø¶i¦æ²`«×©Ê¯àÀu¤Æ¡A§Ú±j¯P±ÀÂ˳o¥»¦}¦æ½sµ{ªº¸g¨å¦n®Ñ¡I
¤¤¿³³q°T¾Þ§@¨t²Î²£«~³¡ ÄÁ½ÃªF
ĶªÌ§Ç1
§Æ±æ³o¥»µÛ§@¯à°÷¦¨¬°¸g¨å¡I 20¦~«e¡A·í§Ú¥¿¦¡¦¨¬°¤@¦W³n¥ó¤uµ{®vªº®ÉÔ¡A´N¦³¤@Ó¹Ú·Q¡G¶}µo¤@´Ú¾Þ§@¨t²Î¡C¨º®ÉÔ¡AÁöµMª¾¹DLinuxªº¦s¦b¡A¦ý¬O¹ê¦b§ä¤£¨ì¤@»O¥i¥H¥¿±`¦w¸Ë¨Ï¥ÎLinuxªºPC¡C¦]¦¹¥u¯à¾\Ū¬ÛÃöªº·½½X¤ÀªR®ÑÄy¦Ó¤£¯à°Ê¤â¹ê½î¡C §Ú¦Ü¤µ¤´µM²M·¡°O±o¡G¤j¬ù10¦~«e¡A¤¤¿³³q°T¾Þ§@¨t²Î¹Î¶¤ªºÄÁ½ÃªF³¡ªø¡A¥i¯à³Q§Ú¹ï¾Þ§@¨t²Îªº¼ö±¡©Ò·P°Ê¡A¤£ÅU§Ú¨S¦³¤W¹L¤j¾Çªº¨Æ¹ê¡A«_µÛ·ÀI±N§Ú©Û¸u¨ì¤¤¿³³q°T¦¨³£¬ã¨s©Ò¡C±¹ï100¦hºØ«¬¸¹ªº³æªO¡A§Ú¬J¿³¾Ä¤S´q®£¡C³o¨Ç³æªO¯A¤ÎARM¡BX86¡BPowerPC¡BMIPS¡BSH¡BSparcµ¥¤£¦PªºCPU¬[ºc¡C±q¦¹¡A§Ú¶}©l¤F¿E°Ê¤H¤ß¦Ó¦³½ìªº¤º®Ö¤§®È¡C ¦b¤§¦Zªº6¦~¤¤¡A§Ú¹ï·ÓLinux¤º®Ö·½½X¡A®Ú¾Ú¡m²`¤J²z¸ÑLinux¤º®Ö¡n¡B¡m²`¤J²z¸ÑLinuxºôµ¸¤º¹õ¡n¡B¡m²`¤J²z¸ÑLinuxµêÀÀ¤º¦sºÞ²z¡n¡A¥H¤Î¨ä¥L¤@¨ÇLinux¤º®Ö¤å¥ó¨t²Î¡Bºôµ¸¨óij´Ì¤è±ªº®ÑÄy¡A°µ¤F2200¶¡B87¸U¦rªº¤º®Ö¾Ç²ßµ§°O¡A¦P®É±N¬ÛÀ³ªº·½½Xª`ÄÀ¤½¥¬¨ìºôµ¸¤¤¨Ñ¦Û¥Ñ¤U¸ü¡C µM¦Ó¡A³o6¦~¦b¬ÝLinux¤º®Ö¥N½Xªº¹Lµ{¤¤¡A¥H¤Î¦b¤uµ{¹ê½î¤¤¡AÁ`¦³¤@Ó«ÕÆF¯ëªº³±¼v¥X²{¦b§Úªº¸£®ü¤¤¡G¤°¤\¬O¤º¦s«Ì»Ù¡H2011¦~¡A§Ú¬Ý¹L¤º®Ö·½½X¥Ø¿ý¤¤ªº¤åÀÉ¥H¦Z¡A²×¤_¸Ñ¨M¤F¼Ð·Ç¤º®Ö©M¤u¨ãÃì¤@ÓÃö¤_¤º¦s«Ì»Ùªº¬G»Ù¡Cn´_²{³oÓ¬G»Ù¡A¶µ¥Ø¦P¨Æ»Ýn¦b¾ã¾ã¤@өж¡¨½±Â\º¡³æªO©MªA°È¾¹¡A¤~¯à·f«Ø¤@®M´_²{Àô¹Ò¡A¦}¥B»Ýn¥Î¦h®M³o¼ËªºÀô¹Ò¡Aªá¶O2Ó¤ë®É¶¡¤~¯à´_²{¤@¦¸¬ÛÃö¬G»Ù¡C§Y¨Ï¦b¸Ñ¨M¤F¬ÛÃö¬G»Ù¥H¦Z¡A§Ú¤´µMı±o¦Û¤v¹ï¤º¦s«Ì»Ù²z¸Ñ±o¤£²`¨è¡C¦]¬°¤º®Ö·½½X¥Ø¿ý¤Uªº¤åÀÉ¡A¹ï¤º¦s«Ì»Ù´yz±o¤´µM»y²j¤£¸Ô¡C¨ºÓ«ÕÆF¤´µM¦b¸£®ü¤¤½L±Û¡G¨ì©³¤°¤\¤~¬O¤º¦s«Ì»Ù¡H ª½¨ì¦³¤@¤Ñ¡A§Ú¦b¿ì¤½«Ç®Ì±yªº®ÉÔ¡A¬ðµM¦b¾|¶§ªº¿ì¤½®à¤Wµo²{¤@¥»¯S§Oªº®Ñ¡X¡X¡mIs Parallel Programming Hard, And, If So, What Can You Do About It?¡n¡C»¡¥¦¯S§O¡A¬O¦]¬°¥¦¬O¥´¦L¥X¨Óªº¡C·í§Ú½¬Ý¤F¥Ø¿ý¬Ý¨ì¨½±¥]§t¤º¦s«Ì»Ù©MRCUªº®ÉÔ¡A¥ß§Y©ú¥Õ³o´N¬O§Ú´X¦~¨ÓWW°l´M¦Ó¥¼±oªº®Ñ¡I¦}¥B¡A³o¥»®Ñ¨½±ªá¤F¿@«ªºµ§¾¥¨ÓÁ¿z³o¨âÓ¥DÃD¡CÁÙ¦³¤ñ³o§ó¥O¤H°ª¿³ªº¨Æ±¡¶Ü¡H Áo©úªºÅªªÌ¤@©wª¾¹D±µ¤U¨Óµo¥Í¤F¤°¤\¨Æ±¡¡C§A²q±o¨S¿ù¡A§Ú¹ª°Ê¾|¶§¤@°_½Ķ³o¥»®Ñ¡A·í®Éªº¥Øªº¯Âºé¬O¬°¤F¾Ç²ß¡A¦}¥B¤À¨É¨ìºôµ¸¤¤¡C¦b¦¹¡A§Ú¤£±o¤£¦V¾|¶§¹Dºp¡G¬°¤FÅý§A°í«ù¤U¥h¡A§Ú»¡¹L¤@¨Ç¤£¯d±¡±ªº¸Ü¡C³o¨Ç¸Ü¤£¹L¬O¤ªªùÁI©v´Î³Ü¤§ªk¦Ó¤w¡C¦pªG§A¦´N§Ñ°O³o¨Ç¸Ü¡A¨º´NÁ¤ÑÁ¦a¤F¡I ¬°¤F½Ķ¦n³o¥»®Ñ¡A§Ú¯S·N¥h¸É¤F¤@¤U^»y¤è±ªº½Ò¡C³Ì²×¡A³o¥»®Ñ¯à°÷»PŪªÌ¨£±¡A¤j·§¦³¥H¤U´XÓì¦]¡C 1¡D¾|¶§©M§Ú³£¦³¤@ÂILinux¤º®Ö©M¦}¦æ½sµ{°ò¦¡C 2¡D§Ú̪º¼ö±¡©M¦³ÂI¦Û¤jªº¦Û«H¡C 3¡D^»y¤£ºâ¤ÓÃø¾Ç¡C 4¡D®a¤Hªº®e§Ô¡C¤]³\¬O§Ú±`±`©À¥o¡G½Ķ¦n³o¥»®Ñ¡A¤u¸ê¥i¯àº¦¤@¤jºI¡C 5¡D¦³¤@¨Çȱo·P®¦ªººô¤Í¡A¥LÌ·þ«P§ÚÌ°µ¦n½Ķ¤u§@¡C ¦b²×¤_§¹¾ã¦a½Ķ§¹¥»®Ñ¤§»Ú¡A§Ú¾ã²z¥X´X±ø²z¥Ñ¡A³o¨Ç²z¥Ñ¨Ï±o¥»®Ñ¦³¦¨¬°¸g¨åªº¼ç½è¡C 1¡D²`¨è¬O¥»®Ñªº¯SÂI¡C¥»®Ñ±qÀNª÷´£¥Xªº¨âÓ²z½×ª«²z¨î¬°°_ÂI¡A¯¸¦bµw¥ó¦Ó¤£¬O³n¥óªº¨¤«×¡AÄÄz¦}¦æ½sµ{ªºÃøÃD¡CÅý¤H¦³¤@ºØ¡§ª¾¨äµM¦}¥Bª¾¨ä©Ò¥HµM¡¨ªº·Pı¡C®Ñ¤¤¤£¤ÖÆ[ÂI¡A¦p¤º¦s«Ì»Ùªº¶Ç»¼©Ê¡A¬O¸ê²`¤uµ{®v¤]¤£®e©ö²z¸Ñªº¡C¦ý¬O¡A¬Ý¹L¥»®Ñ¥H¦Z¡AŪªÌ·|¦³¤@ºØÁŵM¶}®Ôªº·Pı¡C 2¡D¦b¦}¦æ½sµ{¤è±¡A¥»®Ñ¤ñ¸û¥þ±¡A¦}¥B¥]§tÂ×´Iªº¥Ü¨Ò¡C¥]¬A¦ý¤£¶È¶È¤_µw¥ó°ò¦¡B½w¦s¡B¦}¦æ³]p¡BÂê¡BRCU¡B¤º¦s«Ì»Ù¡BÅçÃҤΧΦ¡ÅçÃÒ¡B¹ê®É¦}¦æpºâ¡C 3¡DìµÛ§@ªÌPaul¬O¯u¥¿ªº¤j®v¡C¬Ý¹L§@ªÌ²¤¶¡A¦}¥B¯u¥¿ª¾¹DRCU¦bLinux¤º®Ö¤¤¥÷¶qªºªB¤Í¡A¤£ª¾¹D§A̬O§_·|¦b¤ß¨½¹¿©B¡G¦bLinux¶}·½ªÀ°Ï¡A¦³¨S¦³¤Hº@·N¸ÕµÛ¥h«õPaulªºùÙ¨¤¡A¥N´ÀPaul§âRCUºûÅ@°_¨Ó¡H 4¡DPaul ¦b40¦~ªºÂ¾·~¥Í²P¤¤¡A¤j³¡¤À®É¶¡³£¦b½s¼g¦}¦æ½sµ{ªº¥N½X¡C·í¥L¦ªµÛ»P©b¹£¨®»ùÈ¬Û·íªºÂù®Öpºâ¾÷©¹¹êÅç«Ç¨«ªº®ÉÔ¡A§Ú³oÓ¦³20¦~½sµ{¸gÅ窺µ{§Çû¡AÁÙ¨S¦³¤W¤p¾Ç¡C 5¡D°ê¤º¹ï¦}¦æpºâ©MLinux¤º®Öªº¬ã¨s³v¨B²`¤J¡AŪªÌ´Á«Ý¤@¥»²`¤JÁ¿¸Ñ¦}¦æ½sµ{ªº®ÑÄy¡C¥»®Ñ¦³¦}¦æ½sµ{ªº¤Jªùª¾ÃÑ¡A§ó¦³È±o²Ó²Ó¦^¨ý¡B¤Ï´_µZ¿iªºª÷¥É¨}¨¥¡C 6¡DĶªÌ¦h¦¸®Ö¹ï®Õ¥¿¡AºÉ¶q°µ¨ì²Å¦XìµÛ¥»·N¡A¨â¦ìĶªÌ¦³¦h¦~Linux¤º®Ö¸gÅç¡AºÉ¶q°µ¨ì¤£¿ùĶ¡C ·íµM¡A¥Ñ¤_ĶªÌ¤ô¥ªºì¦]¡A®Ñ¤¤¿ùº|¤§³B¦b©ÒÃø§K¡A¼ö§ÕÅwªïŪªÌ´£¥X§åµû«Øij¡C ³Ì¦Z¡AĶªÌ¸Û¤ß·PÁÂìµÛ§@ªÌPaulµ¹¤j®a©^Äm¤F¤@¥»¦n®Ñ¡F¤]·PÁ¹q¤l¤u·~¥Xª©ªÀ²Å¶©¬ü½s¿èªº¨¯¶Ô¤u§@¡F¥H¤Î¸ê²`¤¬Ápºô³n¥ó¤uµ{®v¼B®ü¥¡A·PÁ§A¼ö¤ß¦a¦V¥Xª©ªÀ±ÀÂ˳o¥»®Ñ¡F³Ì¯u¤ßªº·PÁ¯dµ¹¦P®à¤Ò¤H§ÅºüµÓ¤Î§Ú̪º¨à¤lÁ¤åÃü¡AÄ묹¤F¤j¶q³¦ñ§A̪º®É¶¡¡AÁÂÁ§A̪º¼e®e¡I
ÁÂÄ_¤Í 2017¦~4¤ë20¤é ¤_²`¦`
ĶªÌ§Ç2
¤j·§¦b6¦~«e¡A¨º®É§Ú¦b¤¤¿³³q°Tªº¾Þ§@¨t²Î³¡ªù¤u§@¡C·í®É¤¤¿³³q°T§Æ±æ¥[¤JLinux°òª÷·|¡A¥Ñ¤_^»yÁÙ¤£ºâ®t¡A¾Þ§@¨t²Î³¡ªºÄÁ½ÃªF³¡ªøÅý§Út³d¤@¨Ç³¡ªù»P¶}·½ªÀ°Ïªº¦X§@±À¶i¤u§@¡A©Ò¥H°£¤F½sµ{¤u§@¥H¥~¡A§Ú®É±`±K¤ÁÃöª`Linux¶}·½ªÀ°Ïªº³Ì·s°ÊºA¡C¦³¤@¤Ñ§Ú¦bLWN.net¤WÂsÄý·s»D¡A¤@±ø®ø®§¬ðµM¸õ¤J¤F§Úªºµø½u¡GPaul McKenney¥X¤F¤@¥»Ãö¤_¦}¦æ½sµ{ªº®Ñ¡]ì¤åÃì±µ¦b¦¹¡Ahttps://lwn.net/Articles/421425¡^¡C¨º®ÉÔ§ÚÁÙ¤£ª¾¹DPaul¬O½Ö¡A¦ý¬O®Ñªº¤º®e«Ü§l¤Þ¤H¡A¤_¬O§Ú¶}©l§â®Ñ¤¶²Ðµ¹©P³òªº¦P¨Æ¡C¹L¤F¤@°}¤l¡AÁÂÄ_¤Í§ä¨ì§Ú¡A°Ý§Ú¦³¨S¦³¿³½ì¤@°_§â³o¥»®Ñ½Ķ¦¨¤¤¤å¡A§ÚÌǤ@©ç§Y¦X¡A¶}©l§Q¥Î·~§E®É¶¡¦X¤O½Ķ³o¥»¤j³¡ÀY¡C ÁöµM·í®É¥»®Ñªº¤º®e©|¥¼§¹¦¨¡A¦³¤@¨Ç³¹¸`¥u¦C¤F´£ºõ¡A¦ý¬OÃö¤_¦}¦æµ{§Çªº³]p«ä·Q¡B¬ÛÃö°ò¦ª¾ÃÑ¡BRCU©M¤º¦s«Ì»Ù¤è±ªº¤º®e¤w¸g«D±`Â×´I¡A¹ï¤_±q¨Æ¤º®Ö¶}µo¤u§@ªº§Ų́ӻ¡¡A²ª½´N¬OÄ_®w¡A§ÚÌ»{¬°§Y¨Ï¥u½Ķ³o¨Ç¤º®e¡A¹ï¨ä¥L¤¤°êŪªÌ¨Ó»¡¤]«Ü¦³À°§U¡C ½Ķªº¹Lµ{»·»·¤ñ³Ìªì·Q¶H±o§xÃø¡AìµÛ§@ªÌPaul¬O¤@¦ì¦³ªñ40¦~±q·~¸gÅ窺¸ê²`¤j¤û¡A¦b®Ñ¤¤¤j¶q¨Ï¥Î¤FLinux¤º®Öªº³N»y¡B¦}¦æ½sµ{ªº¬ã¨s¤åÄm¡A¥H¤Î¹ï´_Âøºâªk©M¥Ü¨Ò¥N½Xªº¸ÑÄÀ¡A¦b½Ķ¹Lµ{¤¤»Ýn¦r·r¥y°u¡A¤O¨D·Ç½T¦a¶Ç¹F§@ªÌªºì·N¡A©Ò¥H¶i«×«ÜºC¡C¤£¹L·í®É§ÚÁÙ¥¼±B¡A©|ºâ¦Û¥Ñ¡A¤U¯Z¥H¦ZªºªÅ§E®É¶¡´X¥G¥þ³¡¥Î¨Ó°µ³o¥ó¨Æ¡A¤j·§ªá¤F4Ӥ몺®É¶¡§¹¦¨¤F²Ä¤@Ó¤¤¤åª©¥»¡C §Ú̧⤤¤åª©µo¥¬¨ì¤Fºô¤W¡A¤]¶}©l©MPaulÁp¨t¡A½Ð¥LÀ°§Ú̫ŶǡA§Æ±æ¯àÅý§ó¦hªº¤¤°ê¶}µoªÌª¾¹D³o¥ó¨Æ¡C¦P¦~¦b«n¨ÊÁ|¦æªºCLK 2011¡]¤¤°êLinux¤º®Ö¶}µoªÌ¤j·|¡^¤W¡A§Ú©MÄ_¤Í¨£¨ì¤FPaul¥»¤H¡C³o¨½¦³¤@Ó¦³½ìªº¤p´¡¦±¡A¥Ñ¤_·|¦Z§äPaul´£°Ý©M«t¸ßªº¤H¤Ó¦h¡APaul¤z¯Ü¦b·|³õ¥~®u¦a¦Ó§¤¡A³v¤@¨Ô¨Ô¦Ó½Í¡C¤£Â\¬[¤lªº¤j¤û¡A¬OPaulµ¹§Ú¯d¤Uªº³Ì²`¨è¦L¶H¡C ¦Z¨Ó¦]¬°®a®xªºì¦]¡A§Ú¥h¤F¬ü°ê¡C¥Í¬¡¥Rº¡¤F·sªº¬D¾Ô¡AÄ~Äò§ó·s¤º®eªº¨Æ±¡¦]¦¹ÀÁ¸m¡C´Á¶¡¡AÄ_¤ÍÄ~Äò½Ķ¤Fµª®×³¡¤Àªº¤º®e¡A¤]¦³¥Xª©ªÀÁp¨t¹L§ÚÌ¡A·Q¥Xª©¥»®Ñªº¤¤¤åª©¡A¦ý¦]¬°ºØºØì¦]¡A¦Z¨ÓµL¯e¦Ó²×¡Cª½¨ì¥h¦~®L¤Ñ¡A¹q¤l¤u·~¥Xª©ªÀ¥¿¦¡±qìµÛ§@ªÌ³BÀò±oª©Åv±ÂÅv¡AÁܽЧکMÄ_¤Í±N¥»®Ñ³Ì·sª©Â½Ä¶¦¨¤¤¤å¡C¤_¬O§Ú̦A«×¦X§@¡Aªá¤F¤j¥b¦~®É¶¡¡A«·s¼f¾\½Ķ½Z¡A±N¤º®e§ó·s¨ì³Ì·sª©¥»¡A§¹¾ã¦a½Ķ¤F©Ò¦³ªþ¿ý©M¤p°ÝÃDµª®×¡A¦P®É×q¤F«Ü¦h¿ù»~¡C¬Û¸û¤§«eªºÂ½Ä¶½Z¡A§@ªÌ¹ï³o¤@ª©ªº¤º®e¦³¤j´T§ïÅÜ¡G ²Ä6³¹·s¼W¤F¹ï°g®c°ÝÃD¦}¦æ¤Æ¸Ñªkªº°Q½×¡A §¹¥þ«¼g¤F²Ä7³¹Âê©M²Ä8³¹¼Æ¾Ú©Ò¦³Åvªº¤º®e¡C ²Ä9³¹·s¼W¤FÃö¤_¦MÀI«ü°w©M¶¶§ÇÂê¡A§ó·s¤F¤@¨Ç¨Ò¤l¡C ·s¼W¤F²Ä10³¹¡A¦p¦ó±N«¢§Æªí¦}¦æ¤Æ¡C ·s¼W¤F²Ä11³¹¡A¦p¦óÅçÃÒ¦}¦æºâªkªº¥¿½T©Ê¡C ·s¼W¤F²Ä13³¹ºî¦XÀ³¥Î¡C ·s¼W¤F²Ä15³¹¦}¦æ¹ê®Épºâ¡C ±q³oÓ¦Cªí¥i¥H¬Ý¥X¡AìµÛ§@ªÌPaul¹ï¦}¦æ½sµ{§Þ³Nªº«ä¦Ò¤@ª½¨S¦³°±¤î¡AÁÙ¦b¤£°±¦a±N³oÓ¸g¨å»â°ìªº·s°ÝÃD©M·s¶i®i¥[¤J¨ì¥»®Ñ¤¤¡C¤ñ¦p¤@¨Ç¾ÇªÌ¹ï±`¨£¼Æ¾Úµ²ºc«¢§Æªíªº³Ì·s¬ã¨s¡A¨Ï±o¥»®Ñ¤£¶È¦¨¬°¤@³¡®×ÀY¥²³Æªº¤u¨ã®Ñ¡AÁÙ¬O¤@Ó¶}©Ý·sª¾ÃѪº¥XµoÂI¡C §@ªÌ¦b®Ñ¤¤¼Æ¦¸±j½Õ³]pªº«n©Ê¡C¤u§@¥H¨Ó¡A§Ú´¿°Ñ»Pªº¶µ¥Ø¦³¾Þ§@¨t²Î¤º®Ö¡BÂsÄý¾¹¤º®Ö¡A¥Ø«e¶}µoªº¬O¤º¦s¼Æ¾Ú®w¡A³£Äݤ_¨t²Î³n¥óªºSÃ¥¡C³o¨Ç¶µ¥Ø³£¤j¶q¨Ï¥Î¤F¦h½uµ{¨Ó¥R¤À§Q¥Îµw¥ó¡C¦b³o¨Ç¹ê½î¤¤¡A§Ú¦³¤@ÂIÅé·|¡AÃö¤_¤À³Î¼Æ¾Ú¡B¤À³Î®É¶¡¡B´î¤Ö¸ó½uµ{³X°Ý¡B¦}¦æ§Ö³t¸ô®|¡BÂꪺ¨Ï¥Î¬ö«ß³o¨Ç³]p«ä·Q¡A¤@¥¹À³¥Î¨ì¶µ¥Ø¤¤¡A¥N½X´NÅܱo²M´·©öÀ´¡A«Ü¤Ö¦³BUG¡C¤@¥¹¹H¤Ï¡A´N±a¨ÓÃø¥HºûÅ@ªº¥N½X¡AÀH¤§¦Ó¨Óªº¬O¼h¥X¤£½aªºBUG¡C ®Ñ¤¤ÁÙ´²¸¨µÛ³\¦hÄ_¶Qªº¸gÅçªk«h¡A¤ñ¦p10.6.3¸`¤¤¦p¦ó³q¹L«·s±Æ¦C¼Æ¾Úµ²ºc¶¶§Ç¨ÓÁקK½w¦s¦æ¡§ÄA𡨡C³o¨Ç«e½úºN¯Á¥X¨Óªº¸gÅç¯àÅý·s¤@¥Nªº¶}µoªÌ¤Ö¨««Ü¦hÅs¸ô¡C §@ªÌªº¦æ¤å¤Q¤À«ÕÀq¡A§Ú¦b½Ķ¹Lµ{¤¤¡A¸g±`§Ô«T¤£¸T¡C§Æ±æ¯à¦b¤¤¤åª©¤¤¡AºÉ¶q±N§@ªÌªº«ÕÀq·P«O¯d¤U¨Ó¡C ¥h¦~§Úªº¨à¤l¤p³½¨à°¥Í¡A§@¬°¤@Ó·sª¨ª¨¡A¥Õ¤Ñ¤u§@¡A±ß¤W¦b·ÓÅU«Ä¤l¤§§EÁÙn¥[¯Z½Ķ¤å½Z¡A¯u¬O¤À¬í¥²ª§¡C³Ì¦ZɳoÓ¾÷·|¡A±N³Ì¯u¤ßªº·PÁ¯dµ¹§Úªº¤Ò¤H¿cÀR¡A·PÁ§A¹ï®a®xªº¥I¥X¡A¨S¦³§AªºÀ°§U©M²z¸Ñ¡A´N¨S¦³¥»®Ñ¤¤¤åª©ªº±¥@¡C
¾|¶§ 2017¦~6¤ë16¤é¤_Woburn¡AMassachusetts |
¤º®e²¤¶¡G¥»®Ñº¥ý¥HÀNª÷´£¥Xªº¨âÓ²z½×ª«²z¨î¬°¤Þ¤l¡A¸ÑÄÀ¤F¦h®Ö¦}¦æpºâ¿³°_ªºì¦]¡A¦}±qµw¥óªº¨¤«×ÄÄz¦}¦æ½sµ{ªºÃøÃD¡C±µµÛ¡A¥»®Ñ¥H±`¨£ªºp¼Æ¾¹¬°¨Ò¡A±´°Q¨ä¤£¦Pªº¹ê²{¤èªk¤Î¾A¥Î³õ´º¡C¦b³o¨Ç¹ê²{¤èªk¤¤¡A°£¤F¤¶²Ð±`¨£ªºÂê¥H¥~¡A¥»®ÑÁÙ«ÂI¤¶²Ð¤FRCUªº¨Ï¥Î¤Î¨äì²z¡A¥H¤Î¹ê²{RCUªº°ò¦¡G¤º¦s«Ì»Ù¡C³Ì¦Z¡A¥»®ÑÁÙ¤¶²Ð¤F¦}¦æ³n¥óªºÅçÃÒ¡A¥H¤Î¦}¦æ¹ê®Épºâµ¥¤º®e¡C¥»®Ñ¾A¦X¤_¹ï¦}¦æ½sµ{¦³¿³½ìªº¤j¾Ç¥Í¡B¬ã¨s¥Í¡A¥H¤Î»Ýn¹ï¶µ¥Ø¶i¦æ²`«×©Ê¯àÀu¤Æªº³nµw¥ó¤uµ{®v¡A¯S§Oȱo¤@´£ªº¬O¡A¥»®Ñ¹ï¾Þ§@¨t²Î¤º®Ö¤uµ{®v¤]«Ü¦³»ùÈ¡C |
¥Ø¿ý¡G²Ä1³¹ ¦p¦ó¨Ï¥Î¥»®Ñ 1 1.1 ¸ô½u¹Ï 1 1.2 ¤p°ÝÃD 2 1.3¡@°£¥»®Ñ¤§¥~ªº¿ï¾Ü 3 1.4 ¥Ü¨Ò·½¥N½X 4 1.5 ³o¥»®ÑÄݤ_½Ö 4 ²Ä2³¹ ²¤¶ 6 2.1 ¾ÉP¦}¦æ½sµ{§xÃøªº¾ú¥vì¦] 6 2.2 ¦}¦æ½sµ{ªº¥Ø¼Ð 7 2.2.1 ©Ê¯à 8 2.2.2 ¥Í²£²v 9 2.2.3 ³q¥Î©Ê 9 2.3 ¦}¦æ½sµ{ªº´À¥N¤è®× 11 2.3.1 ¦ê¦æÀ³¥Îªº¦hÓ¹ê¨Ò 11 2.3.2 ¨Ï¥Î²{¦³ªº¦}¦æ³n¥ó 11 2.3.3 ©Ê¯àÀu¤Æ 12 2.4 ¬O¤°¤\¨Ï¦}¦æ½sµ{Åܱo´_Âø 12 2.4.1 ¤À³Î¥ô°È 13 2.4.2 ¦}¦æ³X°Ý±±¨î 13 2.4.3 ¸ê·½¤À³Î©M´_¨î 14 2.4.4 »Pµw¥óªº¥æ¤¬ 14 2.4.5 ²Õ¦X¨Ï¥Î 14 2.4.6 »y¨¥©MÀô¹Ò¦p¦ó¤ä«ù³o¨Ç¥ô°È 14 2.5 ¥»³¹ªº°Q½× 15 ²Ä3³¹ µw¥ó©M¥¦ªº²ßºD 16 3.1 ·§z 16 3.1.1 ¬y¤ô½uCPU 16 3.1.2 ¤º¦s¤Þ¥Î 17 3.1.3 ì¤l¾Þ§@ 18 3.1.4 ¤º¦s«Ì»Ù 19 3.1.5 °ª³t½w¦s¥¼©R¤¤ 19 3.1.6 I/O¾Þ§@ 19 3.2 ¶}¾P 20 3.2.1 µw¥óÅé¨tµ²ºc 20 3.2.2 ¾Þ§@ªº¶}¾P 21 3.3 µw¥óªº§K¶O¤ÈÀ\ 23 3.3.1 3D¶°¦¨ 23 3.3.2 ·s§÷®Æ©M·s¤uÃÀ 24 3.3.3 ¬O¥ú¡A¤£¬O¹q¤l 24 3.3.4 ±M¥Î¥[³t¾¹ 24 3.3.5 ²{¦³ªº¦}¦æ³n¥ó 25 3.4 ¹ï³n¥ó³]pªº±Ò¥Ü 25 ²Ä4³¹ ¿ì¨Æªº®a¥ë 27 4.1 ¸}¥»»y¨¥ 27 4.2 POSIX¦h¶iµ{ 28 4.2.1 POSIX¶iµ{³Ð«Ø©M¾P·´ 28 4.2.2 POSIX½uµ{³Ð«Ø©M¾P·´ 30 4.2.3 POSIXÂê 31 4.2.4 POSIXŪ/¼gÂê 34 4.3 ì¤l¾Þ§@ 37 4.4 Linux¤º®Ö¤¤Ãþ¦üPOSIXªº¾Þ§@ 38 4.5 ¦p¦ó¿ï¾Ü¶X¤âªº¤u¨ã 39 ²Ä5³¹ p¼Æ 40 5.1 ¬°¤°¤\¦}µop¼Æ¤£¥i¤p¬Ý 41 5.2 ²Îpp¼Æ¾¹ 42 5.2.1 ³]p 43 5.2.2 °ò¤_¼Æ²Õªº¹ê²{ 43 5.2.3 ³Ì²×µ²ªG¤@Pªº¹ê²{ 44 5.2.4 °ò¤_¨C½uµ{Åܶqªº¹ê²{ 46 5.2.5 ¥»¸`°Q½× 48 5.3 ªñ¦ü¤Wp¼Æ¾¹ 48 5.3.1 ³]p 48 5.3.2 ²³æªº¤Wp¼Æ¹ê²{ 50 5.3.3 Ãö¤_²³æ¤Wp¼Æªº°Q½× 55 5.3.4 ªñ¦ü¤Wp¼Æ¾¹ªº¹ê²{ 55 5.3.5 Ãö¤_ªñ¦ü¤Wp¼Æ¾¹ªº°Q½× 55 5.4 ºë½T¤Wp¼Æ 56 5.4.1 ì¤l¤Wp¼Æªº¹ê²{ 56 5.4.2 Ãö¤_ì¤l¤Wp¼Æªº°Q½× 62 5.4.3 Signal-Theft¤Wp¼Æªº³]p 62 5.4.4 Signal-Theft¤Wp¼Æªº¹ê²{ 63 5.4.5 Ãö¤_Signal-Theft¤Wp¼Æªº°Q½× 68 5.5 ¯S®í³õ¦Xªº¦}¦æp¼Æ 68 5.6 Ãö¤_¦}¦æp¼Æªº°Q½× 69 5.6.1 ¦}¦æp¼Æªº©Ê¯à 70 5.6.2 ¦}¦æp¼Æªº±Mªù¤Æ 71 5.6.3 ±q¦}¦æp¼Æ¤¤¾Ç¨ì¤°¤\ 71 ²Ä6³¹ ¹ï¤À³Î©M¦P¨Bªº³]p 73 6.1 ¤À³Î½m²ß 73 6.1.1 õ¾Ç®a´NÀ\°ÝÃD 73 6.1.2 ÂùºÝ¶¤¦C 75 6.1.3 Ãö¤_¤À³Î°ÝÃD¥Ü¨Òªº°Q½× 81 6.2 ³]p·Ç«h 82 6.3 ¦P¨B²É«× 83 6.3.1 ¦ê¦æµ{§Ç 84 6.3.2 ¥N½XÂê 85 6.3.3 ¼Æ¾ÚÂê 86 6.3.4 ¼Æ¾Ú©Ò¦³Åv 88 6.3.5 Âê²É«×»P©Ê¯à 88 6.4 ¦}¦æ§Ö³t¸ô®| 90 6.4.1 Ū/¼gÂê 91 6.4.2 ¼h¦¸Âê 91 6.4.3 ¸ê·½¤À°t¾¹½w¦s 92 6.5 ¤À³Î¤§¥~ 97 6.5.1 ¨Ï¥Î¤u§@¶¤¦Cªº°g®c°ÝÃD¦}¦æ¸Ñªk 97 6.5.2 ¥t¤@ºØ°g®c°ÝÃDªº¦}¦æ¸Ñªk 100 6.5.3 ©Ê¯à¤ñ¸ûI 102 6.5.4 ¥t¤@ºØ°g®c°ÝÃDªº¦ê¦æ¸Ñªk 104 6.5.5 ©Ê¯à¤ñ¸ûII 104 6.5.6 ¥¼¨Ó®i±æ»P¥»¸`Á`µ² 105 6.6 ¤À³Î¡B¦}¦æ¤Æ»PÀu¤Æ 106 ²Ä7³¹ Âê 107 7.1 §V¤O¬¡µÛ 108 7.1.1 ¦ºÂê 108 7.1.2 ¬¡Âê»PÄȾj 114 7.1.3 ¤£¤½¥ªºÂê 116 7.1.4 §C®Ä²vªºÂê 117 7.2 ÂꪺÃþ«¬ 117 7.2.1 ¤¬¥¸Âê 117 7.2.2 Ū/¼gÂê 118 7.2.3 Ū/¼gÂꤧ¥~ 118 7.2.4 S³òÂê 119 7.3 Âê¦b¹ê²{¤¤ªº°ÝÃD 121 7.3.1 °ò¤_ì¤l¥æ´«ªº¤¬¥¸Âê¹ê²{¥Ü¨Ò 121 7.3.2 ¤¬¥¸Âꪺ¨ä¥L¹ê²{ 122 7.4 °ò¤_Âꪺ¦s¦b«OÃÒ 124 7.5 Âê¡G¬O^¶¯ÁÙ¬O´c´Ò 125 7.5.1 À³¥Îµ{§Ç¤¤ªºÂê¡G^¶¯ 125 7.5.2 ¦}¦æ®w¤¤ªºÂê¡G¥u¬O¤@Ó¤u¨ã 126 7.5.3 ¦}¦æ¤Æ¦ê¦æ®w®ÉªºÂê¡G´c´Ò 128 7.6 Á`µ² 130 ²Ä8³¹ ¼Æ¾Ú©Ò¦³Åv 131 8.1 ¦h¶iµ{ 131 8.2 ³¡¤À¼Æ¾Ú©Ò¦³Åv©Mpthread½uµ{®w 132 8.3 ¨ç¼Æ¿é°e 132 8.4 «ü¬£½uµ{ 132 8.5 ¨p¦³¤Æ 133 8.6 ¼Æ¾Ú©Ò¦³Åvªº¨ä¥L¥Î³~ 133 ²Ä9³¹ ©µ¦Z³B²z 134 9.1 ¤Þ¥Îp¼Æ 134 9.1.1 ¦UºØ¤Þ¥Îp¼Æªº¹ê²{ 135 9.1.2 ¦MÀI«ü°w 140 9.1.3 ¤ä«ù¤Þ¥Îp¼ÆªºLinuxì»y 141 9.1.4 p¼ÆÀu¤Æ 142 9.2 ¶¶§ÇÂê 142 9.3 Ū-´_¨î-קï¡]RCU¡^ 145 9.3.1 RCU¤¶²Ð 145 9.3.2 RCU°ò¦ 147 9.3.3 RCU¥Îªk 155 9.3.4 Linux¤º®Ö¤¤ªºRCU API 166 9.3.5 ¡§ª±¨ã¦¡¡¨ªºRCU¹ê²{ 171 9.3.6 RCU½m²ß 188 9.4 ¦p¦ó¿ï¾Ü 188 9.5 §ó·sºÝ«ç¤\¿ì 190 ²Ä10³¹ ¼Æ¾Úµ²ºc 191 10.1 ±q¨Ò¤l¤J¤â 191 10.2 ¥i¤À³Îªº¼Æ¾Úµ²ºc 192 10.2.1 «¢§Æªíªº³]p 192 10.2.2 «¢§Æªíªº¹ê²{ 192 10.2.3 «¢§Æªíªº©Ê¯à 195 10.3 Ū°¼«ªº¼Æ¾Úµ²ºc 197 10.3.1 ¨üRCU«OÅ@ªº«¢§Æªíªº¹ê²{ 197 10.3.2 ¨üRCU«OÅ@ªº«¢§Æªíªº©Ê¯à 199 10.3.3 ¹ï¨üRCU«OÅ@ªº«¢§Æªíªº°Q½× 201 10.4 ¤£¥i¤À³Îªº¼Æ¾Úµ²ºc 201 10.4.1 ¥iÂX®i«¢§Æªíªº³]p 202 10.4.2 ¥iÂX®i«¢§Æªíªº¹ê²{ 203 10.4.3 ¥iÂX®i«¢§Æªíªº°Q½× 210 10.4.4 ¨ä¥L¥iÂX®iªº«¢§Æªí 211 10.5 ¨ä¥L¼Æ¾Úµ²ºc 214 10.6 ·LÀu¤Æ 214 10.6.1 ¹ê¨Ò¤Æ 215 10.6.2 ¤ñ¯S»P¦r¸` 215 10.6.3 µw¥ó¼h±ªº¦Ò¼{ 216 10.7 Á`µ² 217 ²Ä11³¹ ÅçÃÒ 218 11.1 ²¤¶ 218 11.1.1 BUG¨Ó¦Û¤_¦ó³B 218 11.1.2 ©Ò»Ýªº¤ßºA 220 11.1.3 À³¸Ó¦ó®É¶}©lÅçÃÒ 221 11.1.4 ¶}·½¤§¸ô 221 11.2 ¸òÂÜ 222 11.3 Â_¨¥ 223 11.4 ÀRºA¤ÀªR 224 11.5 ¥N½X¨«¬d 224 11.5.1 ¼f¬d 224 11.5.2 ¨«¬d 225 11.5.3 ¦Û¬d 225 11.6 ´X²v¤Î®ü´Ë³ùBUG 227 11.6.1 Â÷´²´ú¸Õ²Îp 228 11.6.2 ÀÝ¥ÎÂ÷´²´ú¸Õ²Îp 229 11.6.3 «ùÄò´ú¸Õ²Îp 229 11.6.4 ©w¦ì®ü´Ë³ùBUG 232 11.7 ©Ê¯àµû¦ô 235 11.7.1 ©Ê¯à°ò·Ç 236 11.7.2 åªR 236 11.7.3 ®t¤À¤ÀªR 237 11.7.4 ·L°ò·Ç 237 11.7.5 ¹jÂ÷ 237 11.7.6 ÀË´ú¤zÂZ 238 11.8 Á`µ² 242 ²Ä12³¹ §Î¦¡ÅçÃÒ 244 12.1 ³q¥Î¥Øªºªºª¬ºAªÅ¶¡·j¯Á 244 12.1.1 Promela©MSpin 244 12.1.2 ¦p¦ó¨Ï¥Î Promela 249 12.1.3 Promela ¥Ü¨Ò: Âê 251 12.1.4 Promela ¥Ü¨Ò: QRCU 254 12.1.5 Promelaªì¸Õ¤û¤M¡Gdynticks©M¥i·m¥eRCU 260 12.1.6 ÅçÃÒ¥i·m¥eRCU©Mdynticks 264 12.2 ¯S©w¥Øªºªºª¬ºAªÅ¶¡·j¯Á 288 12.2.1 ¸ÑªRLitmus´ú¸Õ 289 12.2.2 Litmus´ú¸Õ·N¨ýµÛ¤°¤\ 290 12.2.3 ¹B¦æLitmus´ú¸Õ 291 12.2.4 PPCMEM°Q½× 292 12.3 ¤½²z¤èªk 293 12.4 SAT¨D¸Ñ¾¹ 294 12.5 Á`µ² 295 ²Ä13³¹ ºî¦XÀ³¥Î 296 13.1 p¼ÆÃøÃD 296 13.1.1 ¹ï§ó·s¶i¦æp¼Æ 296 13.1.2 ¹ï¬d§ä¶i¦æp¼Æ 296 13.2 ¨Ï¥ÎRCU¬@±Ï¦}¦æ³n¥ó©Ê¯à 297 13.2.1 RCU©M°ò¤_¨CCPUÅܶqªº²Îpp¼Æ 297 13.2.2 RCU¤Î¥i´¡©ÞI/O³]³Æªºp¼Æ¾¹ 300 13.2.3 ¼Æ²Õ¤Îªø«× 300 13.2.4 ¬ÛÃöÁpªº¦r¬q 301 13.3 ´²¦CÃøÃD 302 13.3.1 ¬ÛÃöÁpªº¼Æ¾Ú¤¸¯À 302 13.3.2 §ó·s¤Í¦nªº«¢§Æªí¹M¾ú 303 ²Ä14³¹ °ª¯Å¦P¨B 304 14.1 ÁקKÂê 304 14.2 ¤º¦s«Ì»Ù 304 14.2.1 ¤º¦s§Ç¤Î¤º¦s«Ì»Ù 305 14.2.2 ¦pªGB¦bA¦Z±¡A¦}¥BC¦bB¦Z±¡A¬°¤°¤\C¤£¦bA¦Z± 306 14.2.3 Åܶq¥i¥H¾Ö¦³¦hÓÈ 307 14.2.4 ¯à«H¥ô¤°¤\ªF¦è 308 14.2.5 Âê¹ê²{¦^ÅU 312 14.2.6 ¤@¨Ç²³æªº³W«h 313 14.2.7 ©â¶H¤º¦s³X°Ý¼Ò«¬ 314 14.2.8 ³]³Æ¾Þ§@ 315 14.2.9 «OÃÒ 315 14.2.10 ¤°¤\¬O¤º¦s«Ì»Ù 316 14.2.11 Âê¬ù§ô 325 14.2.12 ¤º¦s«Ì»Ù¥Ü¨Ò 326 14.2.13 CPU½w¦sªº¼vÅT 328 14.2.14 þ¨½»Ýn¤º¦s«Ì»Ù 329 14.3 «Dªý¶ë¦P¨B 329 14.3.1 ²³æNBS 330 14.3.2 NBS°Q½× 331 ²Ä15³¹ ¦}¦æ¹ê®Épºâ 332 15.1 ¤°¤\¬O¹ê®Épºâ 332 15.1.1 ³n¹ê®É 332 15.1.2 µw¹ê®É 333 15.1.3 ²{¹ê¥@¬Éªº¹ê®É 334 15.2 ½Ö»Ýn¹ê®Épºâ 336 15.3 ½Ö»Ýn¦}¦æ¹ê®Épºâ 337 15.4 ¹ê²{¦}¦æ¹ê®É¨t²Î 337 15.4.1 ¹ê²{¦}¦æ¹ê®É¾Þ§@¨t²Î 339 15.4.2 ¹ê²{¦}¦æ¹ê®ÉÀ³¥Î 349 15.5 ¹ê®ÉVS.§Ö³t¡G¦p¦ó¿ï¾Ü 351 ²Ä16³¹ ©ö¤_¨Ï¥Î 353 16.1 ²³æ¬O¤°¤\ 353 16.2 API³]pªºRusty·Ç«h 353 16.3 ×¾ãMandelbrot¶°¦X 354 ²Ä17³¹ ¥¼¨Óªº¨R¬ð 357 17.1 ´¿¸gªºCPU§Þ³N¤£¥Nªí¥¼¨Ó 357 17.1.1 ³æ³B²z¾¹Uber Alles 358 17.1.2 ¦h½uµ{Mania 359 17.1.3 §ó¦hÃþ¦üªº³õ´º 359 17.1.4 ¼²¤W¤º¦sùÙ 359 17.2 ¨Æ°È¤º¦s 360 17.2.1 ¥~³¡¥@¬É 361 17.2.2 ¶iµ{קï 364 17.2.3 ¦P¨B 367 17.2.4 °Q½× 370 17.3 µw¥ó¨Æ°È¤º¦s 371 17.3.1 HTM»PÂê¬Û¤ñªºÀu¶Õ 372 17.3.2 HTM»PÂê¬Û¤ñªº¦H¶Õ 373 17.3.3 HTM»P¼W±j¦ZªºÂê¾÷¨î¬Û¤ñªº¦H¶Õ 379 17.3.4 HTM³Ì¾A¦Xªº³õ¦X 380 17.3.5 ¼ç¦bªºÅͧ½ªÌ 380 17.3.6 µ²½× 382 17.4 ¦}¦æ¨ç¼Æ¦¡½sµ{ 383 ªþ¿ýA «n°ÝÃD 385 A.1 ¡§After¡¨ªº§t¸q¬O¤°¤\ 385 A.2 ¡§¦}µo¡¨©M¡§¦}¦æ¡¨¤§¶¡ªº®t²§¬O¤°¤\ 388 A.3 ²{¦b¬O¤°¤\®É¶¡ 389 ªþ¿ýB ¦P¨Bì»y 391 B.1 ²Õ´©Mªì©l¤Æ 391 B.1.1 smp_init() 391 B.2 ½uµ{³Ð«Ø¡B¾P·´¤Î±±¨î 392 B.2.1 create_thread() 392 B.2.2 smp_thread_id() 392 B.2.3 for_each_thread() 392 B.2.4 for_each_running_thread() 392 B.2.5 wait_thread() 393 B.2.6 wait_all_threads() 393 B.2.7 ¥Îªk¥Ü¨Ò 393 B.3 Âê 394 B.3.1 spin_lock_init() 394 B.3.2 spin_lock() 394 B.3.3 spin_trylock() 394 B.3.4 spin_unlock() 394 B.3.5 ¥Îªk¥Ü¨Ò 395 B.4 ¨C½uµ{Åܶq 395 B.4.1 DEFINE_PER_THREAD() 395 B.4.2 DECLARE_PER_THREAD() 395 B.4.3 per_thread() 395 B.4.4 __get_thread_var() 396 B.4.5 init_per_thread() 396 B.4.6 ¥Îªk¥Ü¨Ò 396 B.5 ©Ê¯à 396 ªþ¿ýC ¬°¤°¤\»Ýn¤º¦s«Ì»Ù 397 C.1 ½w¦sµ²ºc 397 C.2 ½w¦s¤@P©Ê¨óij 399 C.2.1 MESIª¬ºA 399 C.2.2 MESI¨óij®ø®§ 400 C.2.3 MESIª¬ºA¹Ï 400 C.2.4 MESI¨óij¥Ü¨Ò 401 C.3 ¦sÀx¾ÉP¤£¥²nªº°±¹y 402 C.3.1 ¦sÀx½w¨R 403 C.3.2 ¦sÀxÂàµo 403 C.3.3 ¦sÀx½w¨R°Ï¤Î¤º¦s«Ì»Ù 404 C.4 ¦sÀx§Ç¦C¾ÉP¤£¥²nªº°±¹y 406 C.4.1 ¨ÏµL®Ä¶¤¦C 406 C.4.2 ¨ÏµL®Ä¶¤¦C¤Î¨ÏµL®ÄÀ³µª 407 C.4.3 ¨ÏµL®Ä¶¤¦C¤Î¤º¦s«Ì»Ù 407 C.5 Ū©M¼g¤º¦s«Ì»Ù 409 C.6 ¤º¦s«Ì»Ù¥Ü¨Ò 410 C.6.1 ¶Ã§ÇÅé¨tµ²ºc 410 C.6.2 ¥Ü¨Ò1 411 C.6.3 ¥Ü¨Ò2 412 C.6.4 ¥Ü¨Ò3 412 C.7 ¯S©wªº¤º¦s«Ì»Ù«ü¥O 413 C.7.1 Alpha 414 C.7.2 AMD64 417 C.7.3 ARMv7-A/R 417 C.7.4 IA64 418 C.7.5 PA-RISC 418 C.7.6 POWER / Power PC 418 C.7.7 SPARC RMO¡BPSO¤ÎTSO 419 C.7.8 x86 420 C.7.9 zSeries 421 C.8 ¤º¦s«Ì»Ù¬O¥ÃùÚªº¶Ü 421 C.9 ¹ïµw¥ó³]pªÌªº«Øij 422
ªþ¿ýD ¤p°ÝÃDµª®× 423 D.1 ¦p¦ó¨Ï¥Î¥»®Ñ 423 D.2 ²¤¶ 424 D.3 µw¥ó©M¥¦ªº²ßºD 427 D.4 ¿ì¨Æªº®a¥ë 429 D.5 p¼Æ 433 D.6 ¹ï¤À³Î©M¦P¨Bªº³]p 445 D.7 Âê 449 D.8 ¼Æ¾Ú©Ò¦³Åv 455 D.9 ©µ¿ð³B²z 456 D.10 ¼Æ¾Úµ²ºc 471 D.11 ÅçÃÒ 473 D.12 §Î¦¡ÅçÃÒ 478 D.13 ºî¦XÀ³¥Î 481 D.14 °ª¯Å¦P¨B 483 D.15 ¦}¦æ¹ê®Épºâ 486 D.16 ©ö¤_¨Ï¥Î 487 D.17 ¥¼¨Óªº¨R¬ð 487 D.18 «n°ÝÃD 490 D.19 ¦P¨Bì»y 491 D.20 ¬°¤°¤\»Ýn¤º¦s«Ì»Ù 491 ªþ¿ýE ³N»y 495 ªþ¿ýF ·PÁ 502 F.1 µû¼fªÌ 502 F.2 µw¥ó´£¨ÑªÌ 502 F.3 ì©l¥X³B 503 F.4 ¹Ïªí§@ªÌ 503 F.5 ¨ä¥LÀ°§U 505 |
§Ç¡G |