Linux实现时间片轮转算法

要求
实现分主函数(main)和分派函数(Dispatch)。
(1)其中主函数(main)的核心功能为:
实现6个子进程的创建和子进程PCB的初始化。对子进程PCB初始化时,状态设为0,运行时间由随机数产生。子进程创建后,就通过信号SIGSTOP让它处于暂停状态,当被分派函数(Dispatch)选中后,才能继续执行,输出子进程*正在执行的信息。
同时要在主程序里设置定时器,定时器的时间间隔为时间片长度,时间片到,就调用分派函数(Dispatch)重新选派程序。
(2)分配函数的核心功能:
将正在执行的子进程暂停,状态变为0,修改已运行时间和剩余运行时间。
如果该子进程剩余时间小于零,说明执行完毕,PCB状态改为-1,结束该子进程。
如果所有子进程都都结束,则程序结束。
重新选择下一个子进程,状态变为1,输出该子进程的已运行时间和剩余运行时间,让该子进程恢复运行。
提示
要用到的数据结构:
/
PCB /
struct PCB
{
pid_t pid;//进程PID
int state; //状态信息,1表示正在运行,0表示暂停,-1表示结束
unsigned long runned_time;//已运行时间
unsigned long need_running_time;//剩余运行时间
};
/
PCB集合 */
struct PCB pcb[TOTAL]; //PCB集合

哥们解决了记得分享个代码

哥们儿解决了吗,能不能分享一下代码