(一)进程调度的相关算法
2016-03-16 20:58
411 查看
进程调度
进程调度的算法有FIFO、优先数调度算法(静态优先级)、时间片轮转调度算法、分级调度算法;其中FIFO和优先数调度算法在试题中出现的频率较高。
输入
进程流文件,其中存储的是一系列要执行的进程,每个作业包括四个数据项:进程名
进程状态(就绪、等待、运行)
所需时间
优先级数(0级最高)。
输出
进程执行流、等待时间、平均等待时间。部分代码
优先数调度算法
void privilege() { <span style="white-space:pre"> </span>int i,j,p; <span style="white-space:pre"> </span>int passed_time=0; <span style="white-space:pre"> </span>int total; <span style="white-space:pre"> </span>int queue[MAXPCB]; <span style="white-space:pre"> </span>int current_privilege=1000; <span style="white-space:pre"> </span>for(i=0;i<quantity;i++) <span style="white-space:pre"> </span>{ <span style="white-space:pre"> </span>current_privilege=1000; <span style="white-space:pre"> </span>for(j=0;j<quantity;j++) <span style="white-space:pre"> </span>{ <span style="white-space:pre"> </span>if((pcbs[j].finished==0)&&(pcbs[j].privilege<current_privilege)) <span style="white-space:pre"> </span>{ <span style="white-space:pre"> </span>p=j; <span style="white-space:pre"> </span>current_privilege=pcbs[j].privilege; <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>queue[i]=p; <span style="white-space:pre"> </span>pcbs[p].finished=1; <span style="white-space:pre"> </span>pcbs[p].wait_time+=passed_time; <span style="white-space:pre"> </span>passed_time+=pcbs[p].time; <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span> <span style="white-space:pre"> //输出优先数调度执行流 cout<<endl<<"------------------------"<<endl; cout<<"优先数调度执行流:"<<endl; cout<<"进程名 等待时间"<<endl; for(i=0;i<quantity;i++)</span> <span style="white-space:pre"> { out<<" "<<pcbs[queue[i]].name<<" "<<pcbs[queue[i]].wait_time<<endl; } <<</span> <span style="white-space:pre"> </span>total=0; <span style="white-space:pre"> </span>for(i=0;i<quantity;i++) <span style="white-space:pre"> </span>{ <span style="white-space:pre"> </span>total+=pcbs[i].wait_time; <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>coun<<"总等待时间:"<<total<<"平均等待时间:"<<total/quantity<<end1; }
相关文章推荐
- 我是运营,我没有假期
- 应用领航:盘点那些年我们一起追过的OS
- 无奇不有!盘点各国自己开发的操作系统
- 书评:《算法之美( Algorithms to Live By )》
- 动易2006序列号破解算法公布
- DB2数据库的安装
- C#实现把指定数据写入串口
- “传奇”图象数据存储方式
- Ruby实现的矩阵连乘算法
- 修复mysql数据库
- C#插入法排序算法实例分析
- 可自定义oem的萝卜家园 Ghost XP 新春装机版 V200801 下载
- 浅析SQL数据操作语句
- SQLServer 数据导入导出的几种方法小结
- MySQL数据备份之mysqldump的使用详解
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- C#实现窗体间传递数据实例
- 算法练习之从String.indexOf的模拟实现开始