500字范文,内容丰富有趣,生活中的好帮手!
500字范文 > c语言实现时间片轮转调度算法

c语言实现时间片轮转调度算法

时间:2021-07-03 00:06:57

相关推荐

c语言实现时间片轮转调度算法

#include <stdio.h>//引入输入输出流文件

#include <stdlib.h>

struct PCB

{

int pid;//进程标识符

int rr;//已运行时间

int time;//进程要求运行时间

char sta;//进程的状态

struct PCB *next;//链接指针

};

struct PCB pcb1,pcb2,pcb3,pcb4,pcb5,*tail,*head,*rp;

void init()//初始化各个进程的运行时间

{

int time;

pcb1.pid = 1;//用结构体进行赋初值

pcb2.pid = 2;

pcb3.pid = 3;

pcb4.pid = 4;

pcb5.pid = 5;

pcb1.rr =pcb2.rr =pcb3.rr =pcb4.rr =pcb5.rr = 0;//各个间片赋值是0

pcb1.sta = pcb2.sta = pcb3.sta = pcb4.sta = pcb5.sta = ‘w’;//用w字符表示wait等待

printf(“请输入进程p1需要运行的时间:”);

scanf("%d",&time);

pcb1.time =time;//把时间元素赋值给结构体元素

printf(“请输入进程p2需要运行的时间:”);

scanf("%d",&time);

pcb2.time=time; //把时间元素赋值给结构体元素

printf(“请输入进程p3需要运行的时间:”);

scanf("%d",&time);

pcb3.time=time; //把时间元素赋值给结构体元素

printf(“请输入进程p4需要运行的时间:”);

scanf("%d",&time);

pcb4.time =time; //把时间元素赋值给结构体元素

printf(“请输入进程p5需要运行的时间:”);

scanf("%d",&time);

pcb5.time=time; //把时间元素赋值给结构体元素

pcb1.next=&pcb2;//指向下一个地址

pcb2.next=&pcb3; //指向下一个地址

pcb3.next=&pcb4; //指向下一个地址

pcb4.next=&pcb5; /指向下一个地址

pcb5.next=&pcb1; //指向下一个地址

head=&pcb1;

tail=&pcb5;

}

void printf1()//显示表头

{

printf(“±--------------|---------------|---------------|---------------+\n”);

printf("|\tpid\t|\trr\t|\ttime\t|\tSTA\t|\n");//利用制表符号打印各表的头部

printf("|---------------|---------------|---------------|---------------|\n");

}

void printf2()//显示各个进程的初始状态

{

printf(“processes p%d running\n”,head->pid);//显示打印到第几个进程的状态

printf1();

printf("|\t%d\t|\t%d\t|\t%d\t|\t%c\t|\n",head->pid,head->rr,head->time,head->sta);

printf("|---------------|---------------|---------------|---------------|\n");

rp=head;

while(rp!=tail)

{

rp=rp->next;

printf("|\t%d\t|\t%d\t|\t%d\t|\t%c\t|\n",rp->pid,rp->rr,rp->time,rp->sta);

printf("|---------------|---------------|---------------|---------------|\n");

}

}

void operation()//运行

{

int flag=1;//定义标志位

while(flag<=5)//定义while循环

{

head->rr++; //头指针进行下一位位移

if((head->rrhead->time)||(head->time0))//if语句判断如果头部位等于执行时间

{

tail->sta=‘w’;//将进程状态设置为等待态

head->sta=‘f’;//将进程状态设置为执行态

printf2();//在operation()函数内部调用print()

head=head->next;

tail->next=head;

flag++;//标志位下移

}

else

{

tail->sta=‘w’;//将进程状态设置为等待态

head->sta=‘r’;//将进程状态设置为就绪态

printf2();

tail=head;

head=head->next;

}

}

}

void main()

{

init();

printf2();

operation();

}

输出结果:

请输入进程p1需要运行的时间:5

请输入进程p2需要运行的时间:10

请输入进程p3需要运行的时间:15

请输入进程p4需要运行的时间:20

请输入进程p5需要运行的时间:25

processes p1 running

±--------------|---------------|---------------|---------------+

processes p1 running

±--------------|---------------|---------------|---------------+

processes p2 running

±--------------|---------------|---------------|---------------+

processes p3 running

±--------------|---------------|---------------|---------------+

processes p4 running

±--------------|---------------|---------------|---------------+

processes p5 running

±--------------|---------------|---------------|---------------+

processes p1 running

±--------------|---------------|---------------|---------------+

processes p2 running

±--------------|---------------|---------------|---------------+

processes p3 running

±--------------|---------------|---------------|---------------+

processes p4 running

±--------------|---------------|---------------|---------------+

processes p5 running

±--------------|---------------|---------------|---------------+

processes p1 running

±--------------|---------------|---------------|---------------+

processes p2 running

±--------------|---------------|---------------|---------------+

processes p3 running

±--------------|---------------|---------------|---------------+

processes p4 running

±--------------|---------------|---------------|---------------+

processes p5 running

±--------------|---------------|---------------|---------------+

processes p1 running

±--------------|---------------|---------------|---------------+

processes p2 running

±--------------|---------------|---------------|---------------+

processes p3 running

±--------------|---------------|---------------|---------------+

processes p4 running

±--------------|---------------|---------------|---------------+

processes p5 running

±--------------|---------------|---------------|---------------+

processes p1 running

±--------------|---------------|---------------|---------------+

processes p2 running

±--------------|---------------|---------------|---------------+

processes p3 running

±--------------|---------------|---------------|---------------+

processes p4 running

±--------------|---------------|---------------|---------------+

processes p5 running

±--------------|---------------|---------------|---------------+

processes p2 running

±--------------|---------------|---------------|---------------+

processes p3 running

±--------------|---------------|---------------|---------------+

processes p4 running

±--------------|---------------|---------------|---------------+

processes p5 running

±--------------|---------------|---------------|---------------+

processes p2 running

±--------------|---------------|---------------|---------------+

processes p3 running

±--------------|---------------|---------------|---------------+

processes p4 running

±--------------|---------------|---------------|---------------+

processes p5 running

±--------------|---------------|---------------|---------------+

processes p2 running

±--------------|---------------|---------------|---------------+

processes p3 running

±--------------|---------------|---------------|---------------+

processes p4 running

±--------------|---------------|---------------|---------------+

processes p5 running

±--------------|---------------|---------------|---------------+

processes p2 running

±--------------|---------------|---------------|---------------+

processes p3 running

±--------------|---------------|---------------|---------------+

processes p4 running

±--------------|---------------|---------------|---------------+

processes p5 running

±--------------|---------------|---------------|---------------+

processes p2 running

±--------------|---------------|---------------|---------------+

processes p3 running

±--------------|---------------|---------------|---------------+

processes p4 running

±--------------|---------------|---------------|---------------+

processes p5 running

±--------------|---------------|---------------|---------------+

processes p3 running

±--------------|---------------|---------------|---------------+

processes p4 running

±--------------|---------------|---------------|---------------+

processes p5 running

±--------------|---------------|---------------|---------------+

processes p3 running

±--------------|---------------|---------------|---------------+

processes p4 running

±--------------|---------------|---------------|---------------+

processes p5 running

±--------------|---------------|---------------|---------------+

processes p3 running

±--------------|---------------|---------------|---------------+

processes p4 running

±--------------|---------------|---------------|---------------+

processes p5 running

±--------------|---------------|---------------|---------------+

processes p3 running

±--------------|---------------|---------------|---------------+

processes p4 running

±--------------|---------------|---------------|---------------+

processes p5 running

±--------------|---------------|---------------|---------------+

processes p3 running

±--------------|---------------|---------------|---------------+

processes p4 running

±--------------|---------------|---------------|---------------+

processes p5 running

±--------------|---------------|---------------|---------------+

processes p4 running

±--------------|---------------|---------------|---------------+

processes p5 running

±--------------|---------------|---------------|---------------+

processes p4 running

±--------------|---------------|---------------|---------------+

processes p5 running

±--------------|---------------|---------------|---------------+

processes p4 running

±--------------|---------------|---------------|---------------+

processes p5 running

±--------------|---------------|---------------|---------------+

processes p4 running

±--------------|---------------|---------------|---------------+

processes p5 running

±--------------|---------------|---------------|---------------+

processes p4 running

±--------------|---------------|---------------|---------------+

processes p5 running

±--------------|---------------|---------------|---------------+

processes p5 running

±--------------|---------------|---------------|---------------+

processes p5 running

±--------------|---------------|---------------|---------------+

processes p5 running

±--------------|---------------|---------------|---------------+

processes p5 running

±--------------|---------------|---------------|---------------+

processes p5 running

±--------------|---------------|---------------|---------------+

Program ended with exit code: 0

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。