欢迎来到天天文库
浏览记录
ID:39549681
大小:34.00 KB
页数:5页
时间:2019-07-06
《C++动态优先级调度算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、//stdafx.h:includefileforstandardsystemincludefiles,//orprojectspecificincludefilesthatareusedfrequently,but//arechangedinfrequently//#if!defined(AFX_STDAFX_H__66EA409C_5A68_4105_A5B2_DF00F9B5E262__INCLUDED_)#defineAFX_STDAFX_H__66EA409C_5A68_4105_A5B2_DF00F9B5E262__INCLUDED_#if_MSC_VER>1000#p
2、ragmaonce#endif//_MSC_VER>1000//TODO:referenceadditionalheadersyourprogramrequireshere//{{AFX_INSERT_LOCATION}}//MicrosoftVisualC++willinsertadditionaldeclarationsimmediatelybeforethepreviousline.#endif//!defined(AFX_STDAFX_H__66EA409C_5A68_4105_A5B2_DF00F9B5E262__INCLUDED_)//动态优先级.cpp:Defines
3、theentrypointfortheconsoleapplication.//#include"stdafx.h"#include#includetypedefstruct{//定义一个结构体(进程控制块)charname[20];//进程名intruntime;//运行时间intprivilege;//到达时间charstate;//进程状态,输出为R时表示进程处于就绪状态}NODE;typedefstructnode{//定义一个结点NODEdata;//进程数据structnode*next;//链接指针}LNODE;/*定义延
4、时函数,模拟CPU调度用时过程*/voidDelay(inti){intx,y;while(i--){x=0;while(x<10000){y=0;while(y<40000)y++;x++;}}}/*按进程优先级排序*/voidInsertQueue(LNODE**head,NODEx){LNODE*p1,*p2,*p;p=newLNODE;//动态分配新结点空间p->data=x;p->next=NULL;if(*head==NULL)//若为空链表*head=p;else//若为非空链表{p2=p1=*head;//在首结点之后寻找新结点p的插入位置while(p2!=NUL
5、L&&(p2->data).privilege<(p->data).privilege){p1=p2;p2=p2->next;}if(p2==NULL)//新结点插入尾结点后p1->next=p;elseif(p1==p2){p->next=*head;*head=p;}else//新结点插入p1和p2所指结点之间{p->next=p2;p1->next=p;}}}/*定义释放队列空间的函数*/voidDeleteQueue(LNODE**head,NODE*n){LNODE*p=*head;*n=(*head)->data;*head=(*head)->next;deletep;
6、cout<<"----------------------------------"<name<<'';}/*定义显示进程信息的函数*/voidOutput(LNODE**head){LNODE*p=*head;cout<<"进程名剩余时间优先级进程状态";do{cout<data).name<data).runtime<data).privilege<data).state<<'';p=p->next
7、;cout<
此文档下载收益归作者所有