#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedef struct process{//进程控制块
int symbol;//进程标识符
struct process *next;//指向下一个进程的指针,也是只赋了值
int neednum;//进程所需要运行的时间
int cpunum;//占用cpu的时间,初始值为0
int timepiece;//时间片
int state;//状态,1为ready,2为running,3为over,初始为1
}pro;
#include<stdlib.h>
#include<malloc.h>
typedef struct process{//进程控制块
int symbol;//进程标识符
struct process *next;//指向下一个进程的指针,也是只赋了值
int neednum;//进程所需要运行的时间
int cpunum;//占用cpu的时间,初始值为0
int timepiece;//时间片
int state;//状态,1为ready,2为running,3为over,初始为1
}pro;
int judge(pro *p){//判断进程占用cpu的时间是否够了一个时间片,或是时间片的倍数
int flag=0;
if((p->cpunum%p->timepiece)==0){
flag=1;
}
return flag;
}
int flag=0;
if((p->cpunum%p->timepiece)==0){
flag=1;
}
return flag;
}
void reorder(pro *p[],int n){//当某个进程够了一个时间片后,将它换到队尾
pro *t;
int i;
t=p[0];
for(i=0;i<n-1;i++){
p[i]=p[i+1];
}
p[n-1]=t;
}
pro *t;
int i;
t=p[0];
for(i=0;i<n-1;i++){
p[i]=p[i+1];
}
p[n-1]=t;
}
void createpro(pro *p){//进程初始化
printf("symbol ");
scanf("%d",&p->symbol);
printf("neednum ");
scanf("%d",&p->neednum);
print
printf("symbol ");
scanf("%d",&p->symbol);
printf("neednum ");
scanf("%d",&p->neednum);

本文深入探讨了操作系统中进程调度的简单轮转算法,详细解释了其工作原理、优缺点,并通过实例分析了算法的执行过程。通过对时间片的设定和调度策略的说明,展示了如何实现进程的有效切换,以达到系统资源的公平分配。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



