LINUX SOCKET AIO ÎÊÌâ
дÁË´úÂ룬ʹÓÃace_proactor, ÔÀ´windowsÅܵ÷dz£Æ¯ÁÁ£¬À´µ½linux¾Íʱ²»Ê±²»¹¤×÷£¬È»ºó¼Óasynce_connectorºó£¬·¢ÏÖÍê³É²»Äܹ¤×÷£¬async_stream_writeºó£¬·¢ÏÖ¿¨ÔÚÄÇÀ¸ù±¾·¢²»³öÈ¥£¬¶à´Î·ÖÎöºó£¬·¢ÏÖ£¬ÔÀ´Ö®Ç°ÓÐaio_readûÓÐÍê³É£¬aio_writeµÄÇëÇó¾ÍblockÄÇÀïÁË£¬writeÕâ¸ö²Ù×÷¾¹È»Ò»¶¨ÒªµÈǰµÄaio_readÍê³ÉÖ®ºó£¬²Å¿ÉÒÔÖ´ÐС£ Ö¤¾ÝÈçÏÂ:
1.¿¨×¡µÄaio_write »á³ÉÉÏÍê³É£¬Èç¹ûsocket±»¶Ô·½¹Ø±Õ¡£
2.ÔÚaio_read֮ǰÉèÖÃsocketµÄģʽΪnonblocking, һʱwrite²Ù×÷³öÏÖ£¬aio_read ÂíÉÏÍê³É£¬²¢·µ»Ø´íÎóÂë EAGAIN£¬È»ºóaio_writeµÄÇëÇóÒ²¸øÍê³ÉÁË¡£
3.socketµÄģʽÔÚaceºÍIBMÓйصÄaioÎĵµÖиøÇ¿µ÷£¬must be ing blocking mode.
Ìì°¡£¡
³¢ÊÔÁËÔÚaio_write֮ǰÈç¹ûÓжÁ²Ù×÷£¬Ê¹ÓÃaio_cancel½øÐÐcancel²Ù×÷£¬²»ÐУ¬ÓÚÊÇÉèÖÃÁËnonblockingģʽȻºó¶øcancel£¬»¹ÊÇûÓÐÈκη´Ó¦¡£
¿´À´LINUXµÄAIOʵÏÖÕæÊǹ»Àõ쬶ÔÓÚSOCKET²Ù×÷µÄʵÏÖÍêȫʧ°Ü£¡
¼ÙÉèÒÔÏÂÇéÐΣº
1.server ¹ã²¥Êý¾Ý¸ø¿Í»§¶Ë£¨µ÷ÓÃaio_write)£¬²¢ÇÒ·¢ËÍÁËÒ»ÌõÆÚÍûµÃµ½¿Í»§¶ËÏìÓ¦µÄÖ¸Áî(aio_read)£¬½á¹û¿Í»§¶Ë³¤ÆÚûÓÐÏìÓ¦£¬ÕâʱÎÒÏëÔÙ·¢Ò»Ìõ֪ͨÊý¾Ý¸ø¿Í»§¶Ë(µ÷ÓÃaio_write)£¬Õâ¸ö·¢Ë͵ÄÇëÇó¾Í¸øÄÚºËÀïblockסÔÚÄÇÀһֱ·¢²»³öÈ¥£¬ÒòΪËüÒªµÈÇ°ÃæÒ»¸öaio_readÍê³É, Ö±µ½¿Í»§¶ËÏìÓ¦ÁË»òÕßÊǶÏÏßÁË£¬ÕâµÚ¶þ¸öaio_write²Å»áÍê³É¡£
ÓôÃÆ°É¡£²¢ÇÒÄãÎÞ·¨È¡ÏûÕâÖÖ״̬£¬Õâ¸ösocket ¾ÍÍ£ÔÚÄÇÀïÁË¡£¡£¡£¡£
¶ÔÓÚserver¶ËÕâ¸ö»¹ºÃ¡£
Èç¹ûÄãµÄserver¶ËÓÖÐèÒªºÍÆäËüserver×÷ÁªÏµµÄʱºò£¬Äã¾ÍÂé·³ÁË£¬ÍêÈ«²»¿ÉÔ¤²â¡£
Ïà¹ØÎĵµ£º
1.2.2 LAPIC
ÊÕµ½À´×ÔIOAPICµÄÖжÏÏûÏ¢ºó£¬LAPIC»á½«¸ÃÖжϽ»ÓÉCPU´¦Àí¡£ºÍIOAPIC±È½Ï£¬LAPIC¾ßÓиü¶àµÄ¼Ä´æÆ÷ÒÔ¼°¸ü¸´ÔӵĻúÖÆ¡£µ«¶ÔÓÚ´¦ÀíÀ´×ÔIOAPICµÄÖжÏÏûÏ¢£¬×îÖØÒªµÄ¼Ä´æÆ÷»¹ÊÇIRR¡¢ISRÒÔ¼°EOI¡£
ͼ1-4ÏÔʾÁËx86ƽ̨ÉÏ£¬IRRºÍISRµÄ¸ñʽ£º
ͼ1-4 IRR¡¢ISR¹¹³É
ÓëPICÖеÄIRR¡¢ISR²»Í¬µÄÊÇ£¬LAPICµÄISR¡¢ ......
ǶÈëʽLinuxÆô¶¯·ÖΪÁ½¸ö²¿·Ö£¬ÏµÍ³Òýµ¼ÓëLinuxÆô¶¯¡£ÏµÍ³Òýµ¼½«Íê³ÉLinux×°ÈëÄÚ´æÇ°£¬³õʼ»¯CPUºÍÏà¹ØI/OÉ豸£¬²¢½«Linuxµ÷ÈëÄÚ´æµÄ¹¤×÷¡£ÏµÍ³Òýµ¼Ö÷ÒªÓÉBootLoaderʵÏÖ¡£ÔÚBootLoader½«LinuxÄں˵÷ÈëÄÚ´æÖ®ºó£¬½«È¨Á¦½»¸øLinuxKernel£¬½øÈëLinuxµÄÆô¶¯²¿·Ö¡£ÒÔÏÂÏêϸ·ÖÎöÆô¶¯µÄ¹ý³ÌÓëʹÓõÄÎļþ¡£
Ò»¡¢ÏµÍ³Òýµ¼ÓëBootLoa ......
Linux
ÏÂÉèÖö˿ÚȨÏÞµÄϵͳµ÷ÓÃÓÐÁ½¸ö£º
ioperm
ºÍ
iopl
¡£
Ò»¡¢
ioperm
ºÍ
iopl
½éÉÜ¡£
1.ioperm
¹¦ÄÜÃèÊö£º
Ϊµ÷Óýø³ÌÉèÖÃ
I/O
¶Ë¿Ú·ÃÎÊȨÄÜ¡£
ioperm
µÄʹÓÃÐèÒª¾ßÓг¬¼¶Óû§µÄȨÏÞ£¬Ö»ÓеͶ˵Ä
[0-0x3ff] I/O
¶Ë¿Ú¿É±»ÉèÖã¬ÒªÏëÖ¸¶¨¸ü¶à¶Ë¿ÚµÄȨÄÜ£¬¿ÉʹÓÃ
iopl
º¯Êý¡£ÕâÒ»µ÷ÓÃÖ»¿ÉÓÃÓ ......
Ŀ¼½á¹¹ÈçÏ£º
|
|---- YourProject
| |-------- WebRoot
| | |---- WEB ......