【正文】
dsvrfgvregrefswgvregegsdgre int count=0。 Process *run=head1。// //將受損的鏈表修復(fù) }void JOB::ShowRunningProcess(){ system(cls)。 }//while system(pause)。run==NULL)//沒有等待CPU的進(jìn)程了 和 沒有正在運行的進(jìn)程 滿足退出的要求 退出 break。 } } }// end if(run) if(wait==NULLamp。 } knext=knextnext。 }else{ Process *k=run。//減去本次運行的時間 if(ALLNeedCpu0){ Run_Process_CpuNeed[i]=ALLNeedCpu。 } ALLNeedCpu=Run_Process_CpuNeed[i]。icount。 //依據(jù)上面建設(shè)的映射 按名取出所需運行的時間 int ALLNeedCpu。endl。 //重新調(diào)度 coutNowTimeNowTime+RR Process :runProcessName is Runningendl。//釋放一個結(jié)點 priorNodenext=run。 //waitnext=run。 } tempnext=wait。 }else{//連接到尾部 Process *temp=run。NowTime=waitArriveTime){ if(run==NULL){ run=wait。 if(waitamp。 //Process *tail=head。 //映射表建立完畢 //計算各個進(jìn)程中所需的cpu時間 ShowRunningProcess_CalculateCpuNeed(Run_Process_CpuNeed,count)。 } run=NULL。 strcpy(Run_Process_Name[i],runProcessName)。icount。//還原運行鏈表 //建立一個映射表 char **Run_Process_Name=new char*[count]。 run=runnext。// dsvrfgvregrefswgvregegsdgre int count=0。 Process *run=head1。}void JOB::LookCpu_ShowRunningProcess(){ system(cls)。 }//for1 } cout一共產(chǎn)生了:total 次缺頁中斷. \n缺頁中斷率為:(float)total/AllTotal%endl。 if((true)){ coutProcess :temp_head1ProcessName need mem is loading ok 缺頁調(diào)度endl。 total++。 } coutProcess :temp_head1ProcessName need mem is loading error 缺頁調(diào)度endl。 while(temp_counti){ temp_head1=temp_head1next。 temp_head1=head1。 temp_count++。j++){ if((true)){ temp_count=0。 for(int j=0。icount。Y39。y39。 cinoption。 char option。 temp_head1=head1。 temp_head1=temp_head1next。 } Mem[temp_count++]=k。 //所需的頁面數(shù)目 if(Begin%YE==0){ k=Begin/YE。 Begin+=temp_head1NeedMem。 while(temp_head1){ int Begin=0。 Mem=new int[count]。 temp_head1=temp_head1next。 //記錄下進(jìn)程的數(shù)目 Process *temp_head1=head1。 int *Mem。 CirQueueint q(16)。 system(pause)。 temp2=temp2next。 } knext=temp。 }else{ Process *k=head1。 //coutcopy is right!endl。i++){ tempNeedRescourse[i]=temp2NeedRescourse[i]。 } for(int i=0。 }else{ tempOpKind=Calculate。 if(temp2OpKind==IO){ tempOpKind=IO。 tempNeedCpuTime=temp2NeedCpuTime。 strcpy(tempProcessName,temp2ProcessName)。 head1=NULL。 if(head1==NULL){ coutLinkCopy() is Here!endl。 } cout\nNow , You can see The List to checkout.endl。 }void JOB::VisitLinkTable(){//不加JOB前綴的時候編譯不過 加上代表此函數(shù)是JOBclass之中的 while(head1){ couthead1ProcessNameendl。 delete job。 }//end while temp1 temp=tempnext。 strcpy(tempProcessName,buffer)。 strcpy(temp1ProcessName,buffer)。 coutNow Enter new Name:endl。 int n=0。 VisitLinkTable()。t accept this Rename your Process! \nThanks for your corporation!endl。 while(temp1){ if(strcmp(tempProcessName,temp1ProcessName)==0){ coutMini_OperationSystem had detect the same name process in your job!endl。 Process *temp1=head1。 char buffer[10]。JOB *job。 delete p。 ~JOB(){ delete head。 void LinkCopy()。 bool CheckMem()。 void LookDiskMem()。 void ShowRunningProcess()。 void LookCpu_ShowRunningProcess()。 void DeedLock_LookNeedRescourse()。 void DeedLock()。 void BeginRunning()。 void VisitLinkTable()。//將本次整理好的鏈表依次賦值賦給備用鏈表 Provide_Same_Process_Name()。 n。 } pnext=NULL。i3。 } coutPLease enter the A,B or C you needendl。 cinpOpCpus。 pOpKind=IO。 if(nn==0){ coutplease enter the NeedTranDataNum.endl。 int nn。 cinpNeedMem。 while(pNeedMem128){ coutThis System can39。 coutplease enter the NeedMem of process.endl。 coutplease enter the NeedCpuTime of process.endl。 coutplease enter the arrivetime of process.endl。 coutplease enter the name of process.endl。 cinn。 coutente