icendjoennhdind 2022-12-08 01:18 采纳率: 75%
浏览 276

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集合

  • 写回答

2条回答 默认 最新

  • 好吧508 2022-12-09 17:02
    关注

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

    评论

报告相同问题?

问题事件

  • 创建了问题 12月8日

悬赏问题

  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
  • ¥15 python爬取bilibili校园招聘网站
  • ¥30 求解达问题(有红包)
  • ¥15 请解包一个pak文件
  • ¥15 不同系统编译兼容问题
  • ¥100 三相直流充电模块对数字电源芯片在物理上它必须具备哪些功能和性能?