c语言实现动态优先数算法,处理器调度之动态优先数调度算法

《处理器调度之动态优先数调度算法》由会员分享,可在线阅读,更多相关《处理器调度之动态优先数调度算法(8页珍藏版)》请在人人文库网上搜索。

1、1处理机调度实验内容及要求实验内容:按优先数调度算法实现处理器调度。实验要求:能接受键盘输入的进程数、进程标识、进程优先数及要求运行时间,能显示每次进程调度的情况:运行进程、就绪进程和就绪进程的排列情况。实验目的本实验模拟在单处理器环境下的处理器调度,加深了解处理器调度工作。实验环境本实验的设计基于Windows7操作系统DevC+4-环境,用C语言实现编程。实验思路(1) 每个进程用一个PCB来代表。PCB的结构为:进程名一一作为进程标识。优先数一一赋予进程的优先数,调度时总是选取优先数大的进程先执行。要求运行时间一一假设进程需要运行的单位时间数。状态一一假设两种状态:就绪和结束,用R表示就。

2、绪,用E表示结束。初 始状态都为就绪状态。指针一一按优先数的大小把5个进程连成队列,用指针指出下一个进程 ra 的首地址。(2) 开始运行之前,为每个进程确定它的“优先数”和“要求运行时间”。通 过键盘输入这些参数。(3) 处理器总是选择队首进程运行。釆用动态改变优先数的办法,进程每运1 processinfornation before running:= 1NEXTmi W flUO MLV PRIORITY nUHTIMESTATUSNAME04ready550 1veady110 1readyprocess丄 ink:I 4-5 l.J processPun :4pVOCCRSinfo。

3、rmation hefove iriinninjNAME1PR1OR11Y KLINUHESTATUSNEXT( lrpwdv1ready413readyprocess5-l-4link:processrun:5 is terminatedprocessIinfornntion before runningNAMEPRIORITY RUNTIMESTATUSNEXT1b1ready4413ready(null Jpiocees li-4link:A processPun:Wi is terminated1processinformation before running__ _ PRIORIT。

4、Y HUVriMESTrtTUSNEXT卩13ready(nullproceedlink:4process4PuniProcessexited aftep 25 .27 secondswith letuin value fl n pname);prinlf (,z%s ends after si ice(s) M 、pname, runTime):elsewhile!二NULL)sortProcess (); printProcessInfo (); printProcessLink (); runProcess();return 0;PCB *p, *prior;printf(zzHow m。

5、any process do you want to run:);scanf&num);while(numnext 二 p;for (int i = 0; i pname);priority: z);scanf ( %s - printf(Hrp-pnori ty);scant printiCscanfrunTime/1);&(p-runTime):p-state 二卫“;p-next = (PCB*)malloc(sizeof(PCB): prior=p;p=p-next;free (p);p 二 NULL;prior-next 二 NULL;readyEnd=prior;printf Cn。

6、M);char nameX;int i J, priorilyNum, timeNum;PCB 氷 *rear;for(p=; p!二 NULL; p 二 pnext)for( rear 22 pnexl; rear !=NULL; rear=rearnext) i f (p-pr i or i lypr i or i ty)strcpy (name, p-pname);priori tyNum=p-priori ty;t i meNum=p-runT ime;strcpy (p-pname, rearpname);p-priority=rear-priority; p-runTime=rea。

7、rrunTime; strcpy(rear-pname, name);rearpriorily=priorityNum; rearrunTime=limeNum;)void printProcessLink()PCB *p=;printf (process link: n );while(p!=NULL)print fppname);p=p-next;if(p!=NULL) printf;printf Cn9 ;PCB *p=;printf (process information before running:nz,);prinlf ( 二二二二二二二二二二二二二二二二二二二二二二二二二二二。

8、二二二 二二二二二二二二二二);prinif(NAMEPRIORITY RUNTIME STATUS NEXTn); printf ( = nz);while(p!=NULL)printf (z,%-16s%-8cl %-8d %-8s%snz p-pname, p-priority,p-runTime, (p-state=a, R 4),readyH:,encr, p-next-pname);p=pnext;)void runProcess()PCB *p=;printf ( process run:n,z):printf(r%snM, p-pname);p-priori ty;p-runTime-;二 p-next;i f(p-runTime=O)pstate Eprintf (,?%s is terminatedn,, p-pname);free (p);)elsereadyEndnexl=p;p-next 二 NULL; readyEnd=p;)printfCW。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值