操作系统进程调度模拟程序 基于优先级调度和时间片轮转调度算法

这是一个使用C语言实现的进程调度模拟程序,涵盖了优先级调度和时间片轮转调度算法。程序通过定义进程控制块(PCB)结构,实现了进程的创建、插入和调度等功能,能输出不同调度策略下的进程信息。
摘要由CSDN通过智能技术生成

/* 转载此贴请注明出处*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
/*进程控制块数据结构*/
typedef struct node
{
  char name[10];/*进程名*/
 int prio;     /*进程优先级*/
 int round;    /*进程分配的时间片*/
 int cputime;  /*进程消耗的CUP时间*/
 int needtime; /*进程需要的CUP时间*/
 int count;    /*进程运行时间*/
 char state;   /*进程的状态:'R':运行,'W':等待,'F':结束*/
 struct node *next;/*指向下一个进程的指针*/     
}PCB;

PCB *finish,*ready,*tail,*run;/*指向三个队列的队首的指针,tail为就绪队列的队尾指针*/

int N;/*定义进程的数目*/

/*
函数功能: 将进程就绪队列中第一个放进就绪队列
函数原型: void firstin(void)
函数参数: void
函数返回值:void
作者 :  李文塔 Wenta Li
日期:    2008年5月22日 12:19
*/
void firstin(void)
{
    if(ready!=NULL)
    {
     run=ready;
     ready=ready->next;
     run->state='R';
     run->next=NULL;
   }
   else
   {
     run=NULL;
    
   }
  
}

/*
函数功能:输出进程信息的标题函数
函数原型:void prt1(char a)
函数参数:char a :a=='p'为优先级,=='r'为时间片轮转
函数返回值:void
作者 :  李文塔 Wenta Li
日期:    2008年5月21日 11:19
*/
void prt1(char a)
{
 if(toupper(a)=='P')
 {
 printf(" name  cputime  needtime  priority  state /n");
 }
 else
 {
 printf(" name  cputime  needtime  count  round  state /n");
 }   
}

/*
函数功能:输出单个进程信息的函数
函数原型:void prt2(char a,PCB *p)
函数参数:char a :a=='p'为优先级&#x

  • 4
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值