ÄÚÈÝ·¢²¼¸üÐÂʱ¼ä : 2025/5/4 2:46:19ÐÇÆÚÒ» ÏÂÃæÊÇÎÄÕµÄÈ«²¿ÄÚÈÝÇëÈÏÕæÔĶÁ¡£
ready.head=pcbarea[ready.head].next¡£/*¾ÍÐ÷¶ÓÁÐÍ·Ö¸ÕëºóÒÆ*/
if(ready.head==-1>ready.tail=-1¡£/*¾ÍÐ÷¶ÓÁÐΪ¿Õ£¬ÐÞÕýβָÕëready.tail*/ pcbarea[i].status=running¡£/*Ð޸Ľø³Ì¿ØÖÆ¿é״̬*/
TIME=sometime¡£ /*ÉèÖÃÏà¶ÔʱÖӼĴæÆ÷*/
/*»Ö¸´¸Ã½ø³ÌÏÖ³¡ÐÅÏ¢£º*/
AX=pcbarea[run].ax¡£
BX=pcbarea[run].bx¡£
CX=pcbarea[run].cx¡£
DX=pcbarea[run].dx¡£
PC=pcbarea[run].pc¡£
PSW=pcbarea[run].psw¡£
/*ÐÞ¸ÄÖ¸ÏòÔËÐнø³ÌµÄÖ¸Õë*/
run=i¡£
}/*½ø³Ìµ÷¶Èº¯Êý½áÊø*/
create( int x>
/*´´½¨½ø³Ì*/
{
int i¡£
if(pfree==-1> /*¿ÕÏнø³Ì¿ØÖÆ¿é¶ÓÁÐΪ¿Õ*/
{
printf(\ÎÞ¿ÕÏнø³Ì¿ØÖƿ飬½ø³Ì´´½¨Ê§°Ü\\n\¡£
return¡£
}
i=pfree¡£/*È¡¿ÕÏнø³Ì¿ØÖÆ¿é¶ÓÁеĵÚÒ»¸ö*/
pfree=pcbarea[pfree].next¡£/*pfreeºóÒÆ*/
/*Ìîд¸Ã½ø³Ì¿ØÖÆ¿éÄÚÈÝ£º*/
pcbarea[i].name=x¡£
pcbarea[i].status=aready¡£
pcbarea[i].ax=x¡£
pcbarea[i].bx=x¡£
pcbarea[i].cx=x¡£
pcbarea[i].dx=x¡£
pcbarea[i].pc=x¡£
pcbarea[i].psw=x¡£
if(ready.head!=-1>
{
/*¾ÍÐ÷¶ÓÁв»¿Õʱ£¬¹ÒÈë¾ÍÐ÷¶ÓÁз½Ê½*/
pcbarea[ready.tail].next=i¡£
ready.tail=i¡£
pcbarea[ready.tail].next=-1¡£
}
else
{
/*¾ÍÐ÷¶ÓÁпÕʱ,¹ÒÈë¾ÍÐ÷¶ÓÁз½Ê½£º*/
ready.head=i¡£
ready.tail=i¡£
pcbarea[ready.tail].next=-1¡£
}
} /*½ø³Ì´´½¨º¯Êý½áÊø*/
main( >
{
/*ϵͳ³õʼ»¯*/
int num,i,j¡£
run=ready.head=ready.tail=block=-1¡£
pfree=0¡£
for(j=0¡£j
pcbarea[j].next=j+1¡£
pcbarea[n-1].next=-1¡£
printf(\ÊäÈë½ø³Ì±àºÅ(±ÜÃâ±àºÅµÄ³åÍ»,ÒÔ¸ºÊýÊäÈë½áÊø,×î¶à¿ÉÒÔ´´½¨10¸ö½ø
¡£
scanf(\¡£
while(num>0>
{
create(num>¡£
scanf(\¡£
}
sheduling( >¡£
if(run!=-1>
{
printf(\½ø³ÌÃû ½ø³Ì״̬ ¼Ä´æÆ÷ÄÚÈÝ:ax bx cx dx pc psw:\\n\¡£
printf(\ pcbarea[run].status,pcbarea[run].ax, pcbarea[run].bx, pcbarea[run].cx,
pcbarea[run].dx, pcbarea[run].pc, pcbarea[run].psw>¡£ }
}/*main( >½áÊø*/
Áù¡¢×¢ÒâÊÂÏî
ÒòΪ³ÌÐò³¤¶øÇÒÓÐÄѶȣ¬ËùÒÔÔÚÉè¼ÆÊµÑéʱ£¬ÒªÏ¸ÐÄ£¬¶à´Îµ÷ÊÔ¡£
Æß¡¢Ë¼¿¼Ìâ
ʵÑé¶þ Éè¼ÆÒ»¸öÓÐ N¸ö½ø³Ì¹²ÐеĽø³Ìµ÷¶È³ÌÐò¡£
Ò»¡¢ÊµÑéÄ¿µÄ
Óø߼¶ÓïÑÔ±àдºÍµ÷ÊÔÒ»¸ö½ø³Ìµ÷¶È³ÌÐò£¬ÒÔ¼ÓÉî¶Ô½ø³ÌµÄ¸ÅÄî¼°½ø³Ìµ÷¶ÈËã·¨µÄÀí½â¡£
¶þ¡¢ÊµÑéÀàÐÍ<º¬ÑéÖ¤ÐÍ¡¢Éè¼ÆÐÍ»ò×ÛºÏÐÍ£©
Éè¼ÆÐÍ
Èý¡¢ÊµÑéÒÇÆ÷
һ̨°²×°Windows²Ù×÷ϵͳ¼°CÓïÑÔ±àÒë³ÌÐòµÄpc»ú
ËÄ¡¢ÊµÑéÔÀí Î塢ʵÑé·½·¨Óë²½Öè
<Ò»£©ÄÚÈÝ£º
½ø³Ìµ÷¶ÈËã·¨£º²ÉÓÃ×î¸ßÓÅÏÈÊýÓÅÏȵĵ÷¶ÈËã·¨<¼´°Ñ´¦Àí»ú·ÖÅ䏸ÓÅÏÈÊý×î¸ßµÄ½ø³Ì£©ºÍÏÈÀ´ÏÈ·þÎñËã¡£
ÿ¸ö½ø³ÌÓÐÒ»¸ö½ø³Ì¿ØÖÆ¿é< PCB£©±íʾ¡£½ø³Ì¿ØÖÆ¿é¿ÉÒÔ°üº¬ÈçÏÂÐÅÏ¢£º½ø³ÌÃû¡¢ÓÅÏÈÊý¡¢µ½´ïʱ¼ä¡¢ÐèÒªÔËÐÐʱ¼ä¡¢ÒÑÓÃCPUʱ¼ä¡¢½ø³Ì״̬µÈµÈ¡£ ½ø³ÌµÄÓÅÏÈÊý¼°ÐèÒªµÄÔËÐÐʱ¼ä¿ÉÒÔÊÂÏÈÈËΪµØÖ¸¶¨<Ò²¿ÉÒÔÓÉËæ»úÊý²úÉú£©¡£½ø³ÌµÄµ½´ïʱ¼äΪ½ø³ÌÊäÈëµÄʱ¼ä¡£ ½ø³ÌµÄÔËÐÐʱ¼äÒÔʱ¼äƬΪµ¥Î»½øÐмÆËã¡£
ÿ¸ö½ø³ÌµÄ״̬¿ÉÒÔÊǾÍÐ÷ W ¾ÍÐ÷½ø³Ì»ñµÃ CPUºó¶¼Ö»ÄÜÔËÐÐÒ»¸öʱ¼äƬ¡£ÓÃÒÑÕ¼ÓÃCPUʱ¼ä¼Ó1À´±íʾ¡£ Èç¹ûÔËÐÐÒ»¸öʱ¼äƬºó£¬½ø³ÌµÄÒÑÕ¼Óà CPUʱ¼äÒÑ´ïµ½ËùÐèÒªµÄÔËÐÐʱ¼ä£¬Ôò³·Ïû¸Ã½ø³Ì£¬Èç¹ûÔËÐÐÒ»¸öʱ¼äƬºó½ø³ÌµÄÒÑÕ¼ÓÃCPUʱ¼ä»¹Î´´ïËùÐèÒªµÄÔËÐÐʱ¼ä£¬Ò²¾ÍÊǽø³Ì»¹ÐèÒª¼ÌÐøÔËÐУ¬´ËʱӦ½«½ø³ÌµÄÓÅÏÈÊý¼õ1<¼´½µµÍÒ»¼¶£©£¬È»ºó°ÑËü²åÈë¾ÍÐ÷¶ÓÁеȴýCPU¡£ ÿ½øÐÐÒ»´Îµ÷¶È³ÌÐò¶¼´òÓ¡Ò»´ÎÔËÐнø³Ì¡¢¾ÍÐ÷¶ÓÁС¢ÒÔ¼°¸÷¸ö½ø³ÌµÄ PCB£¬ÒÔ±ã½øÐмì²é¡£ ÖØ¸´ÒÔÉϹý³Ì£¬Ö±µ½ËùÒª½ø³Ì¶¼Íê³ÉΪֹ¡£ <¶þ£©²Î¿¼³ÌÐò£º #include #define getpch(type> (type*>malloc(sizeof(type>> #define NULL 0 struct PCB { /* ¶¨Òå½ø³Ì¿ØÖÆ¿éPCB */ char name[10]¡£ char state¡£ int super¡£ int ntime¡£ int rtime¡£ struct PCB* link¡£