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

¡¶²Ù×÷ϵͳԭÀí¡·

ʵ Ñé Ö¸ µ¼ Êé

Îâ΢ ±à

ǰ ÑÔ

1£®ÊµÑé×ÜÌåÄ¿±ê

ͨ¹ýѧÉú×Ô¼º¶¯ÊÖÉè¼ÆÊµÑéÑéÖ¤ÀíÂÛ֪ʶ£¬Ê¹Ñ§ÉúÕÆÎÕ²Ù×÷ÏµÍ³ÌØÕ÷ºÍ¹¦ÄÜ£¬ÕÆÎÕ²»Í¬µ÷¶ÈË㷨Ͻø³ÌµÄµ÷¶È¡¢½ø³Ì¿ØÖÆ¡¢½ø³Ìµ÷¶ÈÓëËÀËø£¬²¢±ØÐëÕÆÎÕ×÷Òµ¹ÜÀí¡¢´æ´¢Æ÷¹ÜÀí¡¢É豸¹ÜÀíºÍÎļþ¹ÜÀíµÄÖ÷ÒªÔ­Àí¡£¼ÓÉî¶Ô²Ù×÷ϵͳ»ù±¾Ô­ÀíÀí½â¡£ ¢² ÊÊÓÃרҵ

¼ÆËã»ú¿ÆÑ§Óë¼¼Êõ

¢³ ÏÈÐ޿γÌ

CÓïÑÔ³ÌÐòÉè¼Æ¡¢¼ÆËã»ú×é³ÉÔ­Àí¡¢Êý¾Ý½á¹¹

¢´ ʵÑé¿Îʱ·ÖÅä ʵÑéÏîÄ¿ ʵÑéÒ» µ¥´¦ÀíÆ÷ϵͳµÄ½ø³Ìµ÷¶È ʵÑé¶þÉè¼ÆÒ»¸öÓÐN¸ö½ø³Ì¹²ÐеĽø³Ìµ÷¶È³ÌÐò¡£ ʵÑéÈýÅú´¦ÀíϵͳÖÐ×÷Òµµ÷¶È ʵÑéËÄ ÒøÐмÒËã·¨ ʵÑéÎåLRUÒ³ÃæÖû»µ÷¶ÈËã·¨ ʵÑéÁù ¶ÀÕ¼É豸µÄ·ÖÅäºÍ»ØÊÕÄ£Äâ ѧʱ 2 4 2 4 4 4 ¢µ ʵÑé»·¾³ ÓÐ40̨ÖеÈÅäÖõļÆËã»ú×é³ÉµÄСÐ;ÖÓòÍøµÄʵÑéÊÒ»·¾³¡£¼ÆËã»úµÄ¾ßÌåÒªÇ󣺢±Pentium 133HzÒÔÉϵÄCPU£»¢²½¨ÒéÖÁÉÙ256MBµÄÄڴ棻¢³½¨ÒéÓ²ÅÌÖÁÉÙ2GB£¬²¢ÓÐ1GB¿ÕÏпռ䡣4.°²×°Windows²Ù×÷ϵͳ¼°CÓïÑÔ±àÒë³ÌÐò¡£ ¢¶ ʵÑé×ÜÌåÒªÇó

ÅàÑø¼ÆËã»úרҵµÄѧÉúµÄϵͳ³ÌÐòÉè¼ÆÄÜÁ¦£¬ÊDzÙ×÷ϵͳ¿Î³ÌµÄÒ»¸ö·Ç³£ÖØÒªµÄ»·½Ú¡£Í¨¹ý²Ù×÷ϵͳÉÏ»úʵÑ飬¿ÉÒÔÅàÑøÑ§Éú³ÌÐòÉè¼ÆµÄ·½·¨ºÍ¼¼ÇÉ£¬Ìá¸ßѧÉú±àÖÆÇåÎú¡¢ºÏÀí¡¢¿É¶ÁÐԺõÄϵͳ³ÌÐòµÄÄÜÁ¦£¬¼ÓÉî¶Ô²Ù×÷ϵͳ¿Î³ÌµÄÀí½â¡£Ê¹Ñ§Éú¸üºÃµØÕÆ

ÎÕ²Ù×÷ϵͳµÄ»ù±¾¸ÅÄî¡¢»ù±¾Ô­Àí¡¢¼°»ù±¾¹¦ÄÜ£¬¾ßÓзÖÎöʵ¼Ê²Ù×÷ϵͳ¡¢Éè¼Æ¡¢¹¹ÔìºÍ¿ª·¢ÏÖ´ú²Ù×÷ϵͳµÄ»ù±¾ÄÜÁ¦¡£ ¢· ±¾ÊµÑéµÄÖØµã¡¢Äѵ㼰½Ì°¸·½·¨½¨Òé

ÖØµã£ºÀí½â½ø³Ìµ÷¶ÈÖÐPCBµÄÉè¼Æ£¬ÒÔʵÏÖ¶Ô½ø³ÌµÄµ÷¶È¡£ Äѵ㣺½ø³Ìµ÷¶È³ÌÐòµÄÉè¼Æ£¬É豸¹ÜÀí³ÌÐòµÄÉè¼Æ¡£

½Ì°¸·½·¨½¨Ò飺Á¦ÕùÔÚ±¾Ö¸µ¼ÊéµÄ°ïÖúÏ£¬¶ÀÁ¢Éè¼Æ³ÌÐòÒÔ¼ÓÉîÀí½â¡£

Ä¿ ¼ ʵÑéÒ»¡¢ µ¥´¦ÀíÆ÷ϵͳµÄ½ø³Ìµ÷¶È

ʵÑé¶þ Éè¼ÆÒ»¸öÓÐ N¸ö½ø³Ì¹²ÐеĽø³Ìµ÷¶È³ÌÐò¡£ÊµÑéÈý Åú´¦ÀíϵͳÖÐ×÷Òµµ÷¶È ʵÑéËÄ ÒøÐмÒËã·¨

ʵÑéÎå LRUÒ³ÃæÖû»µ÷¶ÈËã·¨ ʵÑéÁù ¶ÀÕ¼É豸µÄ·ÖÅäºÍ»ØÊÕÄ£Äâ

5

10 15 18 25 29

ʵÑéÒ» µ¥´¦ÀíÆ÷ϵͳµÄ½ø³Ìµ÷¶È

Ò»¡¢ÊµÑéÄ¿µÄ

Ä£Äâµ¥´¦ÀíÆ÷ϵͳµÄ½ø³Ìµ÷¶È£¬²ÉÓö¯Ì¬ÓÅÏÈȨµÄ½ø³Ìµ÷¶ÈËã·¨×÷Ϊ½ø³ÌÉè¼ÆËã·¨£¬ÒÔ¼ÓÉî¶Ô½ø³ÌµÄ¸ÅÄî¼°½ø³Ìµ÷¶ÈËã·¨µÄÀí½â£® ¶þ¡¢ÊµÑéÀàÐÍ<º¬ÑéÖ¤ÐÍ¡¢Éè¼ÆÐÍ»ò×ÛºÏÐÍ£©

Éè¼ÆÐÍ

Èý¡¢ÊµÑéÒÇÆ÷

һ̨°²×°Windows²Ù×÷ϵͳ¼°CÓïÑÔ±àÒë³ÌÐòµÄpc»ú¡£

ËÄ¡¢ÊµÑéÔ­Àí Î塢ʵÑé·½·¨Óë²½Öè

<Ò»£©ÄÚÈÝ£º

<1£©ÓÃCÓïÑÔʵÏÖ¶ÔN¸ö½ø³ÌʹÓö¯Ì¬ÓÅÏÈȨËã·¨µÄ½ø³Ìµ÷¶È¡£ <2£©ÃèÊöÓÃÀ´±êʶ½ø³ÌµÄ½ø³Ì¿ØÖÆ¿éPCB½á¹¹¡£

? ½ø³Ì±êʶÊýID

? ½ø³ÌÓÅÏÈÊýPRIORITY£¬²¢¹æ¶¨ÓÅÏÈÊýÔ½´óµÄ½ø³Ì£¬ÆäÓÅÏÈȨԽ¸ß<ÈËΪָ¶¨»òËæ»úÊý£©¡£

? ½ø³ÌÒÑÕ¼ÓõÄCPUʱ¼äCPUTIME¡£

? ½ø³Ì»¹ÐèÕ¼ÓõÄCPUʱ¼äALLTIME£¬µ±½ø³ÌÔËÐÐÍê±ÏALLTIMEÊÇΪ0¡£ ? ½ø³ÌµÄ×èÈûʱ¼äSTARTBLOCK£¬±íʾµ±½ø³ÌÔÙÔËÐÐSTARTBLOCK¸öʱ¼äƬºó£¬½ø³Ì½«½øÈë×èÈû״̬¡£ ? ½ø³Ì±»×èÈûµÄʱ¼äBLOCKTIME£¬±íʾÒÑ×èÈûµÄ½ø³ÌÔٵȴýBLOCKTIME¸öʱ¼äƬºó½«×ª»»³É¾ÍÐ÷״̬¡£ ? ½ø³Ì״̬STATE¡£

? ¶ÓÁÐÖ¸ÕëNEXT£¬ÓÃÀ´½«PCBÅųɶÓÁС£

<3£©ÊÖ¹¤ÊäÈ뽨Á¢¼¸¸ö½ø³Ì£¬½¨Á¢Ò»¸ö¾ÍÐ÷¶ÓÁУ¬°´ÓÅÏÈÊýÓɸߵ½µÍÅÅÁС£ <4£©½øÐнø³Ìµ÷¶È

<5£©Ã¿½øÐÐÒ»´Îµ÷¶È³ÌÐò¶¼´òÓ¡Ò»´ÎÔËÐнø³Ì¡¢¾ÍÐ÷¶ÓÁС¢ÒÔ¼°¸÷¸ö½ø³ÌµÄPCB£¬ÒÔ±ã½øÐмì²é¡£Öظ´ÒÔÉϹý³Ì£¬Ö±µ½ËùÒª½ø³Ì¶¼Íê³ÉΪֹ¡£ <¶þ£©²Î¿¼³ÌÐò£º

#include \

#define running 1 /*ÓÃrunning ±íʾ½ø³Ì´¦ÓÚÔËÐÐ̬*/

#define aready 2 /*ÓÃaready±íʾ½ø³Ì´¦ÓÚ¾ÍÐ÷̬*/

#define blocking 3 /*ÓÃblocking±íʾ½ø³Ì´¦Óڵȴý̬*/

#define sometime 5 /*ÓÃsometime ±íʾʱ¼äƬ´óС*/

#define n 10 /* ¼Ù¶¨ÏµÍ³ÔÊÐí½ø³Ì¸öÊýΪ10 */

struct

{

int name¡£ /*½ø³Ì±êʶ·û*/

int status¡£ /*½ø³Ì״̬*/

int ax, bx, cx,dx¡£ /*½ø³ÌÏÖ³¡ÐÅÏ¢£¬Í¨ÓüĴæÆ÷ÄÚÈÝ*/

int pc¡£ /*½ø³ÌÏÖ³¡ÐÅÏ¢£¬³ÌÐò¼ÆÊýÆ÷ÄÚÈÝ*/

int psw¡£ /*½ø³ÌÏÖ³¡ÐÅÏ¢£¬³ÌÐò״̬×ּĴæÆ÷ÄÚÈÝ*/

int next¡£ /*ÏÂÒ»¸ö½ø³Ì¿ØÖÆ¿éµÄλÖÃ*/

}pcbarea[n]¡£ /*¶¨ÒåÄ£Äâ½ø³Ì¿ØÖÆ¿éÇøÓòµÄÊý×é*/

int PSW,AX,BX,CX,DX,PC,TIME¡£ /*Ä£Äâ¼Ä´æÆ÷*/

int run¡£ /*¶¨ÒåÖ¸ÏòÕýÔÚÔËÐнø³ÌµÄ½ø³Ì¿ØÖÆ¿éµÄÖ¸Õë*/

struct

{

int head¡£

int tail¡£

}ready¡£ /*¶¨ÒåÖ¸Ïò¾ÍÐ÷¶ÓÁеÄÍ·Ö¸ÕëheadºÍβָÕëtail*/

int block¡£ /*¶¨ÒåÖ¸ÏòµÈ´ý¶ÓÁеÄÖ¸Õë*/

int pfree¡£ /*¶¨ÒåÖ¸Ïò¿ÕÏнø³Ì¿ØÖÆ¿é¶ÓÁеÄÖ¸Õë*/

sheduling( >

/*½ø³Ìµ÷¶Èº¯Êý*/

{

int i¡£

if (ready.head==-1> /*¿ÕÏнø³Ì¿ØÖÆ¿é¶ÓÁÐΪ¿Õ£¬Í˳ö*/

{

printf(\ÎÞ¾ÍÐ÷½ø³Ì\\n\¡£

return¡£

}

i=ready.head¡£ /*¾ÍÐ÷¶ÓÁÐÍ·Ö¸Õ븳¸øi*/