2022年采用短进程优先算法模拟实现进程调度 .pdf
-
资源ID:33673334
资源大小:56.56KB
全文页数:7页
- 资源格式: PDF
下载积分:4.3金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
2022年采用短进程优先算法模拟实现进程调度 .pdf
青 岛 农 业 大 学操 作 系 统 课 程 设 计 报 告设 计 题 目采用短进程优先算法模拟实现进程调度学生专业班级计算机科学与技术 2007 级 02 班学生姓名(学号)设计小组其他同学姓名(学号)指 导 教 师完 成 时 间 2010-04-25 设 计 地 点实验室2010 年 4 月 25 日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 7 页 - - - - - - - - - 一、课程设计的目的与任务题目二:采用短作业优先算法模拟实现进程调度二、题目分析 (本部分要求写出自己所作部分模块功能及实现原理)分析课程任务:1、为进程定义数据结构。(1)进程定义为带有头节点的链表节点。定义类 class JCB (2)程序中采用动态分配的方法分配进程。2、主函数创建进程动态链表。(1)创建动态链表。1 创建头节点。头节点 head 2 倒叙插入新节点(插入过程中初始化) 。(2)执行排序算法,将创建的进程动态链表按照到达时间先后排序。执行函数 sort (JCB * head ,int n )(3)执行调度算法,将进程动态链表中的进程逐个抽选。执行函数 shadule (JCB * head ,int n )3、对动态进程链表排序。对链表排序Sort (JCB * head ,int n )采用插入排序法4、采用短进程优先算法循环输出各个进程。(1)从进程链表中抽取最短进程。调用 getJCB(JCB * front,JCB * back )(2)将进程信息输出,执行进程,将进程的状态指示run 修改为 true 。三、系统设计1、设计方案论证2、详细设计(画出流程图、模块结构图)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 7 页 - - - - - - - - - 四、系统实施(给出程序代码及注释、给出程序运行图)#include #include using namespace std; /进程结构class JCB public: string name; int cometime; int sertime; bool run; JCB * next; public: JCB(string tn=,int tc=-1,int ser=0,bool tr=false,JCB *nex=NULL) :name(tn),cometime(tc),sertime(ser),run(tr),next(nex) void show() coutt 进程名: namet 到达时间: cometimet服务时间: sertimenext; head-next=NULL; while(p!=NULL) q=p-next; if(head-next=NULL) p-next=head-next; head-next=p; else s=head; while(p-cometimes-next-cometime) s=s-next; p-next=s-next; s-next=p; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 7 页 - - - - - - - - - p=q; /辅助函数,查找JCB JCB * getJCB(JCB *q,JCB *p) JCB *find=q; int minsertime=q-sertime; while(q!=p) if(q-sertimerun=false) minsertime=q-sertime; find=q; q=q-next; return find; /shadule 调度函数/ void shadule(JCB *head,int n) JCB *s,*q,*p=head-next; JCB *sp; int sum_rolltime=p-sertime-p-cometime; int waittime=p-cometime; int sum_rollsertime=p-sertime; int i=1; sp=p; for(int num=0;numrun=true) p=p-next; q=p; while(p!=NULL&p-cometimenext; s=getJCB(q,p); cout 第 i+show(); s-run=true; waittime+=s-sertime; cout 完 成 时 间 ( 下 一 个 进 程 开 始 时 间 ) : waittimet周 转 时 间 :cometime) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 7 页 - - - - - - - - - t 带权周转时间:sertime)cometime); sum_rollsertime+=s-sertime; p=sp; cout/平均周转时间:sum_rolltime/float(n)endl; cout/平均带权周转时间:sum_rolltime/float(sum_rollsertime)endl; void main() int num; string name; int cometime,sertime; cout 输入进程个数:num; JCB *head=new JCB(); for(int i=0;inum;+i) coutname; cout 输入进程i 的到达时间和服务时间:cometimesertime; JCB *p=new JCB(name,cometime,sertime,false,head-next); head-next=p; sort(head); shadule(head,num); 五、总结与体会名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 7 页 - - - - - - - - - 一、课程设计的目的与任务二、题目分析(本部分要求写出自己所作部分模块功能及实现原理)三、系统设计1、设计方案论证2、详细设计(画出流程图、模块结构图)四、系统实施(给出程序代码及注释、给出程序运行图)五、总结与体会名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 7 页 - - - - - - - - - 课 程 论 文 成 绩 评 定 表学生姓名专业班级论文题目指导教师评语及意见:指导教师评阅成绩:指导教师签字年月日注:此表装订在课程 设计报告 之后。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 7 页 - - - - - - - - -