ÔËÐÐʱ¼ä¡¢°æ±¾ºÅ¡¢ËùÓнø³ÌÐÅÏ¢¡¢CPUʹÓÃÂʵȣ©£¬²¢ÒԱȽÏÈÝÒ׵ķ½Ê½ÏÔʾ¡£
Èý¡¢ÊµÑé¹ý³Ì¼°½á¹û
1.ÅäÖÃÍøÂç»·¾³£ºÔÚ£¨·þÎñ.cmd£©.ÀïÃæ½øÐÐÒÔϲÙ×÷£ºÔÚ·þÎñÀïÑ¡Ôñ3°´»Ø³µ Íê³Éºó£¬¿ÉÔÚ±¾µØÁ¬½Ó¿´µ½VMwareÒÑÁ¬½ÓÉÏÍøÂç ÔÚÐéÄâ»úÉèÖÃÖÐÉèÖÃÒÔÌ«ÍøÍøÂçÁ¬½Ó·½Ê½Îª
Íø¹ØµØÖ·ÌîÐéÄâ»úµÄÍø¹Ü£¬IPµØÖ·ÉèΪÐéÄâ»úµÄÒ»¸ö×ÓÍø£º ËÄ¡¢×ܽ᣺ ÔÚlinuxϵͳÏ£¬makeÊÇÎÒÃǾ³£Óõ½µÄ±àÒëÃüÁËùÒÔ¹ØÓÚmake´úÂëºÍËûµÄ²Ù×÷Ö¸ÁîÒ»¶¨Òª¼ÇÇå³þ¡£ËùÒÔ£¬ÊìÁ·ÕÆÎÕÁËmakeºÍmakefile¹¤¾ßÖ®ºó£¬Ô´Âë°²×°Èí¼þ¾Í±äµÄÏñwindowsϰ²×°Èí¼þÒ»Ñù¼òµ¥¡£ ʵÑéËĽø³Ì¿ØÖÆÓë¹ÜÀí Ò»¡¢ÊµÑéÄ¿µÄ 1. ÕÆÎÕGCC±àÒëÆ÷µÄÓ÷¨£¬Ñ§»áÀûÓÃGCC±à¼Æ÷À´±à¼CÓïÑÔ³ÌÐò£¬Ñ§»áÀûÓÃGDBµ÷ÊÔÆ÷À´µ÷ÊÔCÓïÑÔ³ÌÐò¡£ 2. Àí½â½ø³ÌºÍ³ÌÐòµÄÇø±ðºÍÁªÏµ£¬ 3. ÕÆÎÕÔÚLinux»·¾³ÏÂ¹Û²ì½ø³ÌÔËÐÐÇé¿öºÍCPU¹¤×÷Çé¿öµÄÃüÁî¡£ 4. Á˽âfork()ϵͳµ÷Óã¬ÕÆÎÕÀûÓÃfork()´´½¨½ø³ÌµÄ·½·¨¡£ 5. Á˽âLinuxϵͳÆäËûÓë½ø³ÌÏà¹ØµÄϵͳµ÷Óã¬Èçexec¡¢waitºÍexitµÈ¡£ 6. Á˽âLinux³£ÓõĽø³ÌͨÐÅ»úÖÆ¡£ ¶þ¡¢ÊµÑéÄÚÈÝ
1. ÀûÓÃLinuxµÄ½ø³Ì¹ÜÀíÃüÁîps¡¢topÀ´¼àÊӺ͸ú×Ù½ø³Ì£¬Ìå»á½ø³ÌºÍ³ÌÐòµÄ
¹ØÏµ¡£
2. ÀûÓÃLinuxµÄÎÄ×Ö±à¼Æ÷±àдÎļþ¸´ÖƵÄCÓïÑÔ³ÌÐò£¬²¢ÓÃgcc±àÒë¸Ã³ÌÐò£¬
È»ºóÔËÐиóÌÐò¡£
3. ±àдһ¶Î³ÌÐò£¬Ê¹ÓÃϵͳµ÷ÓÃfork()´´½¨Á½¸ö×Ó½ø³Ì¡£µ±´Ë³ÌÐòÔËÐÐʱ£¬
ÔÚϵͳÖÐÓÐÒ»¸ö¸¸½ø³ÌºÍÁ½¸ö×Ó½ø³Ì»î¶¯¡£ÈÃÿһ¸ö½ø³ÌÔÚÆÁÄ»ÉÏÏÔʾһ¸ö×Ö·û£º¸¸½ø³ÌÏÔʾ'a'£¬×Ó½ø³Ì·Ö±ðÏÔʾ×Ö·û'b'ºÍ×Ö·û'c'¡£ÊÔ¹Û²ì¼Ç¼ÆÁÄ»ÉϵÄÏÔʾ½á¹û£¬²¢·ÖÎöÔÒò¡£
4. ÐÞ¸ÄÉÏÊö³ÌÐò£¬Ã¿Ò»¸ö½ø³ÌÑ»·ÏÔʾһ¾ä»°¡£×Ó½ø³ÌÏÔʾ'daughter¡'
¼°'son¡¡'£¬¸¸½ø³ÌÏÔʾ'parent¡¡'£¬¹Û²ì½á¹û£¬·ÖÎöÔÒò¡£ 5. ÓÃfork()´´½¨Ò»¸ö½ø³Ì£¬ÔÙµ÷ÓÃexec()ÓÃеijÌÐòÌæ»»¸Ã×Ó½ø³ÌµÄÄÚÈÝ¡£
Èý¡¢ÊµÑé¹ý³Ì¼°½á¹û 1¡¢ÀûÓÃLinuxµÄ½ø³Ì¹ÜÀíÃüÁîps¡¢topÀ´¼àÊӺ͸ú×Ù½ø³Ì£¬Ìå»á½ø³ÌºÍ³ÌÐòµÄ¹ØÏµ¡£ <1>´ÓÓû§Éí·ÝÇл»µ½ROOTÉí·Ý <2>ÊäÈëÃüÁîps²é¿´½ø³Ì <2>ÊäÈëÃüÁîtop¸ú×Ù½ø³Ì 2¡¢ÀûÓÃLinuxµÄÎÄ×Ö±à¼Æ÷±àдһ¸ö¼ÆËã»ú100¸ö×ÔÈ»ÊýºÍµÄCÓïÑÔ³ÌÐò£¬²¢ÓÃgcc±àÒë¸Ã³ÌÐò£¬È»ºóÔËÐиóÌÐò¡£ <1>´´½¨Ò»¸ö.CÎļþ²¢½øÈë½øÐб༠<2>ÓÃGCC½øÐбàÒ룬Ôٲ鿴Îļþ£¬·¢ÏÖ²úÉúÖ´ÐÐÎļþa.out <3>Ö´ÐÐÕâ¸ö¿ÉÖ´ÐÐÎļþµÃµ½½á¹û5050 1¡¢±àдһ¶Î³ÌÐò£¬Ê¹ÓÃϵͳµ÷ÓÃfork()´´½¨Á½¸ö×Ó½ø³Ì¡£µ±´Ë³ÌÐòÔËÐÐʱ£¬ÔÚϵͳÖÐÓÐÒ»¸ö¸¸½ø³ÌºÍÁ½¸ö×Ó½ø³Ì»î¶¯¡£ÈÃÿһ¸ö½ø³ÌÔÚÆÁÄ»ÉÏÏÔʾһ¸ö×Ö·û£º¸¸½ø³ÌÏÔʾ'a'£¬×Ó½ø³Ì·Ö±ðÏÔʾ×Ö·û'b'ºÍ×Ö·û'c'¡£ÊÔ¹Û²ì¼Ç¼ÆÁÄ»ÉϵÄÏÔʾ½á¹û£¬²¢·ÖÎöÔÒò¡£ <1>´©¼þÒ»¸ö.CÎļþ²¢½øÐбàд³ÌÐò´úÂë <2>·´¸´Ö´ÐÐ2´Î¸Ã³ÌÐò
<3>¿ÉÒÔ¿´³öÁ½´ÎÖ´ÐеĽá¹ûabc³öÏÖµÄ˳Ðò²»Í¬£¬ÔÒòÊÇ£¬3¸ö½ø³ÌµÄÊä³ö´ÎÐòÊÇËæ»úµÄ£¬²¢²»»á°´¹æ¶¨µÄ˳Ðò³öÏÖ£¬ËùÒÔ»á³öÏÖÉÏÊö½á¹û¡£
4¡¢ÐÞ¸ÄÉÏÊö³ÌÐò£¬Ã¿Ò»¸ö½ø³ÌÑ»·ÏÔʾһ¾ä»°¡£×Ó½ø³ÌÏÔʾ'daughter¡'¼°'son¡¡'£¬¸¸½ø³ÌÏÔʾ'parent¡¡'£¬¹Û²ì½á¹û£¬·ÖÎöÔÒò¡£ <1>ÖØÐÂÐ޸ĴúÂë
<3>Ö´ÐÐÕâ¶Î³ÌÐò <4>Ô·ÖÎö£º
ÒòºÍ֮ǰһÑù£¬¿ÉÒÔ¿´³öÖ´ÐеĽá¹û3¸öµ¥´Ê³öÏÖµÄ˳Ðò²»Í¬£¬ÔÒòÊÇ£¬ 3¸ö½ø³ÌµÄÊä³ö´ÎÐòÊÇËæ»úµÄ£¬²¢²»»á°´¹æ¶¨µÄ˳Ðò³öÏÖ£¬ËùÒÔ»á³öÏÖÉÏÊö½á¹û¡£ 5¡¢ÓÃfork()´´½¨Ò»¸ö½ø³Ì£¬ÔÙµ÷ÓÃexec()ÓÃеijÌÐòÌæ»»¸Ã×Ó½ø³ÌµÄÄÚÈÝ¡£ <1>
±àд´úÂë <2>
Ö´ÐеĽá¹û ½á¹û±íÃ÷execlÌæ´úÁË£ó£ï£îµÄÄÚÈÝ ËÄ¡¢ÊµÑé×ܽáºÍÌå»á Õâ¸öʵÑ鿼²ìµÄÊǽø³ÌÖ®¼ä´æÔںܶà¿ÉÄÜÐÔÒÔ¼°¶Ô±à¼Æ÷µÄʹÓᣱ¾´ÎʵÑéѧϰÁËÔÚlinux»·¾³ÏÂÓÃgcc±àÒëÆ÷ÔËÐÐcÓïÑÔ³ÌÐò£¬ÔÚlinux»·¾³Ï±àд³ÌÐòÓõ½ÁËvi±à¼Æ÷£¬ÖªµÀÁË¸Ã±à¼Æ÷Ò²ÐèÒª¸÷ÖÖÃüÁîÀ´²Ù×÷¡£±àдCÓïÑÔ³ÌÐòʱÓõ½ÁËfork()º¯Êý£¬ÔÙµ÷ÓÃexecl()ÓÃеijÌÐòÌæ»»¸Ã×Ó½ø³ÌµÄÄÚÈÝ¡£ ʵÑéÎå½ø³Ìµ÷¶ÈÄ£Äâ³ÌÐòµÄÉè¼ÆÓëʵÏÖ Ò»¡¢ÊµÑéÄ¿µÄ 1. ÁË½â½ø³Ìµ÷¶ÈµÄ¸ÅÄî£¬ÕÆÎÕ³£Óýø³Ìµ÷¶ÈËã·¨µÄÔÀí¡£ 2. ÕÆÎÕLinux³ÌÐòÉè¼Æ±à¼¡¢±àÒëºÍµ÷ÊԵļ¼ÇÉ¡£ ¶þ¡¢ÊµÑéÄÚÈÝ 1. ±àд³ÌÐòʵÏÖ½ø³Ìµ÷¶Èµ÷¶ÈËã·¨ÏÈÀ´ÏÈ·þÎñ¡¢ÓÅÏȼ¶¸ßÓÅÏȺÍʱ¼äƬÂÖתµ÷¶ÈËã·¨¡££¨±à³ÌÓïÑÔ²»ÏÞ£© 2. ÊäÈëÊý¾Ý£¬Êä³öÔËÐнá¹û¡£ Èý¡¢ÊµÑé¹ý³Ì¼°½á¹û
1ÏÈÀ´ÏÈ·þÎñ?
££i?nclude
?int?id;?
float?ArriveTime;? float?RequestTime; ?float?StartTime;? float?EndTime; ?float?RunTime;? float?DQRunTime; ?int?Status;? }arrayTask[4]; GetTask() ?{ ?int?i;? float?a;? for(i=0;i<4;i++)? {arrayTask[i].id=i+1; ?printf(\printf(\scanf(\arrayTask[i].ArriveTime=a;? printf(\?scanf(\arrayTask[i].RequestTime=a; ?arrayTask[i].StartTime=0; ?arrayTask[i].EndTime=0;? arrayTask[i].RunTime=0;? arrayTask[i].Status=0;? ?}? }? int?fcfs()? ?{?? int?i,j,w=0;?
for(i=0;i<4;i++)?? {??
if(arrayTask[i].Status==0)? ?{??
t=arrayTask[i].ArriveTime;?? w=1;? ?}?? if(w==1)
??break;? ?}??
for(i=0;i<4;i++)? ??{??
if(arrayTask[i].ArriveTime ?for(i=0;i<4;i++)? ?{?? if?(arrayTask[i].ArriveTime==t)?? return?i;? ?}?? }?? int?sjf() {? int?i,x=0,a=0,b=0; ?float?g;? for(i=0;i<4;i++)? {? if(arrayTask[i].Status==1)? {g=arrayTask[i].EndTime; ?x=1;? }? }? if(x==0){? t=arrayTask[0].ArriveTime;? for(i=0;i<4;i++) ?{? if(arrayTask[i].ArriveTime for(i=0;i<4;i++)? { if(arrayTask[i].EndTime>g)? g=arrayTask[i].EndTime; ?}? for(i=0;i<4;i++)?