|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
当你经过一段时间的学习后就应该扩充自己的知识,多学习linux命令,但是不要在初学阶段就系统的学习linux命令。
/*摹拟完成LINUX历程调剂的静态优先级算法和工夫片轮转算法引进LINUX调剂
*/
#include<stdio.h>
#include<stdlib.h>
#include<pthread.h>
#include<sys/stat.h>
#include<sys/types.h>
#defineRUN1
#defineSLEEP0
#defineREADY2
#defineDEG_SCHEDULE
#defineNUM6
structOSPCB
{
intPcbName;/*历程名字*/
intReqCount;/*历程实行计数*/
intRunTime;/*历程实行工夫数*/
intPrority;/*历程优先级*/
intPcbStatus;/*历程形态*/
intPcbTime;/*历程工夫片*/
structOSPCB*prev;
structOSPCB*next;
};
structProcessQueue/*摹拟CPU调剂行列*/
{
structOSPCB*PointerHead;/*指向历程链表头*/
intPcbNumber;/*CPU每次调剂计数器*/
};
//staticstructCriticalResource
//{
//intflag;
//charBufferVoice[2000];
//}
staticintflag;
void*Function(int*arg);
voidInitPcb(structOSPCB*pcb);
intSchedule(structProcessQueue*queue);
voidInheritSchedule(structOSPCB*pcb);
intmain(void)
{
inti,ret;
structOSPCB*pNewPcb,*pNew;
structProcessQueue*pNewQueue;
inta[4][4]={{1,1,0,1},{2,2,0,2},{3,3,0,3},{4,4,0,4}};
pNewQueue=(structProcessQueue*)malloc(sizeof(structProcessQueue));
pNewQueue->PointerHead=NULL;
pNewQueue->PcbNumber=0;
for(i=0;i<4;i++)/*历程初始化*/
{
pNewPcb=(structOSPCB*)malloc(sizeof(structOSPCB));
pNewPcb->PcbName=a[0];
pNewPcb->ReqCount=a[1];
pNewPcb->RunTime=a[2];
pNewPcb->Prority=a[3];
pNewPcb->PcbStatus=READY;
pNewPcb->PcbTime=3;
InitPcb(pNewPcb);
if(pNewQueue->PointerHead==NULL)
{
pNewQueue->PointerHead=pNewPcb;
}else{
 </p>123下一页
每一个开发团队都对他的发行版做过测试后放出的.那些国际知名的大品牌更是如此。 |
|