²Ù×÷ϵͳʵÑéÖ¸µ¼Êé ÏÂÔØ±¾ÎÄ

ÄÚÈÝ·¢²¼¸üÐÂʱ¼ä : 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 #include #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¡£