资源简介
随机给出一个进程调度实例,如:
进程 到达时间 服务时间
A 0 3
B 2 6
C 4 4
D 6 5
E 8 2
模拟进程调度,给出按照算法先来先服务FCFS、轮转RR(q=1)、最短进程优先SPN、最短剩余时间SRT、最高响应比优先HRRN进行调度各进程的完成时间、周转时间、响应比的值。
实验报告(含流程图及运行结果)&源码
代码片段和文件信息
#include
#include
#include
typedef struct process_FCFS{
char name;//进程名
float arrivetime;//到达时间
float servetime;//服务时间
float finishtime;//完成时间
float roundtime;//周转时间
float daiquantime;//响应比
struct process_FCFS *link;//结构体指针
}FCFS;
FCFS *p*q*head=NULL;
struct process_FCFS a[100];
FCFS inital(struct process_FCFS a[]int n);
void print(struct process_FCFS a[]int n);
void Fcfs(struct process_FCFS a[]int n);
struct process_FCFS *sortarrivetime(struct process_FCFS a[]int n);
struct process_FCFS *sortarrivetime(struct process_FCFS a[]int n)
{
int ij;
struct process_FCFS t;
int flag;
for(i=1;i {
flag=0;
for(j=0;j {
if(a[j].arrivetime>a[j+1].arrivetime)
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
flag=1;//交换
}
}
if(flag==0)//如果一趟排序中没发生任何交换,则排序结束
break;
}
return a;
}
void Fcfs(struct process_FCFS a[]int n)
{
int i;
a[0].finishtime=a[0].arrivetime+a[0].servetime;
a[0].roundtime=a[0].finishtime-a[0].arrivetime;
a[0].daiquantime=a[0].roundtime/a[0].servetime;
for(i=1;i {
if(a[i].arrivetime {
a[i].finishtime=a[i-1].finishtime+a[i].servetime;
a[i].roundtime=a[i].finishtime-a[i].arrivetime;
a[i].daiquantime=a[i].roundtime/a[i].servetime;
}
else
{
a[i].finishtime=a[i].arrivetime+a[i].servetime;
a[i].roundtime=a[i].finishtime-a[i].arrivetime;
a[i].daiquantime=a[i].roundtime/a[i].servetime;
}
}
printf(“先来先服务\n“);
print(an);
}
void print(struct process_FCFS a[]int n)
{
int i;
for(i=0;i {
printf(“进程名:%c “a[i].name);
printf(“到达时间:%f “a[i].arrivetime);
printf(“服务时间:%f “a[i].servetime);
printf(“完成时间:%f “a[i].finishtime);
printf(“周转时间:%f “a[i].roundtime);
printf(“响应比:%f “a[i].daiquantime);
printf(“\n“);
}
}
//主函数
int main()
{
int ni;
n=10;//进程数
srand(time(0));
for(i=0;i {
a[i].name=65+i;
a[i].arrivetime=((float)(rand()%100)/10);
a[i].servetime=((float)(rand()%100)/10+rand()%10);
}
*sortarrivetime(an);
Fcfs(an);
for(;;);
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5815 2017-11-28 14:22 RR.cpp
文件 2281 2017-11-28 14:21 FCFS .cpp
文件 4705 2017-11-28 14:24 SPN.cpp
文件 6353 2017-11-28 14:25 SRT.cpp
文件 7113 2017-11-28 14:26 HRRN.cpp
文件 348107 2017-11-28 14:24 实验4 报告.docx
文件 53248 2017-12-30 11:05 实验4 处理器调度.doc
- 上一篇:操作系统文件管理实验报告及源码
- 下一篇:操作系统内存管理实验报告及源代码
评论
共有 条评论