重
庆交通大学
《计算机操作系统》课程设计报告
班 级:
姓 名:
学 号:
课程设计题目:
所 属 课 程 :
实验室(中心):
指 导 教 师 :
完 成 时 间 :
计软专业 2013 级 班 先来先服务问题 计算机操作系统 语音楼801 2015 年 11 月20 日
信息科学与工程学院课程设计成绩单
课程名称:计算机操作系统 姓名 刘克 性别 男 综合成绩 学号 631306050224 指导教师:刘洋 班级 软件 1302班 程序运行情况 (占总成绩20%) □能正确运行 □基本能正确运行 □能运行但结果不完善 (20分) (15分) (10分) □基本完善 (8 分) □不完善 (5 分) □完善 程序功能完善程度 (10 分) (占总成绩 10%) □合理 程序结构的合理性 (10 分) (占总成绩 10%) □基本合理 (8 分) □不太合理 (5 分) □概念正确有创新 □能正确回答所有问题 □基本能正确回答 (40 分) (35 分) (30 分) 对问题的答辩情况 (占总成绩 40%) □部分问题回答概念不清晰 (20 分) 学生的工作态度与 □工作态度认真能独立完成任务 □工作态度认真但独立性较差 独立工作能力 (10 分) (8 分) (占总成绩 10%) □工作态度基本认真但缺乏独立性 (5 分) 设计报告的规范性 □符合规范 (占总成绩 10%) (10 分) □基本符合规范 (8 分) □规范性较差 (5 分)
重庆交通学院信息科学与工程学院课程设计任务书
课 程 题 目 计算机操作系统 班级 软件2013级 班 指导教师 完成时间 2015年6月 日 至2015年11月 日 刘洋 先来先服务问题 主要 内容 1.利用进程调度算法来模拟CPU先来先服务的特点。 设计报告要求 1.封面; 2.课程设计成绩单、课程设计任务书 3.内容提要; 4.“课程设计报告”正文部分: 主要应包括: ①问题分析和任务定义; ②环境简介; ③设计:主要是指数据结构与核心算法的设计描述;操作界面的设计;主要功能的算法框架;测试用例设计等内容。 ④编译参数与步骤的说明; ⑤上机调试总结与分析; ⑥用户使用说明; ⑦测试数据与测试结果等内容。 ⑧课程设计总结:可以包括课程设计过程的收获、遇到的问题及解决过程的思考、对数据结构这门课程的思考和认识等内容。 ⑨附录程序清单 5.参考文献 1.题目用黑体三号,段后距18磅(或1行),居中对齐; 2.标题用黑体四号,段前、段后距6磅(或0.3行); 3.正文用小四号宋体,行距为1.25倍行距; 4.标题按“一”、“㈠”、“1”、“⑴”顺序编号。 星期 周次 版面要求 指导时间安排 指导 地点
一 二 三 四 五 六 17周 18周
一、 问题分析和任务定义
(1) 问题分析
本问题是要模拟CPU先来先服务进程调度,即多个进程谁先得到CPU资源谁就先执行,其余的进入等待序列。等到进程执行完毕,释放CPU资源之后,最早进入等待序列的进程优先执行。依次类推,直到所有的进程执行完毕。
先来先服务(First Come First Server)是典型的进程常见的进程调度算法。FCFS总是把当前处于就绪队列之首的那个进程调度到运行状态。也就说,它只考虑进程进入就绪队列的先后,而不考虑它的下一个CPU周期的长短及其他因素。FCFS算法简单易行,但性能却不大好。
(2) 任务定义
对于FCFS算法,一般使用队列来完成,因为队列有着先来先服务的特点。利用java编写可视化程序,在界面上绘制4个小球,绘制一个就绪队列的矩形和一个CPU矩形。点击“开始”,则4个小球以不同的速度(速度每次开始运行程序随机生成)开始运动,最先到达CPU边缘的小球优先通过CPU矩形,其余的小球在就绪队列矩形开始等待。小球通过CPU矩形之后,先进入就绪队列的小球优先通过CPU矩形。直到所有的小球通过CPU矩形。
二、 环境简介
开发工具:eclipse 操作系统:win10
三、 设计:主要是指数据结构与核心算法的设计描述;操作界面的
设计;主要功能的算法框架;测试用例设计等内容。
(1) 界面设计
如上所示:左侧是初始状态的小球,右侧是就绪队列和CPU矩形。下面是“开始”、“关闭”、“重置”按钮。
(2) 算法设计
首先定义两个队列waitQueue(等待队列)和runQueue(运行队列),定义move函数来控制小球的运动。小球开始运动到CPU边缘时首先判断runQueue队列之中是否有元素,如果没有则将小球的序号进队,如果有元素,则要判断该元素是否是它本身(因为move函数要不断的调用,下次判断时队列之中的元素有可能是它本身),如果不是,则进入waitQueue。进入runQueue之中的小球可以继续前进,等到小球运动出CPU矩形之后,则从runQueue出队并且从waitQueue弹出一个元素进入runQueu之中。这样最早进入等待序列中是小球就可以继续前进了。
move函数代码如下:
public void move(int i)//i为小球编号,n为移动速度 {
if(finishnum==3&&moveX[i]<770)
{moveX[i]++;}
else {
百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库先来先服务问题java程序设计报告在线全文阅读。
相关推荐: