时间片轮转法

时间片轮转法是一种进程调度算法,通过将CPU时间划分为固定的时间段(时间片)轮流分配给各个进程,以确保系统公平地处理多个并发任务。这种方法有助于防止一个进程长时间占用CPU,从而提高系统的响应性和交互性。
摘要由CSDN通过智能技术生成

时间片轮转法
没有队列、节点

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

struct PCB				//PCB数据结构
{
   
	int name;
	struct PCB* next;		//链接指针	
	int arrival;			//到达时间
	int remaining;			//剩余时间
	char signal;			//状态信号
	int gantt[1000];         //记录甘特图横线位置
}InitList[100];

struct PCB* curr = NULL;	//当前运行程序指针
struct PCB* first = NULL;	//首址
struct PCB* last = NULL;	//为了简便计算,加了尾址,减少计算负担
int Time = -1
;				//时间	
int Traversal;				//遍历用的变量
int num = 5;				//进程数
int num2;					//备用进程数
int Flow = 0;				//流向图判断变量

init() {
   	//初始化
	printf("____________________初始化程序___________________________\n\n");
	printf("是否输出循环图(需要递归,可能会消耗更多资源):");
	scanf("%d", &Flow);
MeiKaiErDu:
	printf("自动生成数据(1);手动生成数据(2);使用测试数据(3):");
	int flag;						//判断指标
	scanf("%d", &flag);
	switch (flag)
	{
   
	case 1:							//自动生成数据
		printf("请输入进程数:");
		scanf("%d", &num);			//输入进程数
		num2 = num;					//初始化备用进程数
		srand((unsigned)time(NULL));
		for (int i = 0; i < num2; i++) {
   
			input(i, rand() % num2, (rand() % (num2 - 1) + 1));
		}
		break;
	case 2:							//手动输入数据
		printf("请输入进程数:");
		scanf("%d"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值