#include "oshag.h"
void fb()
{
p = 0;
for (cpu_time = 0; cpu_time <22; cpu_time++) {
printf("---------------------------------------\n");
printf("Current Cpu time is %d\n", cpu_time);
if (p <= 4) if (cpu_time >= pth[p].time_set) {
pri[0][pri_head[0] % 5] = p;
pri_head[0]++;
pth[p].rtn();
pth[p].time_proc--;
printf("###Task %c still has %d cpu_time\n",
p+'A',
pth[p].time_proc);
p++;
printf("\nPriority queues:\n");
for (i = 0; i < 20; i++) {
if (!pri_head[i])
break;
if (pri_head[i] > pri_tail[i]) {
printf("pri %d: ", i);
for (j = pri_tail[i]; j < pri_head[i]; j++)
printf("%d ",pri[i][j % 5]);
printf("\n");
}
}
continue;
}
for (i=0; i<20; i++)
if (pri_head[i] > pri_tail[i]) {
crt_proc = pri[i][pri_tail[i] % 5];
pth[crt_proc].rtn();
pth[crt_proc].time_proc--;
printf("###Task %c still has %d cpu_time\n",
crt_proc+'A',
pth[crt_proc].time_proc);
if (cpu_time == 1) {
printf("\nPriority queues:\n");
for (i = 0; i < 20; i++) {
if (!pri_head[i])
break;
if (pri_head[i] > pri_tail[i]) {
printf("pri %d: ", i);
for (j = pri_tail[i]; j < pri_head[i]; j++)
printf("%d ",pri[i][j % 5]);
printf("\n");
}
}
break;
}
pri_tail[i]++;
if (pth[crt_proc].time_proc) {
pri[i+1][pri_head[i+1] % 5] = crt_proc;
pri_head[i+1]++;
}
printf("\nPriority queues:\n");
for (i = 0; i < 20; i++) {
if (!pri_head[i])
break;
if (pri_head[i] > pri_tail[i]) {
printf("pri %d: ", i);
for (j = pri_tail[i]; j < pri_head[i]; j++)
printf("%d ",pri[i][j % 5]);
printf("\n");
}
}
break;
}
if (i == 20)
printf("No task is running now\n");
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
说明:与前一个资源不一样,是同一个任务的不同代码。 在Linux环境下实现任务调度仿真,利用多线程实现任务池中的多个任务,支持先来先服务、轮转和反馈三种调度策略 设有任务A、B、C、D、E,分别具有不同的优先级和处理时间,通过一个调度线程对这5个任务进行调度。 1.正确输出三种调度算法下,任务的执行顺序、每个任务占用CPU的时间以及优先级队列(反馈调度) 2.通过一个调度进程实现任务调度 3.有输出界面,在每个时间点输出任务状态、每个任务已经占用CPU时间和还需CPU时间,已经执行的任务顺序和时间。
资源推荐
资源详情
资源评论
收起资源包目录
.zip (7个子文件)
操作系统
fcfs.c 481B
rr.c 698B
oshag.c 1KB
func.c 399B
Makefile 294B
oshag.h 609B
fb.c 2KB
共 7 条
- 1
资源评论
- baidu_289007452015-06-28很好程序架构,谢谢分享
七月石
- 粉丝: 0
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功