进程调度算法的设计内容摘要:

开始 结束 Y N 初始化 pcb,创建进程 就绪队列空。 N 就绪队列首过程投入进 行 时间片到,进程已占用 cpu 时间 +2 撤销进程 进程所需时间数减 2,把该进程插入到就绪队列 Y N 采用时间片轮转调度算法 0 四、 源程序 includeiostream includestring using namespace std。 class Process //创建一个进程 { public: string ProcessName。 // 进程名字 int Time。 // 进程 运行 需要 的 时间 int leval。 // 进程 的 优先级 int LeftTime。 // 进程运行一段时间后还需要的时间 }。 ////////////////////////////////////////////////////// void Copy ( Process proc1, Process proc2)。 // 把 proc2 赋值给 proc1 void Sort( Process pr[], int size)。 // 此排序后暗优先级从大到小排序 void TimeTurn( Process process[], int num, int Timepice)。 // 时间片轮转算法 void Priority( Process process[], int num, int Timepice)。 // 优先级算法 ////////////////////////////////////////////////////////////////////////// int main() { int a。 coutendl。 cout 选择调度算法: endl。 cout 1: 时间片轮换 2: 优先级调度 endl。 cina。 const int Size =30。 Process process[Size]。 int num。 int TimePice。 cout 输入进程个数 :endl。 cinnum。 cout 输入此进程时间片大小 : endl。 cinTimePice。 for( int i=0。 i num。 i++) { string name。 int CpuTime。 int Leval。 cout 输入第 i+1 个进程的名字、 cpu 时间和优先级 :endl。 cinname。 cin CpuTimeLeval。 process[i].ProcessName =name。 process[i].Time =CpuTime。 process[i].leval =Leval。 coutendl。 } for ( int k=0。 knum。 k++) process[k].LeftTime=process[k].Time。 //对进程剩余时间初始化 cout (说明:在本程序所列进程信息中,优先级一项是指进程运行后的优先级 !! )。 coutendl。 coutendl。 cout进程名字 共需占用 cpu 时间 还需要占用时间 优先级 状态 endl。 if(a==1) TimeTurn( process,num,TimePice)。 else if(a==2) { Sort( process, num)。 Priority( process , num, TimePice)。 } } ///////////////////////////////// void Copy ( Process proc1, Process proc2) { =。 =。 =。 } ///////////////////////////////////////////// void Sort( Process pr[], int size) //以进程优先级高低排序 {。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。