题目描述:
一.实验目的和要求
加深对进程概念和进程调度过程/算法的理解。本实验要求用高级语言编写和调试一个模拟动态优先权的进程调度算法程序。
二、实验内容
1.给出进程调度的算法描述(如基于动态优先级和时间片轮转调度算法的描述)。
2.用C语言设计一个对n个并发进程进行调度的程序,每个进程由一个进程控制块(PCB)结构表示,该进程控制块应包括下述信息:进程标识ID、进程优先数PRIORITY(并规定优先数与优先权成正比)、时间片数CHIP、进程已经占用CPU的时间CPUTIME,进程还需要运行的时间ALLTIME(当进程运行完毕时,其值为0)、进程的状态STATE(为简化起见。设每个进程处于运行E(excecuting)、就绪R(ready)和完成F(finish)三种状态之一,并假设起始状态都是就绪状态R。),以及进程队列指针NEXT(用来将PCB排成队列)等,可按照调度算法的不同而增删。
3.调度程序应当包含2种不同的调度算法,运行时可以任选一种,以利于各种方法的分析和比较。
4.程序应能显示或打印各种进程状态和参数变化情况,便于观察。即要显示每个时间片内各进程的情况,并且指出运行进程及就绪和阻塞队列中的内容。
程序设计:
#include
#include
//#include //c里面没有string,因为string是一个类,而c没有类
#include
//using namespace std;
struct PCB
{
int ProcessReachTime;//标志进程到达时间