ZKX's LAB

进程调度算法模拟进程控制块

2020-07-17知识18

进程调度模拟程序设计 是自己上机实验 和你的要求也许不知道一样但是你可以看看啊 模拟进程调度算法:用C++的代码描述:#include\"iostream.h\"/define pcb typedef struct pcb { char name[10];进程调度算法的模拟与实现 import java.util.Arrays;public class SCAN {public static void main(String[]args){SCAN s=new SCAN();int[]a={ 55,58,39,18,90,160,150,38,184 };int nowway=100;int[]high=s.high(nowway,a);高磁道int hl=high.length;int[]low=s.low(nowway,a);低磁道int ll=low.length;int[]all=new int[hl+ll];for(int i=0;i;i+){all[i]=high[i];}for(int i=0,j=0;i;i+,j+){all[hl+i]=low[j];}int[]movelength=new int[all.length];for(int i=0;i;i+){System.out.print(all[i]+\"\");int move=0;if(i=0){move=all[0]-100;movelength[i]=move;System.out.println(\"移动磁道数\"+move);continue;}if(all[i]>all[i-1]){move=all[i]-all[i-1];movelength[i]=move;} else {move=all[i-1]-all[i];movelength[i]=move;}System.out.println(\"移动磁道数\"+move);}int summovelentgth=0;for(int i=0;i;i+){summovelentgth+movelength[i];}System.out.println(\"平均寻道长度:\"+(double)summovelentgthmovelength.length);}public int[]low(int nowway,int[]a){int mincount=0;for(int i=0;i;i+){if(a[i]){mincount+;小于磁道数的}}int[]a1=new int[mincount];int j=0;for用c语言编写设计一个模拟有N个进程并行的进程调度程序 起码100分啊100分我给你编进程调度算法模拟程序设计 public class PrivilegeProcess {public static void main(String[]args){MyQueue myqueue=new MyQueue();声明队列PCB[]pcb={new PCB(001,8,1),new PCB(002,7,9),new PCB(003,3,8),new PCB(004,1,7),new PCB(005,7,4)};PCB para=new PCB();for(int i=0;i;i+){/初始化后首先执行一次排序,这里使用的是选择排序,优先级高的先入队for(int j=i;j;j+){if(pcb[i].privilege[j].privilege){para=pcb[i];pcb[i]=pcb[j];pcb[j]=para;}}}System.out.println(\"初次入队后各进程的顺序:\");for(int i=0;i;i+){System.out.println(\"初次入队后#processname:\"+pcb[i].name+\"totaltime:\"+pcb[i].totaltime+\"privilege:\"+pcb[i].privilege);}System.out.println();myqueue.start(pcb);}}class MyQueue {int index=0;PCB[]pc=new PCB[5];PCB[]pc1=new PCB[4];PCB temp=new PCB();public void enQueue(PCB process){/入队算法if(index=5){System.out.println(\"out of bounds!return;}pc[index]=process;index+;}public PCB deQueue(){/出队算法if(index=0)return null;for(int i=0;i;i+){pc1[i]=pc[i+1];}index-;temp=pc[0];for(int i=0;i;i+){pc[i]=pc1[i设计一个按优先数调度算法实现处理器调度的程序. include#include/提供atoi()函数#include/提供clrscr()函数#define M 10/字符串大小常量#define N 3/进程数常量#d求进程调度算法 http://hi.baidu.com/vivian_716/blog/item/9c4db3506a54c86384352468.html进程调度模拟程序 #includeincludeincludedefine P_NUM 3/进程数define P_TIME 1/时间片长度define MIN-9999enum state/进程状态{ready,/就绪run,/执行wait,/阻塞finish/完成};class Pcb{public:static void print(){};Pcb();protected:char*name;进程名int allTime;需要运行时间int cpuTime;已用cpu时间state process;进程状态};class HPcb:public Pcb{public:static void print();static void highS();static int getFirst();private:int firstNum;};HPcb hpcb[P_NUM];class FPcb:public Pcb{public:static void print();static void fcfs();private:int comeTime;};FPcb fpcb[P_NUM];int HPcb:getFirst()/得到优先级最高的进程{int k=0;for(int i=1;i;i+)if(hpcb[k].firstNum[i].firstNum)k=i;return k;}void HPcb:highS()/最高优先数优先的调度算法{int ii,f,i=0;for;i;i+){char*ch;ch=new char[1];cout请输入第\"个进程的“进程名”、“优先数”、“需要运行的时间”:\";cin>>ch;hpcb[i].name=new char[strlen(ch)+1];strcpy(hpcb[i].name,ch);cin>>hpcb[i].firstNum>>hpcb[i].allTime;hpcb[i].cpuTime=0;hpcb[i].process=ready;}do{f=用C语言编写并调试一个模拟的进程调度程序,采用“简单时间片轮转法”调度算法对五个进程进行调度。 #include\"stdio.hinclude\"stdlib.hinclude\"string.hstruct PCB {char NAME[10];进程名*/int ROUND;进程轮转时间片*/int REACHTIME;进程到达时间*/int CPUTIME;进程占用CPU时间*/int COUNT;计数器*/int NEEDTIME;进程完成还要的CPU时间*/char STATE;进程的状态*/struct PCB*NEXT;链指针*/};struct LINK {/*PCB的链结构*/struct PCB*RUN;当前运行进程指针*/struct PCB*READY;就绪队列头指针*/struct PCB*TAIL;就绪队列尾指针*/struct PCB*FINISH;完成队列头指针*/};void INIT(LINK*);对PCB的链结构初始化*/void INSERT(LINK*);将执行了一个单位时间片数且还未完成的进程的PCB插到就绪队列的队尾*/void FIRSTIN(LINK*);将就绪队列中的第一个进程投入运行*/void PRINT(LINK*);打印每执行一个时间片后的所有进程的状态*/void PR(PCB*);打印一个进程的状态*/int CREATE(LINK*,int);创建新的进程*/void ROUNDSCH(LINK*);按时间片轮转法调度进程*/void main(){LINK pcbs;int i;INIT(&pcbs);i=0;printf(\"创建5个进程\\n\\n\");while(i){if(CREATE(&pcbs,i+1)=1){printf(\"进程已创建\\n\\n\");i+;}elseprintf(\"进程创建失败\\n\\n\");}FIRSTIN(&pcbs);设计一个按优先数调度算法实现处理器调度的程序. include#include/提供atoi()函数#include/提供clrscr()函数#define M 10/字符串大小常量#define N 3/进程数常量#define SLOT 2typedef struct node{ char name[M];int prio;优先级 int round.求编程模拟进程调度算法,c语言版,要求用先来先服务。 先来先服务:用队列来实现,至于是循环队列,链队还是顺序队列,那要看具体问题决定进程调度:可以将要处理的任务集成为函数,并定义函数指针,最后将指针入队就行了说白了,就是对队列的各种操作~

#pcb#include#char#进程调度#int函数

随机阅读

qrcode
访问手机版