您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 操作系统进程模拟调度课程设计-短作业优先-先来先服务-最高响应比优先级
课程设计说明书题目:进程调度模拟院系:计算机科学与工程专业班级:学号:学生姓名:指导教师:2015年06月12日安徽理工大学课程设计(论文)任务书计算机院系计算机教研室学号学生姓名专业(班级)设计题目进程调度模拟设计技术参数编写并调试一个单道处理系统的作业等待模拟程序。在多道程序和多任务系统中,系统内同时处于就绪状态的进程可能有若干个。也就是说能运行的进程数大于处理机个数。为了使系统中的进程能有条不紊地工作,必须选用某种调度策略,选择一进程占有处理机。要求学生设计一个模拟处理机调度算法,以巩固和加深处理机制调度的概念。设计要求编写一个进程调度程序,允许多个进程并行执行。(1)进程调度算法包括:时间片轮转法,短作业优先算法,动态优先级算法。(2)可选择进程数量。(3)本程序包括三种算法,用C++语言实现,执行时在主界面选择算法,进入子页面后输入进程数,执行,显示结果工作量要求设计说明书的字数在3000字以上。工作计划2015.6.12-6.13根据课程设计的要求,查找相关资料,完成需求分析;2015.6.13-6.13进行系统的概要设计;2015.6.14-6.15进行系统的详细设计和源代码的书写;2015.6.16-6.17对系统进行调试分析,写出课程设计报告。参考资料[1]龚沛曾等编.C/C++程序设计教程.北京:高等教育出版社,2004.[2]谭浩强编著.C程序设计(第二版).北京:清华大学出版社,1999.[3]张尧学等编著.计算机操作系统教程.北京:清华大学出版社,2011.[4]孟庆昌等编.操作系统.北京:电子工业出版社,2009.[5]刘腾红等编著.操作系统.北京:中国铁道出版社,2008.[6]汤子瀛等编著.计算机操作系统.西安:西安电子科技大学出版社,2011指导教师签字教研室主任签字2015年05月18日安徽理工大学课程设计(论文)成绩评定表指导教师评语:成绩:指导教师:年月日目录目录问题描述........................................................................................................................5需求分析........................................................................................................................5概要设计........................................................................................................................6详细设计........................................................................................................................9调试分析......................................................................................................................12用户手册......................................................................................................................13测试结果......................................................................................................................13设计体会......................................................................................................................14参考文献......................................................................................................................15附录..............................................................................................................................16问题描述本课程设计是学习完“操作系统原理”课程后进行的一次全面的综合训练,通过课程设计,更好地掌握操作系统的原理及实现方法,加深对操作系统基础理论和重要算法的理解,加强学生的动手能力需求分析编写并调试一个单道处理系统的作业等待模拟程序。在多道程序和多任务系统中,系统内同时处于就绪状态的进程可能有若干个。也就是说能运行的进程数大于处理机个数。为了使系统中的进程能有条不紊地工作,必须选用某种调度策略,选择一进程占有处理机。要求学生设计一个模拟处理机调度算法,以巩固和加深处理机制调度的概念。设计要求:(1)进程调度算法包括:先来先服务调度法,短作业优先调度算法,最高优先数优先调度算法。(2)可选择进程数量。(3)本程序包括三种算法,用C++语言实现,执行时在主界面选择算法,进入子页面后输入进程数,执行,显示结果。概要设计开始当前作业为依编号找到第一个还没执行的作业当前作业是最后一个作业和下一个还没执行的作业比较返回这一次要执行的作业FCFS当前作业取较早到达的一个YN图11、先来先服务调度算法实验步骤:(1)初始化进程信息。(2)按先来先服务算法将进程排成就绪队列。(3)检查所有队列是否为空,若空则结束,否则将队首进程调入执行。(4)检查该运行进程是否运行完毕,若运行完毕,将此进程状态改为完成;否则,继续运行直到此进程运行完为止,才运行就绪队列的下一个进程。(5)重复步骤(3)、(4),直到就绪队列为空。开始当前作业为依编号找到第一个还没执行的作业当前作业是最后一个作业和下一个还没执行的作业比较返回这一次要执行的作业当前作业取较早到达且服务时间较短的一个YN当前在上次作业被执行完之前到达同时到达当前作业取服务时间较短的一个当前作业取较早到达的一个YNYNSJF图22、短作业优先调度算法实验步骤:(1)初始化进程信息。(2)按各个进程运行所需时间由短到长排列成就绪队列。(3)检查所有队列是否为空,若空则结束,否则将队首进程调入执行。(4)检查该运行进程是否运行完毕,若运行完毕,将此进程状态改为完成,插入另一个完成进程队列;否则,重新对它们时间由短到长进行排序,插入就绪队列适当位置后等待CPU。(5)重复步骤(3)、(4),直到就绪队列为空。开始当前作业为依编号找到第一个还没执行的作业当前作业是最后一个作业和下一个还没执行的作业比较返回这一次要执行的作业当前作业取较早到达且相应比较高的一个YN当前在上次作业被执行完之前到达同时到达当前作业取相应比较高的一个当前作业取较早到达的一个YNYNHRN图33、最高优先数优先调度算法(即把处理机分配给优先数最高的进程)实验步骤:(1)初始化进程信息。(2)将各个进程按优先数从高到低排列成就绪队列。(3)检查所有队列是否为空,若空则结束,否则将队首进程调入执行。(4)检查该运行进程是否运行完毕,若运行完毕,将此进程状态改为完成,插入另一个完成进程队列;否则,将该进程的优先数减1,然后重新对它进行排序,插入就绪队列适当位置后等待CPU。(5)重复步骤(3)、(4),直到就绪队列为空。详细设计1、功能模块设计(1)主要函数(三种算法的核心函数相同):a.主函数b.初始化进程函数c.使用户输入仅为正整数的函数d.排序函数e.就绪函数f.查看函数g.显示函数2、数据结构设计(1)先来先服务调度算法:typedefstructpcb/*定义结构体数组,内部包含进程的信息*/{charname[10];/*定义进程名*/intarrivetime;/*定义到达时间*/intneedtime;/*定义进程需要运行的时间*/intruntime;/*定义进程已用CPU时间*/charstate;/*定义进程的运行状态*/structpcb*link;/*进程块的后继指针,用于连接进程队列*/}PCB;(2)短作业优先调度算法:typedefstructpcb/*定义结构体数组,内部包含进程的信息*/{charname[10];/*定义进程名*/intarrivetime;/*定义到达时间*/intneedtime;/*定义进程需要运行的时间*/intruntime;/*定义进程已用CPU时间*/charstate;/*定义进程的运行状态*/structpcb*link;/*进程块的后继指针,用于连接进程队列*/}PCB;(3)最高优先数优先调度算法:typedefstructpcb/*定义结构体数组,内部包含进程的信息*/{charname[10];/*定义进程名*/intsuper;/*定义到达时间*/intneedtime;/*定义进程需要运行的时间*/intruntime;/*定义进程已用CPU时间*/charstate;/*定义进程的运行状态*/structpcb*link;/*进程块的后继指针,用于连接进程队列*/}PCB;2、函数功能描述(1)先来先服务调度算法:a.main()主函数:掌控整个程序的运行过程,是程序的主体部分。b.input()初始化进程函数:初始化各个进程的基本信息:如进程个数、进程名、进程需运行的时间、进程的到达时间、进程的已运行时间、进程的状态。c.geti()使用户输入仅为正整数的函数:使用户输入的进程个数、进程需运行的时间、进程的到达时间都为正整数。d.sort()排序函数:按到达时间从先到后排列成就绪队列,进而等待运行。e.running()就绪函数:进程运行时间到,则置就绪状态。若已运行时间已达到需运行时间,则此进程已完成;若未达到,则继续运行直到时间达到为止。f.check()查看函数:查看哪个进程正在执行,哪些进程在就绪队列中,哪些进程已经完成。g.disp()显示函数:显示各个进程的信息。(2)短作业优先调度算法:a.main()主函数:掌控整个程序的运行过程,是程序的主体部分。b.input()初始化进程函数:初始化各个进程的基本信息:如进程个数、进程名、进程需运行的时间、进程的到达时间、进程的已运行时间、进程的状态。c.geti()使用户输入仅为正整数的函数:使用户输入的进程个数、进程需运行的时间、进程的到达时间都为正整数。d.sort()排序函数:按到达时间从先到后排列成就绪队列,进而等待运行。e.running()就绪函数:进程运行时间到,则置就绪状态。若已运行时间已达到需运行时间,则此进程已完成;若未达到,则继续运行直到时间达到为止。f.check()查看函数:查看哪个进程正在执行,哪些进程在就绪队列中,哪些进程已经完成。g.disp()显示函数:显示各个进程的信息。(3)最高优先数优先调度算法:a.main()主函数:掌控整个程序的运行过程,是程序的主体部分。b.input()初始化进程函数:初始化各个进程的基本信息:如进程个数、进程名、进程需运行的时间、进程的优先数、进程的已运行时间、进程的状态。c.geti()使用户输入仅为正整数的函数:使用户输入的进程个数、进程需运行的时间、进程的优先数都为正整数。d.sort()排序函数:按优先数由高到低排列成就绪队列,进而等待运行。e.runn
本文标题:操作系统进程模拟调度课程设计-短作业优先-先来先服务-最高响应比优先级
链接地址:https://www.777doc.com/doc-5709493 .html