广工操作系统课程设计报告文档最后含源码地址

上传人:壹****1 文档编号:472145435 上传时间:2023-05-09 格式:DOC 页数:8 大小:376KB
返回 下载 相关 举报
广工操作系统课程设计报告文档最后含源码地址_第1页
第1页 / 共8页
广工操作系统课程设计报告文档最后含源码地址_第2页
第2页 / 共8页
广工操作系统课程设计报告文档最后含源码地址_第3页
第3页 / 共8页
广工操作系统课程设计报告文档最后含源码地址_第4页
第4页 / 共8页
广工操作系统课程设计报告文档最后含源码地址_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《广工操作系统课程设计报告文档最后含源码地址》由会员分享,可在线阅读,更多相关《广工操作系统课程设计报告文档最后含源码地址(8页珍藏版)》请在金锄头文库上搜索。

1、成绩操作系统课程设计学生学院_ 计算机学院_专业班级 13级计科9 学 号 学生姓名 指导教师 李敏 2015 年 12 月 29 日一、课程设计介绍设计模拟一个实现多道批处理系统的两级调度。通过具体的作业调度、进程调度、内存分配等功能的实现,加深对多道批处理系统的两级调度模型和实现过程的理解。 作业从进入系统到最后完成,要经历两级调度:作业调度和进程调度。作业调度是高级调度,它的主要功能是根据一定的算法,从输入井中选中若干个作业,分配必要的资源,如主存、外设等,为它们建立初始状态为就绪的作业进程。进程调度是低级调度,它的主要功能是根据一定的算法将CPU分派给就绪队列中的一个进程。在本次课程设

2、计中假定系统可供用户使用的主存空间共100KB,并有4台磁带机。主存分配采用可变分区分配方式且主存中信息不允许移动,对磁带机采用静态分配策略,作业调度分别采用先来先服务算法和最小作业优先算法,进程调度则采用先来先服务和最短进程优先算法。二、课程设计环境1. 计算机及操作系统:PC机,WindowsXP系统2. 程序设计使用工具:Microsoft VisualC+ 6.03. 程序设计语言:C语言三、 课程设计思想假定“预输入”程序已经把一批作业的信息存放在输入井了,并为它们建立了相应作业表。测试数据如下:作业 到达时间 估计运行时间 内存需要 磁带机需要JOB1 10:00 25分钟 15K

3、 2台JOB2 10:20 30分钟 60K 1台JOB3 10:30 10分钟 50K 3台JOB4 10:35 20分钟 10K 2台JOB5 10:40 15分钟 30K 2台本次课程设计采用的是两个作业调度算法:先来先服务算法和短作业优先算法,两个进程调度算法:先来先服务算法,短进程优先算法。系统根据所选算法组合对输入系统的作业进行两级调度(作业调度,进程调度)。分别在不同算法控制下运行设计的程序,依次显示被选中作业、内存空闲区和磁带机的情况,输出不同算法作业的选中次序及作业平均周转时间。作业的数据初始化输入通过读取文件这种方式进行导入。系统运行是通过设置指针来循环运作。四、 系统结构

4、说明系统的各个模块之间的关系如下:五、 数据结构说明1 定义一个显示时间的结构体,成员包括时、分struct timeint hour; /时int min; /分;2 建立作业控制块,具体成员如下所示:struct jcb char name10; /进程名 struct time arr_time; /到达时间 struct time ent_time; /进入内存时间 struct time sta_time; /开始时间 struct time fin_time; /结束时间int run_time; /估计运行时间 int tr_time; /周转时间 int men; /主存需要

5、int mac; /磁带机 int sta; /状态位 struct jcb* next;typedef struct jcb JCB;3 进程的链接结构体,成员如下所示:struct link char name10; /进程名 struct time arr_time; /到达时间 struct time ent_time; /进入内存时间 struct time sta_time; /开始时间 struct time fin_time; /结束时间int run_time; /估计运行时间 int tr_time; /周转时间 int addr; /起始地址 int len; /分区大小

6、 int mac; /磁带机 int state; /状态位,0为空闲,1为被使用 struct link *f; /前指针 struct link *b; /后指针 ;六、 主要调度算法思想流程图1 整体算法流程图开始选择两级调度的方式JSJF&PSPFJSJF&PFCFSJFCFS&PSPFJFCFS&PFCFS为作业建立链表依据所选择的算法对链表进行排序作业调度依据所择算法进行进程调度释放并合并内存输出最终调度结果结束2 实现代码详见CourseDesign.cpp七、 运行测试1. 测试数据(test.txt):进程名 到达 运行主存磁带机JOB110:0025152JOB210:20

7、30601JOB310:3010503JOB410:3520102JOB510:40153022.程序界面1) 算法组合:JFCFS&PFCFS根据先来先服务,第一个进行调度的是JOB1,到达时间为10:00,运行时间为25分钟,周转时间为25分钟。为该作业分配内存和磁带机,磁带机由4-2,运行后得到如下图: 实际程序运行所得并不止以上数据,除此以外还有显示内存情况的图表,这里只是为了分析清楚而把主要数据给出,具体数据可运行程序所得,下面分析和以上一样都做了简化。 第二个进行调度的是JOB2,到达时间为10:20,完成时间为10:55,周转时间为35分钟,分配内存和磁带机,如下图所示: 如此类

8、推,最后得出所有作业的运行情况: 此时按回车键返回,重新选择新的算法组合,得到各算法组合的所有作业运行情况2) 算法组合:JFCFS&PSPF:3) 算法组合:JSJF&PFCFS:4) 算法组合:JSJF&PSPF:得到四种组合的结果后,我们就可以来比较一下四种方式下得到的平均周转时间,在选择调度方式时输入5,程序会运行得到四种方式下的作业运行情况和各自的平均周转时间。3 退出系统 回车,输入0结束程序。八、 使用说明书1 运行程序,会显示用户界面,程序左下角会提示用户输入要进行模拟的文件名。若输入错误,程序会出现错误提示,然后重新输入正确的文件名。2 输入文件名后,程序会显示文件内容并提示

9、点击任意键继续运行。3 选择进行调度的方式,分别对应1、2、3、4选项,5选项用来比较四种调度方式的平均周转时间。0是结束并退出程序。4 选择要进行的调度方式后,程序自动模拟两级调度情况,显示当前系统时间、内存分配、磁带机分配以及作业调度的情况。5 点击任意键,返回步骤3选择调度方式,如此类推。6 注:在显示内存分配情况的图表中,#代表此时并无作业调进内存,除了起始地址、状态、大小有数据之外,其余用0表示其他项并没有数据。九、 课程设计总结这次的课程设计内容就是实验的前三个内容的组合:进程调度,作业调度,内存分配与回收。这三个内容都充分地体现了计算机运行作业和程序的各个方面,从而体现了计算机的底层是如何实现进程和作业的分配和使用。其次,我觉得编程设计是学习软件工程必不可少的也是最重要的一个过程。通过对课程设计的实现,我学到了很多知识。原来,学语言是要打牢基础的。在课程设计的过程中我感觉到自己的语言知识还远远不够,就一个简单的课程设计也能把我搞得头晕。还有算法的基本思想是要靠平时的积累与体会才能提高的。看来以后要多多专研这方面。希望以后能有更多类似的课程设计,因为我觉得受益匪浅。源码下载地址:http:/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号