{"id":165,"date":"2006-06-20T00:35:41","date_gmt":"2006-06-20T00:35:41","guid":{"rendered":"http:\/\/fanhaijun.com\/?p=165"},"modified":"2026-04-07T14:04:14","modified_gmt":"2026-04-07T06:04:14","slug":"%e8%bf%9b%e7%a8%8b%e8%b0%83%e5%ba%a6","status":"publish","type":"post","link":"https:\/\/fanhaijun.com\/?p=165","title":{"rendered":"\u8fdb\u7a0b\u8c03\u5ea6"},"content":{"rendered":"<p><a href=\"\/wp-content\/uploads\/2006\/06\/20_004136_.doc\" title=\"\/wp-content\/uploads\/2006\/06\/20_004136_.doc\" target=\"_blank\">\u70b9\u51fb\u4e0b\u8f7d<\/a><br \/>#include&nbsp;&quot;stdio.h&quot;<br \/>#include&nbsp;&quot;stdlib.h&quot;<br \/>#include&nbsp;&quot;string.h&quot;<br \/>#include&nbsp;&quot;windows.h&quot;<br \/>#include&nbsp;&quot;iostream.h&quot;<br \/>typedef&nbsp;struct&nbsp;node<br \/>{<br \/>&nbsp;&nbsp;&nbsp;char&nbsp;name[10];&nbsp;&nbsp;\/*\u8fdb\u7a0b\u6807\u8bc6\u7b26*\/<br \/>&nbsp;&nbsp;&nbsp;int&nbsp;prio;&nbsp;&nbsp;&nbsp;\/*\u8fdb\u7a0b\u4f18\u5148\u6570*\/<br \/>&nbsp;&nbsp;&nbsp;int&nbsp;round;&nbsp;&nbsp;\/*\u8fdb\u7a0b\u65f6\u95f4\u8f6e\u8f6c\u65f6\u95f4\u7247*\/<br \/>&nbsp;&nbsp;&nbsp;int&nbsp;cputime;&nbsp;\/*\u8fdb\u7a0b\u5360\u7528CPU\u65f6\u95f4*\/<br \/>&nbsp;&nbsp;&nbsp;int&nbsp;needtime;&nbsp;\/*\u8fdb\u7a0b\u5230\u5b8c\u6210\u8fd8\u8981\u7684\u65f6\u95f4*\/<br \/>&nbsp;&nbsp;&nbsp;int&nbsp;count;&nbsp;&nbsp;\/*\u8ba1\u6570\u5668*\/<br \/>&nbsp;&nbsp;&nbsp;char&nbsp;state;&nbsp;\/*\u8fdb\u7a0b\u7684\u72b6\u6001*\/<br \/>&nbsp;&nbsp;&nbsp;struct&nbsp;node&nbsp;*next;&nbsp;\/*\u94fe\u6307\u9488*\/<br \/>}PCB;<br \/>PCB&nbsp;*finish,*ready,*tail,*run;&nbsp;\/*\u961f\u5217\u6307\u9488*\/<br \/>int&nbsp;N;&nbsp;\/*\u8fdb\u7a0b\u6570*\/<br \/>\/*\u5c06\u5c31\u7eea\u961f\u5217\u4e2d\u7684\u7b2c\u4e00\u4e2a\u8fdb\u7a0b\u6295\u5165\u8fd0\u884c*\/<br \/>void&nbsp;firstin()<br \/>{<br \/>&nbsp;&nbsp;&nbsp;run=ready;&nbsp;&nbsp;&nbsp;\/*\u5c31\u7eea\u961f\u5217\u5934\u6307\u9488\u8d4b\u503c\u7ed9\u8fd0\u884c\u5934\u6307\u9488*\/<br \/>&nbsp;&nbsp;&nbsp;run-&gt;state=&#39;R&#39;;&nbsp;&nbsp;&nbsp;\/*\u8fdb\u7a0b\u72b6\u6001\u53d8\u4e3a\u8fd0\u884c\u6001*\/<br \/>&nbsp;&nbsp;&nbsp;ready=ready-&gt;next;&nbsp;&nbsp;\/*\u5c31\u7eea\u961f\u5217\u5934\u6307\u9488\u540e\u79fb\u5230\u4e0b\u4e00\u8fdb\u7a0b*\/<br \/>}<br \/>\/*\u6807\u9898\u8f93\u51fa\u51fd\u6570*\/<br \/>void&nbsp;prt1(char&nbsp;a)<br \/>{<br \/>&nbsp;&nbsp;&nbsp;if(toupper(a)==&#39;P&#39;)&nbsp;\/*\u4f18\u5148\u6570\u6cd5*\/<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&quot;&nbsp;&nbsp;name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cputime&nbsp;&nbsp;needtime&nbsp;&nbsp;priority&nbsp;&nbsp;state\\n&quot;);<br \/>&nbsp;&nbsp;&nbsp;else\/*\u7b80\u5355\u65f6\u95f4\u7247\u8f6e\u8f6c\u6cd5*\/<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&quot;&nbsp;&nbsp;name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cputime&nbsp;&nbsp;needtime&nbsp;&nbsp;&nbsp;count&nbsp;&nbsp;&nbsp;round&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;state\\n&quot;);<br \/>}<br \/>\/*\u8fdb\u7a0bPCB\u8f93\u51fa*\/<br \/>void&nbsp;prt2(char&nbsp;a,PCB&nbsp;*q)<br \/>{<br \/>&nbsp;&nbsp;&nbsp;if(toupper(a)==&#39;P&#39;)&nbsp;&nbsp;\/*\u4f18\u5148\u6570\u6cd5\u7684\u8f93\u51fa*\/<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&quot;&nbsp;&nbsp;%-10s%-10d%-10d%-10d&nbsp;%c\\n&quot;,q-&gt;name,<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;q-&gt;cputime,q-&gt;needtime,q-&gt;prio,q-&gt;state);<br \/>&nbsp;&nbsp;&nbsp;else\/*\u8f6e\u8f6c\u6cd5\u7684\u8f93\u51fa*\/<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&quot;&nbsp;&nbsp;%-10s%-10d%-10d%-10d%-10d&nbsp;%-c\\n&quot;,q-&gt;name,<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;q-&gt;cputime,q-&gt;needtime,q-&gt;count,q-&gt;round,q-&gt;state);<br \/>}<br \/>\/*\u8f93\u51fa\u51fd\u6570*\/<br \/>void&nbsp;prt(char&nbsp;algo)<br \/>{<br \/>&nbsp;&nbsp;&nbsp;PCB&nbsp;*p;<br \/>&nbsp;&nbsp;&nbsp;prt1(algo);&nbsp;&nbsp;\/*\u8f93\u51fa\u6807\u9898*\/<br \/>&nbsp;&nbsp;&nbsp;if(run!=NULL)&nbsp;\/*\u5982\u679c\u8fd0\u884c\u6307\u9488\u4e0d\u7a7a*\/<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prt2(algo,run);&nbsp;\/*\u8f93\u51fa\u5f53\u524d\u6b63\u5728\u8fd0\u884c\u7684PCB*\/<br \/>&nbsp;&nbsp;&nbsp;p=ready;&nbsp;&nbsp;\/*B*\/<br \/>&nbsp;&nbsp;&nbsp;while(p!=NULL)\/\/\u8f93\u51fa\u5c31\u7eea\u961f\u5217PCB<br \/>&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prt2(algo,p);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p=p-&gt;next;<br \/>&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;p=finish;&nbsp;&nbsp;\/*\u8f93\u51fa\u5b8c\u6210\u961f\u5217\u7684PCB*\/<br \/>&nbsp;&nbsp;&nbsp;while(p!=NULL)<br \/>&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prt2(algo,p);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p=p-&gt;next;<br \/>&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;cin.get();&nbsp;&nbsp;\/*\u538b\u4efb\u610f\u952e\u7ee7\u7eed*\/<br \/>}<br \/>\/*\u4f18\u5148\u6570\u7684\u63d2\u5165\u7b97\u6cd5*\/<br \/>void&nbsp;insert1(PCB&nbsp;*q)<br \/>{<br \/>&nbsp;&nbsp;&nbsp;PCB&nbsp;*p1,*s,*r;<br \/>&nbsp;&nbsp;&nbsp;int&nbsp;b;<br \/>&nbsp;&nbsp;&nbsp;s=q;&nbsp;&nbsp;\/*\u5f85\u63d2\u5165\u7684PCB\u6307\u9488*\/<br \/>&nbsp;&nbsp;&nbsp;p1=ready;&nbsp;\/*\u5c31\u7eea\u961f\u5217\u5934\u6307\u9488*\/<br \/>&nbsp;&nbsp;&nbsp;r=p1;&nbsp;\/*r\u505ap1\u7684\u524d\u9a71\u6307\u9488*\/<br \/>&nbsp;&nbsp;&nbsp;b=1;<br \/>&nbsp;&nbsp;&nbsp;while((p1!=NULL)&#038;&#038;b)&nbsp;&nbsp;\/*\u6839\u636e\u4f18\u5148\u6570\u786e\u5b9a\u63d2\u5165\u4f4d\u7f6e*\/<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(p1-&gt;prio&gt;=s-&gt;prio)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r=p1;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p1=p1-&gt;next;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b=0;<br \/>&nbsp;&nbsp;&nbsp;if(r!=p1)&nbsp;&nbsp;\/*\u5982\u679c\u6761\u4ef6\u6210\u7acb\u8bf4\u660e\u63d2\u5165\u5728r\u4e0ep1\u4e4b\u95f4*\/<br \/>&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r-&gt;next=s;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;next=p1;<br \/>&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;else<br \/>&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;next=p1;&nbsp;&nbsp;\/*\u5426\u5219\u63d2\u5165\u5728\u5c31\u7eea\u961f\u5217\u7684\u5934*\/<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ready=s;<br \/>&nbsp;&nbsp;&nbsp;}<br \/>}<br \/>\/*\u8f6e\u8f6c\u6cd5\u63d2\u5165\u51fd\u6570*\/<br \/>void&nbsp;insert2(PCB&nbsp;*p2)<br \/>{<br \/>&nbsp;&nbsp;&nbsp;tail-&gt;next=p2;&nbsp;&nbsp;\/*\u5c06\u65b0\u7684PCB\u63d2\u5165\u5728\u5f53\u524d\u5c31\u7eea\u961f\u5217\u7684\u5c3e*\/<br \/>&nbsp;&nbsp;&nbsp;tail=p2;<br \/>&nbsp;&nbsp;&nbsp;p2-&gt;next=NULL;<br \/>}<br \/>\/*\u4f18\u5148\u6570\u521b\u5efa\u521d\u59cbPCB\u4fe1\u606f*\/<br \/>void&nbsp;create1(char&nbsp;alg)<br \/>{<br \/>&nbsp;&nbsp;&nbsp;PCB&nbsp;*p;<br \/>&nbsp;&nbsp;&nbsp;int&nbsp;i,time;<br \/>&nbsp;&nbsp;&nbsp;char&nbsp;na[10];<br \/>&nbsp;&nbsp;&nbsp;ready=NULL;&nbsp;\/*\u5c31\u7eea\u961f\u5217\u5934\u6307\u9488*\/<br \/>&nbsp;&nbsp;&nbsp;finish=NULL;&nbsp;&nbsp;\/*\u5b8c\u6210\u961f\u5217\u5934\u6307\u9488*\/<br \/>&nbsp;&nbsp;&nbsp;run=NULL;&nbsp;\/*\u8fd0\u884c\u961f\u5217\u6307\u9488*\/<br \/>&nbsp;&nbsp;&nbsp;printf(&quot;Enter&nbsp;name&nbsp;and&nbsp;time&nbsp;of&nbsp;process\\n&quot;);&nbsp;\/*\u8f93\u5165\u8fdb\u7a0b\u6807\u8bc6\u548c\u6240\u9700\u65f6\u95f4\u521b\u5efaPCB*\/<br \/>&nbsp;&nbsp;&nbsp;for(i=1;i&lt;=N;i++)<br \/>&nbsp;&nbsp;&nbsp;{p=(struct&nbsp;node&nbsp;*)malloc(sizeof(node));&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(&quot;%s&quot;,na);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(&quot;%d&quot;,&#038;time);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strcpy(p-&gt;name,na);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p-&gt;cputime=0;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p-&gt;needtime=time;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p-&gt;state=&#39;w&#39;;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p-&gt;prio=50-time;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(ready!=NULL)&nbsp;\/*\u5c31\u7eea\u961f\u5217\u4e0d\u7a7a\u8c03\u7528\u63d2\u5165\u51fd\u6570\u63d2\u5165*\/<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;insert1(p);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p-&gt;next=ready;&nbsp;\/*\u521b\u5efa\u5c31\u7eea\u961f\u5217\u7684\u7b2c\u4e00\u4e2aPCB*\/<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ready=p;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;system(&quot;cls&quot;);<br \/>&nbsp;&nbsp;&nbsp;printf(&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;output&nbsp;of&nbsp;priority:\\n&quot;);<br \/>&nbsp;&nbsp;&nbsp;printf(&quot;************************************************\\n&quot;);<br \/>&nbsp;&nbsp;&nbsp;prt(alg);&nbsp;&nbsp;\/*\u8f93\u51fa\u8fdb\u7a0bPCB\u4fe1\u606f*\/<br \/>&nbsp;&nbsp;&nbsp;run=ready;&nbsp;\/*\u5c06\u5c31\u7eea\u961f\u5217\u7684\u7b2c\u4e00\u4e2a\u8fdb\u7a0b\u6295\u5165\u8fd0\u884c*\/<br \/>&nbsp;&nbsp;&nbsp;ready=ready-&gt;next;<br \/>&nbsp;&nbsp;&nbsp;run-&gt;state=&#39;R&#39;;<br \/>}<br \/>\/*\u8f6e\u8f6c\u6cd5\u521b\u5efa\u8fdb\u7a0bPCB*\/<br \/>void&nbsp;create2(char&nbsp;alg)<br \/>{<br \/>&nbsp;&nbsp;&nbsp;PCB&nbsp;*p;<br \/>&nbsp;&nbsp;&nbsp;int&nbsp;i,time;<br \/>&nbsp;&nbsp;&nbsp;char&nbsp;na[10];<br \/>&nbsp;&nbsp;&nbsp;ready=NULL;<br \/>&nbsp;&nbsp;&nbsp;finish=NULL;<br \/>&nbsp;&nbsp;&nbsp;run=NULL;<br \/>&nbsp;&nbsp;&nbsp;printf(&quot;Enter&nbsp;name&nbsp;and&nbsp;time&nbsp;of&nbsp;round&nbsp;process\\n&quot;);<br \/>&nbsp;&nbsp;&nbsp;for(i=1;i&lt;=N;i++)<br \/>&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p=(struct&nbsp;node&nbsp;*)malloc(sizeof(node));&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(&quot;%s&quot;,na);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(&quot;%d&quot;,&#038;time);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strcpy(p-&gt;name,na);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p-&gt;cputi<br \/>\nme=0;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p-&gt;needtime=time;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p-&gt;count=0;&nbsp;\/*\u8ba1\u6570\u5668*\/<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p-&gt;state=&#39;w&#39;;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p-&gt;round=2;&nbsp;&nbsp;\/*\u65f6\u95f4\u7247*\/<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(ready!=NULL)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;insert2(p);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p-&gt;next=ready;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ready=p;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tail=p;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;system(&quot;cls&quot;);\/\/&nbsp;&nbsp;&nbsp;clrscr();<br \/>&nbsp;&nbsp;&nbsp;printf(&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;output&nbsp;of&nbsp;round\\n&quot;);<br \/>&nbsp;&nbsp;&nbsp;printf(&quot;************************************************\\n&quot;);<br \/>&nbsp;&nbsp;&nbsp;prt(alg);&nbsp;&nbsp;&nbsp;\/*\u8f93\u51fa\u8fdb\u7a0bPCB\u4fe1\u606f*\/<br \/>&nbsp;&nbsp;&nbsp;run=ready;&nbsp;&nbsp;\/*\u5c06\u5c31\u7eea\u961f\u5217\u7684\u7b2c\u4e00\u4e2a\u8fdb\u7a0b\u6295\u5165\u8fd0\u884c*\/<br \/>&nbsp;&nbsp;&nbsp;ready=ready-&gt;next;<br \/>&nbsp;&nbsp;&nbsp;run-&gt;state=&#39;R&#39;;<br \/>}<br \/>\/*\u4f18\u5148\u6570\u8c03\u5ea6\u7b97\u6cd5*\/<br \/>void&nbsp;priority(char&nbsp;alg)<br \/>{<br \/>&nbsp;&nbsp;&nbsp;while(run!=NULL)&nbsp;&nbsp;\/*\u5f53\u8fd0\u884c\u961f\u5217\u4e0d\u7a7a\u65f6\uff0c\u6709\u8fdb\u7a0b\u6b63\u5728\u8fd0\u884c*\/<br \/>&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;run-&gt;cputime=run-&gt;cputime+1;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;run-&gt;needtime=run-&gt;needtime-1;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;run-&gt;prio=run-&gt;prio-3;&nbsp;\/*\u6bcf\u8fd0\u884c\u4e00\u6b21\u4f18\u5148\u6570\u964d\u4f4e3\u4e2a\u5355\u4f4d*\/<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(run-&gt;needtime==0)&nbsp;&nbsp;\/*\u5982\u6240\u9700\u65f6\u95f4\u4e3a0\u5c06\u5176\u63d2\u5165\u5b8c\u6210\u961f\u5217*\/<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;run-&gt;next=finish;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;finish=run;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;run-&gt;state=&#39;F&#39;;&nbsp;&nbsp;\/*\u7f6e\u72b6\u6001\u4e3a\u5b8c\u6210\u6001*\/<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;run=NULL;&nbsp;&nbsp;\/*\u8fd0\u884c\u961f\u5217\u5934\u6307\u9488\u4e3a\u7a7a*\/<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(ready!=NULL)&nbsp;\/*\u5982\u5c31\u7eea\u961f\u5217\u4e0d\u7a7a*\/<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;firstin();&nbsp;\/*\u5c06\u5c31\u7eea\u5bf9\u5217\u7684\u7b2c\u4e00\u4e2a\u8fdb\u7a0b\u6295\u5165\u8fd0\u884c*\/<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;\/*\u6ca1\u6709\u8fd0\u884c\u5b8c\u540c\u65f6\u4f18\u5148\u6570\u4e0d\u662f\u6700\u5927\uff0c\u5219\u5c06\u5176\u53d8\u4e3a\u5c31\u7eea\u6001\u63d2\u5165\u5230\u5c31\u7eea\u961f\u5217*\/<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if((ready!=NULL)&#038;&#038;(run-&gt;prio&lt;ready-&gt;prio))<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;run-&gt;state=&#39;W&#39;;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;insert1(run);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;firstin();&nbsp;\/*\u5c06\u5c31\u7eea\u961f\u5217\u7684\u7b2c\u4e00\u4e2a\u8fdb\u7a0b\u6295\u5165\u8fd0\u884c*\/<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prt(alg);&nbsp;\/*\u8f93\u51fa\u8fdb\u7a0bPCB\u4fe1\u606f*\/<br \/>&nbsp;&nbsp;&nbsp;}<br \/>}<br \/>\/*\u65f6\u95f4\u7247\u8f6e\u8f6c\u6cd5*\/<br \/>void&nbsp;roundrun(char&nbsp;alg)<br \/>{<br \/>&nbsp;&nbsp;&nbsp;while(run!=NULL)<br \/>&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;run-&gt;cputime=run-&gt;cputime+1;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;run-&gt;needtime=run-&gt;needtime-1;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;run-&gt;count=run-&gt;count+1;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(run-&gt;needtime==0)\/*\u8fd0\u884c\u5b8c\u5c06\u5176\u53d8\u4e3a\u5b8c\u6210\u6001\uff0c\u63d2\u5165\u5b8c\u6210\u961f\u5217*\/<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;run-&gt;next=finish;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;finish=run;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;run-&gt;state=&#39;F&#39;;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;run=NULL;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(ready!=NULL)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;firstin();&nbsp;\/*\u5c31\u7eea\u5bf9\u5217\u4e0d\u7a7a\uff0c\u5c06\u7b2c\u4e00\u4e2a\u8fdb\u7a0b\u6295\u5165\u8fd0\u884c*\/<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(run-&gt;count==run-&gt;round)&nbsp;&nbsp;\/*\u5982\u679c\u65f6\u95f4\u7247\u5230*\/<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;run-&gt;count=0;&nbsp;&nbsp;\/*\u8ba1\u6570\u5668\u7f6e0*\/<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(ready!=NULL)&nbsp;\/*\u5982\u5c31\u7eea\u961f\u5217\u4e0d\u7a7a*\/<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;run-&gt;state=&#39;W&#39;;&nbsp;\/*\u5c06\u8fdb\u7a0b\u63d2\u5165\u5230\u5c31\u7eea\u961f\u5217\u4e2d\u7b49\u5f85\u8f6e\u8f6c*\/<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;insert2(run);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;firstin();&nbsp;\/*\u5c06\u5c31\u7eea\u5bf9\u5217\u7684\u7b2c\u4e00\u4e2a\u8fdb\u7a0b\u6295\u5165\u8fd0\u884c*\/<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prt(alg);&nbsp;\/*\u8f93\u51fa\u8fdb\u7a0b\u4fe1\u606f*\/<br \/>&nbsp;&nbsp;&nbsp;}<br \/>}<br \/>\/*\u4e3b\u51fd\u6570*\/<br \/>void&nbsp;main()<br \/>{<br \/>&nbsp;&nbsp;&nbsp;char&nbsp;algo;&nbsp;&nbsp;\/*\u7b97\u6cd5\u6807\u8bb0*\/<br \/>system(&quot;cls&quot;);\/\/&nbsp;&nbsp;&nbsp;clrscr();<br \/>&nbsp;&nbsp;&nbsp;printf(&quot;type&nbsp;the&nbsp;algorithm:P\/R(priority\/roundrobin)\\n&quot;);<br \/>&nbsp;&nbsp;&nbsp;scanf(&quot;%c&quot;,&#038;algo);&nbsp;\/*\u8f93\u5165\u5b57\u7b26\u786e\u5b9a\u7b97\u6cd5*\/<br \/>&nbsp;&nbsp;&nbsp;printf(&quot;Enter&nbsp;process&nbsp;number\\n&quot;);<br \/>&nbsp;&nbsp;&nbsp;scanf(&quot;%d&quot;,&#038;N);&nbsp;\/*\u8f93\u5165\u8fdb\u7a0b\u6570*\/<br \/>&nbsp;&nbsp;&nbsp;if(algo==&#39;P&#39;||algo==&#39;p&#39;)<br \/>&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;create1(algo);&nbsp;\/*\u4f18\u5148\u6570\u6cd5*\/<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;priority(algo);<br \/>&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;else<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(algo==&#39;R&#39;||algo==&#39;r&#39;)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;create2(algo);&nbsp;\/*\u8f6e\u8f6c\u6cd5*\/<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;roundrun(algo);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u70b9\u51fb\u4e0b\u8f7d#include&nbsp;&quot;stdio.&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[101],"tags":[],"class_list":["post-165","post","type-post","status-publish","format-standard","hentry","category-college-life"],"_links":{"self":[{"href":"https:\/\/fanhaijun.com\/index.php?rest_route=\/wp\/v2\/posts\/165","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fanhaijun.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fanhaijun.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fanhaijun.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fanhaijun.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=165"}],"version-history":[{"count":0,"href":"https:\/\/fanhaijun.com\/index.php?rest_route=\/wp\/v2\/posts\/165\/revisions"}],"wp:attachment":[{"href":"https:\/\/fanhaijun.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=165"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fanhaijun.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=165"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fanhaijun.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=165"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}