ºìÁªLinuxÃÅ»§
Linux°ïÖú

LINUXÄÚºËÖ¸µ¼Ö®Ò»

·¢²¼Ê±¼ä:2008-01-07 00:53:30À´Ô´:ºìÁª×÷Õß:lighsr
¡¡¡¡LINUXÖÐÈÏΪÏ߳̾ÍÊǹ²ÏíÉÏÏÂÎĵģ¨CONTEXT£©µÄ½ø³Ì£¬¿ÉÒÔͨ¹ý·Ç±ê×¼µÄϵͳµ÷ÓÃclone()À´´¦Àí¡£

¡¡¡¡ÉÏÏÂÎļòµ¥À´Ëµ¾ÍÊÇÒ»¸ö»·¾³£¬Ïà¶ÔÓÚ½ø³Ì¶øÑÔ£¬¾ÍÊǽø³ÌÖ´ÐÐʱµÄ»·¾³¡£¾ßÌåÀ´Ëµ¾ÍÊǸ÷¸ö±äÁ¿ºÍÊý¾Ý£¬°üÀ¨ËùÓеļĴæÆ÷±äÁ¿£¬½ø³Ì´ò¿ªµÄÎļþ£¬ÄÚ´æÐÅÏ¢µÈ¡£Ò»¸ö½ø³ÌµÄÉÏÏÂÎÄ¿ÉÒÔ·ÖΪÈý¸ö²¿£ºÓû§¼¶µÄÉÏÏÂÎÄ£¬¼Ä´æÆ÷µÄÉÏÏÂÎĺÍϵͳ¼¶µÄÉÏÏÂÎÄ¡£

¡¡¡¡Óû§¼¶ÉÏÏÂÎÄ£ºÕýÎÄ£¬Êý¾Ý£¬Óû§Õ»ÒÔ¼°¹²Ïí´æ´¢Çø£»¼Ä´æÆ÷ÉÏÏÂÎÄ£ºÍ¨ÓüĴæÆ÷£¬³ÌÐò¼Ä´æÆ÷£¨IP£©£¬´¦Àí»ú״̬¼Ä´æÆ÷£¨EFLAGS£©£¬Õ»Ö¸Õ루ESP£©£»ÏµÍ³¼¶ÉÏÏÂÎÄ£º½ø³Ì¿ØÖƿ飨task_struct£©£¬ÄÚ´æ¹ÜÀíÐÅÏ¢£¨mm_struct,vm_area_struct,pgd,pmd,pteµÈ£©£¬ºËÐÄÕ»µÈ¡£

¡¡¡¡µ±·¢Éú½ø³Ìµ÷¶Èʱ£¬½øÐеĽø³ÌÇл»¾ÍÊÇÉÏÏÂÎÄÇл»£¨context switch£©£¬²Ù×÷ϵͳ±ØÐë¶ÔÉÏÃæÌáµ½µÄÈ«²¿ÉÏÏÂÎÄÐÅÏ¢½øÐÐÇл»£¬Ðµ÷¶È²ÅÄÜÔËÐС£

¡¡¡¡¶øϵͳµ÷ÓýøÐеÄÊÇģʽÇл»£¨mode switch£©¡£Ä£Ê½Çл»Óë½ø³ÌÇл»±È½ÏÆðÀ´£¬ÒªÈÝÒ׵Ķ࣬¶øÇÒ½Úʡʱ¼ä£¬ÒòΪģʽÇл»×îÖ÷ÒªµÄÈÎÎñÖ»ÊǽøÐмĴæÆ÷¼¶µÄÉÏÏÂÎÄÇл»¡£
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 0 ÌõÆÀÂÛ