操作系统时间片轮转调度算法
时间。为简单起见,进程状态设为三种:就绪,运行和完成。链接指针指向下一个进程的PCB;
按照进程到达的先后顺序排成一个队列。设置一个队头指针指向队列中第一个进程,并设置一个队尾指针指向队列中的最后一个进程;
执行调度时,先选择队首的第一个进程运行。另外设置一个指向当前运行进程的指针;
由于本实验是模拟实验,所以对选中进程并不实际启动运行,而只是执行:被选中进程的状态置为运行态;被选中进程的剩余时间减去时间片大小;按照队列的顺序依次输出每个进程的进程名,到达时间,运行时间,剩余时间,进程状态。用这三个操作来模拟进程的一次运行;
进程运行一次后,以后的调度则将当前指针依次下移一个位置,指向下一个进程,即调整当前运行指针,以指示应运行进程。同时还应判断该进程的剩余时间是否为0。如果不为0,则等待下一轮的运行;如果该进程的剩余时间为0,则将该进程的状态置为完成态,并退出队列;
若处于就绪态的进程不为空,则重复第d步和第e步直到所有进程都运行完为止。