云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 计算机操作系统课程设计源代码《通用处理机调度演示程序源代码》

计算机操作系统课程设计源代码《通用处理机调度演示程序源代码》

  • 62 次阅读
  • 3 次下载
  • 2025/5/4 14:39:50

//时间片轮转算法 typedef struct node {

char name[20]; int round; int cputime; int arrivetime; int needtime; char state; int count; struct node *next; }PCB;

PCB *ready=NULL,*run1=NULL,*finish=NULL; int num,i;

void GetFirst(); void Output(); void InsertTime(PCB *in); void InsertFinish(PCB *in); void TimeCreate(); void RoundRun();

void GetFirst() /*取得第一个就绪队列节点*/ {

run1 = ready;

if(ready!=NULL) {

run1 ->state = 'R'; ready = ready ->next; run1 ->next = NULL; }

}

void Output() /*输出队列信息*/ {

PCB *p; p = ready;

printf(\进程名\\tcpu时间\\t需要时间\\t进程状态\\t计数器\\n\ while(p!=NULL) {

printf(\e,p->count); p = p->next; }

p = finish; while(p!=NULL) {

printf(\e,p->count); p = p->next; }

p = run1; while(p!=NULL) {

printf(\e,p->count); p = p->next; } }

void InsertTime(PCB *in) /*将进程插入到就绪队列尾部*/ {

PCB *fst;

fst = ready;

if(ready == NULL) {

in->next = ready; ready = in; } else {

while(fst->next != NULL) {

fst = fst->next; }

in ->next = fst ->next; fst ->next = in; } }

void InsertFinish(PCB *in) /*将进程插入到完成队列尾部*/ {

PCB *fst; fst = finish;

if(finish == NULL) {

in->next = finish; finish = in; } else {

while(fst->next != NULL) {

fst = fst->next; }

in ->next = fst ->next;

fst ->next = in; } }

void TimeCreate() /*时间片输入函数*/ {

PCB *tmp; int i;

printf(\输入进程名字 到达时间 进程所需时间 时间片大小:\\n\ for(i = 0;i < num; i++) {

if((tmp = (PCB *)malloc(sizeof(PCB)))==NULL) {

perror(\ exit(1); }

scanf(\%d %d %d\->round)); getchar();

tmp ->cputime = 0; tmp ->state ='W'; // tmp->prio=0; tmp ->count = 0; InsertTime(tmp); } }

void RoundRun() /*时间片轮转调度算法*/ {

int flag = 1;

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

//时间片轮转算法 typedef struct node { char name[20]; int round; int cputime; int arrivetime; int needtime; char state; int count; struct node *next; }PCB; PCB *ready=NULL,*run1=NULL,*finish=NULL; int num,i; void GetFirst(); void Output(); void InsertTime(PCB *in); void InsertFinish(PCB *in); void TimeCreate();

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com