操作系统:进程调度实验(c语言)

本文探讨了如何使用C语言进行操作系统级别的进程调度实验。通过深入理解进程调度的基本原理,结合C语言编程技术,实现了一个基本的进程调度算法。内容包括进程的状态转换、调度策略的实现以及上下文切换等关键步骤。
摘要由CSDN通过智能技术生成
#include <stdio.h> 
#include <stdlib.h> 
#define True 
1 
#define False 
0 
#define Q 
1 
//定义 PCB 的数据结构 
typedef struct pcb{ 
unsigned char pid; //进程 id 号 
unsigned char startTime; //开始时间 
unsigned char serviceTime; //服务时间 
unsigned char runningTime; //表示在 cpu 上已经执行了多少时间,用于判断时间片到 
期 
unsigned char endTime; //结束时间 
unsigned char needTime; //剩余时间(需要多少时间能完成) 
}PCB; 
//定义就绪队列的数据结构 
typedef struct readyList{ 
PCB *p; 
struct readyList *next; 
}RL; 
void init(PCB *p, unsigned char n); 
void newProcessArrived(unsigned int clock,PCB *p, unsigned char n, RL *rl); 
unsigned char isInterrupt(unsigned int clock,RL *cpu, RL *rl); 
void insertIntoReadyList(RL *cpu, RL *rl); 
RL * schedule(RL *rl); 
void destroyProcess(RL *cpu); 
void prt(RL *cpu, RL *rl); 
void output(PCB *p, unsigned char n); 
unsigned int clock = 0; 
int main(){ 
PCB p[5]; 
int count = 0; 
RL *rl = (RL *)malloc(sizeof(RL)); //初始化链表 rl 的头节点 
RL *cpu = NULL; //指向当前正在 CPU 执
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值