¡¶²Ù×÷ϵͳ½Ì³Ì¡·ÄÏÓÊÕýʽ°æ
ϰÌâ½â´ð
µÚÈýÕ ½ø³Ì¹ÜÀíÓëµ÷¶ÈϰÌâ
1¡¢Ê²Ã´ÊǶàµÀ³ÌÐòÉè¼Æ£¿¶àµÀ³ÌÐòÉè¼ÆÀûÓÃÁËϵͳÓëÍâΧÉ豸µÄ²¢Ðй¤×÷ÄÜÁ¦£¬´Ó¶øÌá¸ß¹¤×÷ЧÂÊ£¬¾ßÌå±íÏÖÔÚÄÄЩ·½Ã棿 ´ð£º
Èöà¸ö¼ÆËãÎÊÌâͬʱװÈëÒ»¸ö¼ÆËã»úϵͳµÄÖ÷´æ´¢Æ÷²¢ÐÐÖ´ÐУ¬ÕâÖÖÉè¼Æ¼¼Êõ³Æ¡° ¶àµÀ³ÌÐòÉè¼Æ ¡±£¬ÕâÖÖ¼ÆËã»úϵͳ³Æ¡°¶àµÀ³ÌÐòÉè¼ÆÏµÍ³¡± »ò¼ò³Æ¡°¶àµÀϵͳ¡±¡£ÔÚ¶àµÀ³ÌÐòÉè¼ÆµÄϵͳÖУ¬Ö÷´æ´¢Æ÷ÖÐͬʱ´æ·ÅÁ˶à¸ö×÷ÒµµÄ³ÌÐò¡£Îª±ÜÃâÏ໥¸ÉÈÅ£¬±ØÐëÌṩ±ØÒªµÄÊÖ¶ÎʹµÃÔÚÖ÷´æ´¢Æ÷Öеĸ÷µÀ³ÌÐòÖ»ÄÜ·ÃÎÊ×Ô¼ºµÄÇøÓò¡£ Ìá¸ß¹¤×÷ЧÂÊ£¬¾ßÌå±íÏÖÔÚ£º
? ?
Ìá¸ßÁË´¦ÀíÆ÷µÄÀûÓÃÂÊ£»
³ä·ÖÀûÓÃÍâΧÉ豸×ÊÔ´£º¼ÆËã»úϵͳÅäÖöàÖÖÍâΧÉ豸£¬²ÉÓöàµÀ³ÌÐòÉè¼Æ²¢Ðй¤×÷ʱ£¬¿ÉÒÔ½«Ê¹Óò»Í¬É豸µÄ³ÌÐò´îÅäÔÚÒ»ÆðͬʱװÈëÖ÷´æ´¢Æ÷£¬Ê¹µÃϵͳÖи÷ÍâΧÉ豸¾³£´¦ÓÚæµ״̬£¬ÏµÍ³×ÊÔ´±»³ä·ÖÀûÓã»
? ·¢»ÓÁË´¦ÀíÆ÷ÓëÍâΧÉ豸ÒÔ¼°ÍâΧÉ豸֮¼äµÄ²¢Ðй¤×÷ÄÜÁ¦£»
´Ó×ÜÌåÉÏ˵£¬²ÉÓöàµÀ³ÌÐòÉè¼Æ¼¼Êõºó£¬¿ÉÒÔÓÐЧµØÌá¸ßϵͳÖÐ×ÊÔ´µÄÀûÓÃÂÊ£¬Ôö¼Óµ¥Î»Ê±¼äÄÚµÄËãÌâÁ¿£¬´Ó¶øÌá¸ßÁËÍÌÍÂÂÊ¡£ 2¡¢ÇëÃèÊö½ø³ÌµÄ¶¨ÒåºÍÊôÐÔ¡£ ´ð£º
½ø³ÌÊǾßÓжÀÁ¢¹¦ÄܵijÌÐò¹ØÓÚij¸öÊý¾Ý¼¯ºÏÉϵÄÒ»´ÎÔËÐл£¬ÊÇϵͳ½øÐÐ×ÊÔ´·ÖÅä¡¢µ÷¶ÈºÍ±£»¤µÄ¶ÀÁ¢µ¥Î»¡£
½ø³ÌµÄÊôÐÔÓУº½á¹¹ÐÔ?¹²ÏíÐÔ?¶¯Ì¬ÐÔ?¶ÀÁ¢ÐÔ?ÖÆÔ¼ÐÔ?²¢·¢ÐÔ 3¡¢ÇëÃèÊö½ø³ÌÓë³ÌÐòµÄÇø±ð¼°¹ØÏµ¡£ ´ð£º
1
³ÌÐòÊǾ²Ö¹µÄ£¬½ø³ÌÊǶ¯Ì¬µÄ¡£½ø³Ì°üÀ¨³ÌÐòºÍ³ÌÐò´¦ÀíµÄ¶ÔÏó£¨Êý¾Ý¼¯£©£¬½ø³ÌÄܵõ½³ÌÐò´¦ÀíµÄ½á¹û¡£½ø³ÌºÍ³ÌÐò²¢·ÇÒ»Ò»¶ÔÓ¦µÄ£¬Ò»¸ö³ÌÐòÔËÐÐÔÚ²»Í¬µÄÊý¾Ý¼¯ÉϾ͹¹³ÉÁ˲»Í¬µÄ½ø³Ì¡£Í¨³£°Ñ½ø³Ì·ÖΪ¡°ÏµÍ³½ø³Ì¡±ºÍ¡°Óû§½ø³Ì¡±Á½´óÀ࣬°ÑÍê³É²Ù×÷ϵͳ¹¦ÄܵĽø³Ì³ÆÎªÏµÍ³½ø³Ì£¬¶øÍê³ÉÓû§¹¦ÄܵĽø³ÌÔò³ÆÎªÓû§½ø³Ì¡£ 4¡¢½ø³ÌÓÐÄÄÈýÖÖ»ù±¾×´Ì¬£¿ÈýÖÖ½ø³Ì״̬ÈçºÎ±ä»¯£¿ ´ð£º
ͨ³££¬¸ù¾Ý½ø³ÌÖ´Ðйý³ÌÖв»Í¬Ê±¿ÌµÄ״̬£¬¿É¹éÄÉΪÈýÖÖ»ù±¾×´Ì¬£º
¡¤ µÈ´ý̬ £ºµÈ´ýij¸öʼþµÄÍê³É£» ¡¤ ¾ÍÐ÷̬ £ºµÈ´ýϵͳ·ÖÅä´¦ÀíÆ÷ÒÔ±ãÔËÐУ» ¡¤ ÔËÐÐ̬ £ºÕ¼Óд¦ÀíÆ÷ÕýÔÚÔËÐС£
½ø³ÌÔÚÖ´ÐÐÖÐ״̬»á²»¶ÏµØ¸Ä±ä£¬Ã¿¸ö½ø³ÌÔÚÈκÎʱ¿Ì×ÜÊÇ´¦ÓÚÉÏÊöÈýÖÖ»ù±¾×´Ì¬µÄijһÖÖ»ù±¾×´Ì¬£¬½ø³Ì״̬֮¼äת»»¹ØÏµ£º
ÔËÐÐ̬¡úµÈ´ý̬ ÍùÍùÊÇÓÉÓڵȴýÍâÉ裬µÈ´ýÖ÷´æµÈ×ÊÔ´·ÖÅä»òµÈ´ýÈ˹¤¸ÉÔ¤¶øÒýÆðµÄ¡£ µÈ´ý̬¡ú¾ÍÐ÷̬ ÔòÊǵȴýµÄÌõ¼þÒÑÂú×㣬ֻÐè·ÖÅäµ½´¦ÀíÆ÷ºó¾ÍÄÜÔËÐС£
ÔËÐÐ̬¡ú¾ÍÐ÷̬ ²»ÊÇÓÉÓÚ×ÔÉíÔÒò£¬¶øÊÇÓÉÍâ½çÔÒòʹÔËÐÐ״̬µÄ½ø³ÌÈóö´¦ÀíÆ÷£¬Õâʱºò¾Í±ä³É¾ÍÐ÷̬¡£ÀýÈçʱ¼äƬÓÃÍ꣬»òÓиü¸ßÓÅÏȼ¶µÄ½ø³ÌÀ´ÇÀÕ¼´¦ÀíÆ÷µÈ¡£
¾ÍÐ÷̬¡úÔËÐÐ̬ ϵͳ°´Ä³ÖÖ²ßÂÔÑ¡ÖоÍÐ÷¶ÓÁÐÖеÄÒ»¸ö½ø³ÌÕ¼Óô¦ÀíÆ÷£¬´Ëʱ¾Í±ä³ÉÁËÔËÐÐ̬¡£
5¡¢½ø³Ì¿ØÖÆ¿éÊÇʲô£¬ÓкÎ×÷Óã¿Í¨³£½ø³Ì¿ØÖÆ¿é°üº¬ÄÄЩÐÅÏ¢£¿ ´ð£º
½ø³Ì¿ØÖÆ¿é(Process Control Block,¼ò³ÆPCB)£¬ÊDzÙ×÷ϵͳΪ½ø³Ì·ÖÅäµÄÓÃÓÚ±êÖ¾½ø³Ì£¬¼Ç¼¸÷½ø³ÌÖ´ÐÐÇé¿öµÄ¡£½ø³Ì¿ØÖÆ¿éÊǽø³Ì´æÔڵıêÖ¾£¬Ëü¼Ç¼Á˽ø³Ì´Ó´´½¨µ½ÏûÍö¶¯Ì¬±ä»¯µÄ×´¿ö£¬½ø³Ì¶ÓÁÐʵ¼ÊÒ²Êǽø³Ì¿ØÖÆ¿éµÄÁ´½Ó¡£²Ù×÷ϵͳÀûÓýø³Ì¿ØÖÆ¿é¶Ô½ø³Ì½øÐпØÖƺ͹ÜÀí¡£
¡¤±êÖ¾ÐÅÏ¢ º¬Î¨Ò»µÄ½ø³ÌÃû
¡¤ËµÃ÷ÐÅÏ¢ Óнø³Ì״̬¡¢µÈ´ýÔÒò¡¢½ø³Ì³ÌÐò´æ·ÅλÖúͽø³ÌÊý¾Ý´æ·ÅλÖà ¡¤ÏÖ³¡ÐÅÏ¢ °üÀ¨Í¨ÓᢿØÖƺͳÌÐò״̬×ּĴæÆ÷µÄÄÚÈÝ ¡¤¹ÜÀíÐÅÏ¢ ´æ·Å³ÌÐòÓÅÏÈÊýºÍ¶ÓÁÐÖ¸Õë ½ø³Ì¿ØÖÆ¿éµÄ×÷ÓÃÓУº
2
? (1)¼Ç¼½ø³ÌµÄÓйØÐÅÏ¢£¬ÒÔ±ã²Ù×÷ϵͳµÄ½ø³Ìµ÷¶È³ÌÐò¶Ô½ø³Ì½øÐе÷¶È¡£ÕâЩÐÅÏ¢°üÀ¨±êÖ¾ÐÅÏ¢¡¢ËµÃ÷ÐÅÏ¢¡¢ÏÖ³¡ÐÅÏ¢ºÍ¹ÜÀíÐÅÏ¢µÈ£»
? (2)±êÖ¾½ø³ÌµÄ´æÔÚ£¬½ø³Ì¿ØÖÆ¿éÊǽø³Ì´æÔÚµÄΨһ±êÖ¾
6¡¢Ê²Ã´ÊÇ¿ÉÔÙÈë³ÌÐò£¿ ´ð£º
£¨1£© ʲôÊÇ ¿ÉÔÙÈë³ÌÐò ¡£ Ò»¸öÄܱ» ¶à¸öÓû§Í¬Ê±µ÷Óà µÄ³ÌÐò³Æ×ö\¿ÉÔÙÈë \µÄ³ÌÐò¡£ £¨2£© ¿ÉÔÙÈë³ÌÐòµÄÐÔÖÊ¡£
? ?
¿ÉÔÙÈë³ÌÐò±ØÐëÊÇ´¿´úÂ룬ÔÚÖ´ÐÐʱ×ÔÉí²»¸Ä±ä£»
Ò»¸ö¿ÉÔÙÈë³ÌÐòÒªÇóµ÷ÓÃÕßÌṩ¹¤×÷Çø£¬ÒÔ±£Ö¤³ÌÐòÒÔͬÑù·½Ê½Îª¸÷Óû§·þÎñ¡£
±àÒë³ÌÐò ºÍ ²Ù×÷ϵͳ³ÌÐò ͨ³£¶¼ÊÇ\¿ÉÔÙÈë\³ÌÐò£¬ÄÜͬʱ±»²»Í¬Óû§µ÷Óöø¹¹³É²»Í¬µÄ½ø³Ì¡£
7¡¢²ûÊö½ø³Ìµ÷¶ÈµÄ³£ÓÃËã·¨£ºÏÈÀ´ÏÈ·þÎñ¡¢ÓÅÏÈÊý·¨¡¢ÂÖת·¨¡£ ´ð£º
?
ÏÈÀ´ÏÈ·þÎñµ÷¶ÈËã·¨ ¸ÃËã·¨°´½ø³Ì½øÈë¾ÍÐ÷¶ÓÁеÄÏȺó´ÎÐòÑ¡Ôñ¿ÉÒÔÕ¼Óô¦ÀíÆ÷µÄ½ø³Ì¡£
? ÓÅÏÈÊýµ÷¶ÈËã·¨ ¶Ôÿ¸ö½ø³ÌÈ·¶¨Ò»¸öÓÅÏÈÊý£¬¸ÃËã·¨×ÜÊÇÈÃÓÅÏÈÊý×î¸ßµÄ½ø³ÌÏÈʹÓô¦ÀíÆ÷¡£¶Ô¾ßÓÐÏàͬÓÅÏÈÊýµÄ½ø³Ì£¬ÔÙ²ÉÓÃÏÈÀ´ÏÈ·þÎñµÄ´ÎÐò·ÖÅä´¦ÀíÆ÷¡£ÏµÍ³³£ÒÔÈÎÎñµÄ½ôÆÈÐÔºÍϵͳЧÂʵÈÒòËØÈ·¶¨½ø³ÌµÄÓÅÏÈÊý¡£½ø³ÌµÄÓÅÏÈÊý¿ÉÒԹ̶¨µÄ£¬Ò²¿ÉËæ½ø³ÌÖ´Ðйý³Ì¶¯Ì¬±ä»¯¡£ Ò»¸ö¸ßÓÅÏÈÊýµÄ½ø³ÌÕ¼Óô¦ÀíÆ÷ºó£¬ÏµÍ³´¦Àí¸Ã½ø³ÌʱÓÐÁ½ÖÖ·½·¨£¬Ò»ÊÇ\·ÇÇÀռʽ\£¬ÁíÒ»ÖÖÊÇ\¿ÉÇÀռʽ\¡£Ç°ÕßÊǴ˽ø³ÌÕ¼Óô¦ÀíÆ÷ºóÒ»Ö±ÔËÐе½½áÊø£¬³ý·Ç±¾ÉíÖ÷¶¯Èóö´¦ÀíÆ÷£¬ºóÕßÔòÊÇÑϸñ±£Ö¤ÈκÎʱ¿Ì×ÜÊÇÈÃÓÅÏÈÊý×î¸ßµÄ½ø³ÌÔÚ´¦ÀíÆ÷ÉÏÔËÐС£
? ʱ¼äƬÂÖתµ÷¶È·¨ °Ñ¹æ¶¨½ø³ÌÒ»´ÎʹÓô¦ÀíÆ÷µÄ×ʱ¼ä³ÆÎª\ʱ¼äƬ\¡£Ê±¼äƬÂÖתµ÷¶ÈËã·¨ÈþÍÐ÷½ø³Ì°´¾ÍÐ÷µÄÏȺó´ÎÐòÅųɶÓÁУ¬Ã¿´Î×ÜÑ¡Ôñ¸Ã¶ÓÁÐÖеÚÒ»¸ö½ø³ÌÕ¼Óô¦ÀíÆ÷£¬µ«¹æ¶¨Ö»ÄÜʹÓÃÒ»¸öʱ¼äƬ£¬Èç¸Ã½ø³ÌÉÐδÍê³É£¬ÔòÅÅÈë¶Ó⣬µÈ´ýÏÂÒ»¸ö¹©ËüʹÓõÄʱ¼äƬ¡£¸÷¸ö½ø³Ì¾ÍÕâÑùÂÖתÔËÐС£Ê±¼äƬÂÖתËã·¨¾³£ÓÃÓÚ·Öʱ²Ù×÷ϵͳÖС£
8¡¢³ÌÐò״̬×Ö°üº¬ÄÄЩÖ÷ÒªÄÚÈÝ? ´ð£º
(1)³ÌÐò»ù±¾×´Ì¬
3
(2)ÖжÏÂë (3)ÖÐ¶ÏÆÁ±Îλ
9¡¢±È½Ï½ø³Ìµ÷¶ÈÓë×÷Òµµ÷¶ÈµÄ²»Í¬µã¡£ ´ð£º
1£©×÷Òµµ÷¶ÈÊǺê¹Ûµ÷¶È£¬Ëü¾ö¶¨ÁËÄÄÒ»¸ö×÷ÒµÄܽøÈëÖ÷´æ¡£½ø³Ìµ÷¶ÈÊÇ΢¹Ûµ÷¶È£¬Ëü¾ö¶¨¸÷×÷ÒµÖеÄÄÄÒ»¸ö½ø³ÌÕ¼ÓÐÖÐÑë´¦Àí»ú¡££¨»ò£©×÷Òµµ÷¶ÈÊǸ߼¶µ÷¶È£¬ËüλÓÚ²Ù×÷ϵͳµÄ×÷Òµ¹ÜÀí²ã´Î¡£½ø³Ìµ÷¶ÈÊǵͼ¶µ÷¶È£¬ËüλÓÚ²Ù×÷ϵͳ·Ö²ã½á¹¹µÄ×îÄڲ㡣
£¨2£©×÷Òµµ÷¶ÈÊÇÑ¡·ûºÏÌõ¼þµÄÊÕÈÝ̬×÷Òµ×°ÈëÄÚ´æ¡£½ø³Ìµ÷¶ÈÊÇ´Ó¾ÍÐ÷̬½ø³ÌÖÐѡһ¸öÕ¼Óô¦Àí»ú¡£
10¡¢C³ÌÐò˵Ã÷ϵͳµ÷ÓÃfork()µÄÓ¦Óá£ÇëÔڢ٢ڢܴۢ¦ÌîÈëÓйظ¸¡¢×Ó½ø³ÌµÄÕýÈ·Óï¾ä£º £¯* Example to demonstrate the function of System Call fork *£¯ main() {
int i£» ¢Ù if(i)£¾0 {
printf(¡°¢Ú¡±) £» } else{
printf(¡°¢Û¡±) £» }
printf(¡°¢Ü¡±) £» }
Ö´Ðб¾³ÌÐòʱ£¬×Ó½ø³ÌÔÚ±ê×¼Êä³öÉÏ´òÓ¡ÒÔϽá¹û£º It is child process£® Exit£®
¸¸½ø³ÌÔÚ±ê×¼Êä³öÉÏ´òÓ¡ÒÔϽá¹û£º It is Parent process£® Exit£®
11¡¢µ¥µÀÅú´¦Àí»·¾³ÏÂÓÐ5¸ö×÷Òµ£¬¸÷×÷Òµ½øÈëϵͳµÄʱ¼äºÍ¹À¼ÆÔËÐÐʱ¼äÈçϱíËùʾ£º
4