¡¡¡¡²Ù×÷ϵͳ×÷Ϊ¼ÆËã»ú¹¤ÒµµÄºËÐÄÈí¼þµ½ÏÖÔÚΪֹµØÎ»ÈÔÈ»²»¿É¶¯Ò¡¡£ËäÈ»µ±´úµÄÓ²¼þÉè¼Æ¼¼ÊõÒѾµÇ·åÔ켫£¬¸÷ÖÖÔçÆÚ±ØÐëÒªÓÃÈí¼þ²ÅÄÜʵÏֵĸ÷ÖÖ¼¼ÊõÏÖÔÚ·×·×ÒѾ±»¼¯³Éµ½Ó²¼þÀïÃæ£¬µ«ÊDzÙ×÷ϵͳ¼¼Êõ²¢Ã»ÓÐËæ×ÅÓ²¼þ¼¼ÊõµÄÌáÉý¶øÉÔÏÔÍÇÊÆ£¬Ò»¸öÖ÷ÒªÔÒòÊÇÈËÃdz¢ÊÔÓÃÈí¼þÈ¥½â¾ö¸ü¸´ÔÓµÄÎÊÌ⣬¸´ÔÓµÄÓ²¼þÐèÒª¸üºÃµÄ²Ù×÷ϵͳÀ´¹ÜÀí¡£¶øÇÒĿǰµÄcpuÉè¼Æ¼¼ÊõÔ½À´Ô½Êܵ½Èí¼þµÄÓ°Ï죬һ´óÅúcpuÉè¼Æ³§É̽¨Á¢²Ù×÷ϵͳÑз¢ÖÐÐÄ(ÈçAMDÓÐרÃŵÄÏȽø²Ù×÷ϵͳÑз¢ÖÐÐÄ, IBMµÄWastonÑо¿ÖÐÐij¤ÆÚÒÔÀ´¹ØÐIJÙ×÷¼¼ÊõÈçSawMill, K42µÈ²Ù×÷ϵͳ)ÓÃÓÚ¸÷ÖÖ²Ù×÷ϵͳ¼¼ÊõÑéÖ¤£¬Ò»µ©Ä³¸öÈí¼þ¼¼Êõ±»ÈÏΪ¶ÔÌá¸ßÐÔÄÜ»òÕ߯äËû¹¦ÄܰïÖúºÜÃ÷ÏÔ£¬cpuÉè¼ÆÈËÔ±¾Í¿ÉÒÔÑз¢¸üеÄÓ²¼þÖ¸ÁîÀ´´úÌæ±¿×¾µÄÈí¼þʵÏÖÒÔÈ¡µÃ¸ü¸ßµÄÐÔÄÜ£¬µäÐ͵ÄÀý×Ó¾ÍÊÇcompare-and-swapÖ¸ÁÕâ±¾À´ÊÇÒ»¸ö´¿Èí¼þËã·¨£¬µ«ÊÇÒòΪÆä¸ßЧ¶ø±»Éè¼Æ³ÉÁËÓ²¼þÖ¸Áî´æÔÚÓÚ¸÷ÖÖÆ½Ì¨Ö®ÉÏ¡£ÏÂÒ»¸ö¿ÉÒÔ±»CPUÉè¼Æ³§É̼̳еÄÈí¼þ¼¼ÊõÓ¦¸ÃÊÇmemory transaction ,ÏÖÔÚËüÓÐÒ»¸öרÓÐÃû³Æ(software trasaction memory, STM), ¹À¼Æ²»¾ÃµÄ½«À´Ò²¾Í³ÉÁËHTM (Hardware memory transaction£©.
¡¡¡¡¾ÙÉÏÃæÒ»¶ÎÀý×ÓÖ÷ÒªÊÇÏë˵Ã÷ÔÚCPUÖÆÔì¼¼ÊõÈÕÒæÆÕ¼°µÄ½ñÌ죬ÒòΪ´ÓÀíÂÛÉϽ²£¬´óÖлªµØÇøµÄ¸÷´ó¾§Ô²´ú¹¤³§ÉÌ£¬Èç̨»ýµç£¬Ì¨Áªµã£¬ÖÐо¹ú¼Ê£¬ÌØÐí°ëµ¼Ìå¶¼¿ÉÒÔÖÆÔìCPU£¬¶øÇÒÈýÐÇ¡¢¶«Ö¥£¬Ë÷ÄáÕâЩÔÚÄÚ´æÉú²ú³§ÉÌÔÚÒ»¶¨³É¶ÈÉÏÒ²¾ß±¸CPUÖÆÔìÄÜÁ¦¡£ÄÇôΨһ±»ÖµµÃ³ÆµÀµÄ¾ÍÊÇCPUÉè¼Æ¼¼ÊõÁË£¬CPUÉè¼ÆÓÐ2¸ö·½Ã棬һ¸öÊÇÊÇÖ¸Á£¬ÁíÒ»¸ö¼Ü¹¹¡£¹ØÓÚÖ¸ÁµÄÑÝ»¯£¬Ö÷ÒªÊÇËæ×ÅÓû§ÐèÇ󼯳ɸü¶àµÄ¹¦ÄÜ£¬ÀýÈçMMX, ÁíÒ»¸öÊÇÒòΪ¼Ü¹¹µÄÐèÒªÒý½øÐµÄcpuÖ¸ÁÀýÈçcpuidµÈ£¬Õâ¸ö·½ÃæµÄÑÝ»¯ÊÇÐèÇóÍÆ¶¯µÄ¡£¹ØÓڼܹ¹µÄÑÝ»¯£¬Ö÷ÒªÊÇÏò¶àºË(Multi-Core£©£¬¶àỊ̈߳¨Multi-Thread)ÕâЩÌá¸ß²¢·¢ÊýµÄ¼Ü¹¹¿¿Â££¬¶ÔÓÚCPU³§ÉÌÀ´½²£¬Èç¹ûÏë¼ÌÐø¼á³ÖĦ¶û¶¨ÂÉ£¬¶àºËÊDZØÈ»Ñ¡Ôñ¡£¶ø¶àºË¶ÔÓÚÔÚCPUƵÂÊÉÏÊÜÖÆÓÚIntelµÄÉè¼Æ³§É̶øÑÔ£¬ÊǸϳ¬IntelµÄ´óºÃ»ú»á£¬IBM¾Íͨ¹ýCELL B.E.´¦ÀíÆ÷Ò»¾Ù³¬¹ýÁËIntel¶ÔÓÚ×î¸ßÖ÷Ƶ´¦ÀíÆ÷µÄ¢¶Ï¡£µ«ÊdzÏÐĶøÂÛ£¬Èç¹ûÓÃÒ»¸öCELL×÷Ò»¸ölaptopµÄcpu£¬¸úP4 3.2µÄlaptopÏà±È£¬ËÙ¶ÈÉÏÃæÒ²²»»áÓÐÓÅÊÆ£¬ÔÒò¾ÍÊÇÄãºÜÄѰÑÕâЩ´¦ÀíÆ÷ºÜºÃµØÐµ÷ÀûÓÃÆðÀ´¡£
¡¡¡¡½â¾öÕâ¸öÎÊÌâÓÐ2¸ö·½°¸£¬Ò»ÊÇ¿ª·¢Äܹ»ºÜºÃµØÖ§³Ö²¢·¢Ö´ÐеıàÒëÆ÷£¬¾ÍÊÇÄܹ»°Ñ´®ÐеijÌÐò±àÒë³É²¢·¢Ö´ÐУ¬µ«ÊǾÍĿǰ¶øÑÔ£¬ÈÔÈ»ÊÇÒ£Ò£ÎÞÆÚ£¬¼´Ê¹ÊǺųÆÏÂÒ»´ú±àÒëÆ÷¼¼ÊõµÄLLVMÄ¿Ç°ËÆºõÒ²Ö»ÊÇÔÚ°²È«ÐÔÉÏÃæÏ¹¦·ò£¬Ìṩ¸üºÃµÄGC»úÖÆ£¬¶ÔÓÚ²¢ÐеÄÎÊÌ⣬ÈÔÈ»Î޽⡣µÚ¶þ¸ö¾ÍÊDzÙ×÷ϵͳ¼¼Êõ£¬²Ù×÷ϵͳ¿ÉÒÔ°ÑÏ̷߳ÖÅäµ½²»Í¬µÄ´¦ÀíÆ÷ÉÏ£¬²¢ÇÒ¿ÉÒÔÔÊÐíÏß³ÌÔÚ²»Í¬µÄ´¦ÀíÆ÷Ö®¼äÇ¨ÒÆÒÔÆ½ºâ¸ºÔØ£¨¶ÔÓÚSMP),Èç¹û²Ù×÷ϵͳ¿ÉÒÔʶ±ðÈÎÎñµÄÀàÐÍ£¬¸ù¾ÝÀàÐÍ×Ô¶¯·ÖÅäµ½¶ÔÓ¦µÄд¦ÀíÆ÷Ö´ÐУ¬ÕâÒ²¿ÉÒÔËã×÷ÊDz¢·¢µÄÒ»¸öÕÛÖÔ¡£ËùÒÔ£¬½â¾ö¶àºËµÄ²¢·¢ÎÊÌâÖ»ÄÜ´Ó²Ù×÷ϵͳÉÏÈ¥×ÅÊÖ¡£
¡¡¡¡ÔÙÀ´¿´¿´Äܹ»Ó°Ïì²Ù×÷ϵͳδÀ´·¢Õ¹µÄ2¸öÖ÷Òª½ÇÉ«£ºÎ¢ÈíºÍIBM¡£Î¢ÈíÔÚ²Ù×÷ϵͳÁìÓòµÄÑо¿ÏîÄ¿ËÆºõ²»¶à£¬Microsoft researchµÄosÏÂÃæÖ»ÓÐÒ»¸öÏîÄ¿£singularity£¬ singularityÊÇÒ»¸öÓÃc#¿ª·¢µÄ΢ÄÚºËos£¬×÷Ϊһ¸öÔÐÍϵͳ£¬sigularityÓÐÒÔÏÂÌØµã£ºmicro kernel, type-safe language, process isolation, garbage collection, pure fast message-based communication (no share memory), code static analysis¡£×ÜÖ®£¬ÕâÊÇÒ»¸öÁîÈ˶úĿһеÄϵͳ£¬¸úÒÔǰµÄwindowsÍêÈ«²»Í¬£¬»¹ÓУ¬ÌرðÖ¸³öµÄÊÇ£¬sigularityÊÇopen source project, 1.0ÒѾÍê³É£¬¿ÉÒÔ×ÔÓÉÏÂÔØÊ¹Óá£
¡¡¡¡ÔÙÀ´¿´¿´IBM×îеijɹû£¬Bluegene OSºÍK42¡£ÍøÂçÉÏBluegeneÊǸöÃûÈË£¬µ½´¦¶¼ÓС±À¶É«»ùÒò¡°µÄÍþÃû£¬ÏµÍ³ÉÐδÍê³ÉÖ®¼Ê±ãÐÛ¾áTOP500Ö®Êס£µ«ÊÇBluegnene OS̸µÄºÜÉÙ£¬¼¸ºõûÓС£K42×÷ΪIBMµÄÑо¿ÏîÄ¿£¬ÒѾ±»Í£Ö¹£¬µ«ÊÇ´ó¼ÒÇмǣ¬¶ÔÓÚÈçIBMÕâ°ãµÄÅÓÈ»´óÎËûÃǵÄÑо¿ÏîÄ¿ÍùÍù¾ßÓÐÒ»¶¨³Ì¶ÈÉϵķçÏò±êµÄ×÷Óá£K42ÊÇÒ»¸öÃæÏòNUMA¼Ü¹¹¡¢¹²ÏíÄÚ´æÄ£Ê½SMPÒÔ¼°¸ßÀ©Õ¹ÐÔµÄ΢Äں˲Ù×÷ϵͳ£¬ËüÊÇÓÉIBM WastonÑо¿ÖÐÐÄ¡¢¼ÓÄôó¶àÂ×¶à´óѧºÍÃÀ¹úÐÂÄ«Î÷¸ç´óѧ¹²Í¬¿ª·¢£¬K42¾ßÓÐÒ»¸öСµÄºËÐÄ£¬ÌṩÒì³£´¦Àí£¬IPCµÈ¹¦ÄÜ¡£Ä¿Ç°K42Ö»ÊÇÖ§³ÖPPC64ºÍPPC42£¬Ò²¿ÉËãÊÇIBMרÓÃϵͳ£¬ÆäÄ¿±êÊÇʹÓÃ΢Äں˺ËÐÄ£¬ÌṩLinux ABI¡£Ëü´ÓÒ»¿ªÊ¼£¬¾ÍÃæÏòÉϰٸöCPU£¬²¢ÇÒÌṩ¿É¿¿ÐÔ£¬À©Õ¹ÐÔ£¬ÈÝ´íÐÔ£¬Â³°ôÐÔ¡£Õâ¸öϵͳӦ¸ÃÃæÏòCELLµÄÔÐͲÙ×÷ϵͳ¡£
¡¡¡¡ÔÙÀ´¿´¿´Bluegene OS£¬BluegeneÊÇ·Ö²¼Ê½¼¯ÈºÏµÍ³£¬ÎªÁËÌá¸ßЧÂÊ£¬BluegeneÀïÃæµÄ½Úµã·ÖΪÁ½ÀࣺC£Node£¨¼ÆËã½áµã£©£¬IO Node(Êä³öÊäÈë½áµã)¡£C-NodeÊÇÒ»¸öÖ§³ÖMPI±à³ÌµÄ΢ÄÚºËϵͳ£¬×¨ÃÅÓÃÓÚÔËË㣬IO NodeÊÇLinuxϵͳ£¬ÌṩÎļþϵͳ£¬ÓÃÓÚÊäÈëÊä³ö¡£ÆäÉè¼ÆË¼Â·ÓУºÑϸñµÄ¿Õ¼ä¹²Ïí£¬±ÜÃâTLB MIssºÍPage Fault(pinned memory).
¡¡¡¡Òò´Ë£¬Î´À´µÄ²Ù×÷ϵͳ£¬±ØÈ»»á×ßÏòMicrokernel+MonolithicµÄ»ìÔÓģʽ£¬ÔÚÕâÖÖÇé¿ö£¬¼´¿ÉÒÔÀûÓÃMonolithicÉÏÃæ·á¸»µÄÈí¼þ×ÊÔ´£¬ÓÖ¿ÉÒÔÀûÓÃMicrokernelµÄ°²È«Îȶ¨ÐÔ¡£
¡¡¡¡¹ØÓÚLinux£¬ÎÒ¸öÈ˵Ĺ۵ãÊÇLinuxÄں˵ķ¢Õ¹Ô½À´Ô½¶àµØ±»ÒÔIBM£¬Redhat£¬SUSE£¬IntelΪÊ׵Ĵó¹«Ë¾ËùÕÆÎÕ£¬ËùÒÔ½ñºóLinuxÄں˵ķ¢Õ¹½«¿ÉÄÜÏòÒ»ÖÖForumÐÎʽ¹ý¶É£¬±Ï¾¹Linus¸öÈ˶ÔÓÚÄں˼ܹ¹µÄ°Ñ³ÖÒ²²»¿ÉÄÜÓÀÔ¶³ÖÐøÏÂÈ¥£¬ÐèÒªÐγÉÒ»Ì×ÓÐЧµÄ»úÖÆÊ¹Äں˹¦Äܵľö²ßÖÈÐò»¯£¬³ÉΪITUÄÇÑùµÄÁªÃË£¬È»ºó¸÷¸ö´ú±íͶƱ±í¾öÊÇ×îºÃµÄÑ¡Ôñ¡£µ«ÊÇ£¬Èç¹ûÐγÉÕâÑùµÄ±í¾ö»úÖÆ£¬¶ÔÓÚÖйúÈËÀ´Ëµ£¬ÎÒÃǾ¿¾¹Äܹ»Õ¼¼¸Æ±Ò²´æÔÚÒÉÎÊ¡£Ã»ÓÐÄں˴úÂë¹±Ï×£¬¾ÍûÓÐͶƱ±í¾öȨ£¬Ã»Óз¢ÑÔȨ£¬Ìá½»µÄÄں˴úÂë±»²ÉÄɵĿÉÄÜÐÔ¾ÍÔ½À´Ô½µ×£¬ÐγÉÒ»¸ö¶ñÐÐÑ»·£¬×îÖÕÖйúµÄ¿ªÔ´°®ºÃÕ߾ͳÉÁËËûÃÇÃâ·ÑµÄ¡±Ð¡°×Êó¡°£¬ÎÒÃÇ×Î×β»¾ëµØÌá½»patch£¬±¨¸æbug£¬µ«ÊÇÄں˵ķ¢Õ¹£¬ÎÒÃÇÖ»ÄÜÑÛÕöÕöµØ¿´×Å¡£ÖйúµÄTD£CDMAÔÚITUÉϵļèÄѾÍÊÇǰ³µÖ®¼ø£¬µ«ÊDZϾ¹TD£CDMAÊÇÒ»¸ö³ÉÐ͵ıê×¼£¬ÎÒÃÇ»¹ÖÁÉÙÓкËÐļ¼ÊõÔÚÀïÃæ£¬ËùÒÔÒ²²»ËãÌ«²Ò¡£µ«ÊÇLinux£¬ÊÇ·ñ»á·¢Õ¹³ÉÁíÒ»¸öÀàËÆITUµÄ×éÖ¯£¬ÎÒÃÇÊÃÄ¿ÒÔ´ý¡£