1、 高级程序设计语言高级程序设计语言课程设计报告课程设计报告 题目:题目: 处理机低级调度模拟系统处理机低级调度模拟系统 专业:专业: 班级:班级: 学号:学号: 姓名:姓名: 指导教师:指导教师: 完成日期:完成日期:20132013 年年 0303 月月 25 日日 一、一、课程设计目的课程设计目的 1、掌握 C 语言数组、函数、指针、结构体的综合应用。 2、掌握使用 C 语言,进行应用性的开发。 3、掌握系统数据结构与算法的设计。 二、课程设计内容二、课程设计内容 课程设计题目:处理机低级调度模拟系统 课程设计内容:根据操作系统处理机不同的调度算法,使用 C 语言 模拟实现处理机调度过程。
2、 1、系统数据结构 (1)进程控制块(pcb) :进程名称、到达时间、进程要求运行时 间、进程已运行时间、指针、进程状态等等(要根据不同算法的需要 定义全面的数据结构) (2)进程队列(PQueue):链表 2、调度算法 (1)短进程优先调度(SJF) :是以进入系统的进程所提出的“执 行时间”为标准,总是优先选取执行时间最短的进程。 (2)高响应比优先调度(HRN) :是在每次调度前都要计算所有 被选进程(在后备队列中)的响应比,然后选择响应比最高的进程执 行。响应比=(等待时间+服务时间)/服务时间 三、三、课程设计的要求课程设计的要求 1、按照给出的题目内容 (1)完成系统数据结构设计与
3、实现、系统算法设计与实现、系统模 块设计与实现、系统总体的设计与实现。 (2)系统需要一个简单操作界面,例如: = 1. 短进程优先调度 2. 高响应比优先调度 3. 退出 (按数字 1、2、3,选择操作) = (3)对每种调度算法都要求输出每个进程(进程数不少于 5)开始 运行时刻、完成时刻、周转时间,以及这组进程的平均周转时间。 (4)画出每种调度算法流程图。 2、写出课程设计报告,设计报告提交形式:电子文档提交 3、个人独立完成。 4、完成时间(1 周) 四、课程设计过程四、课程设计过程 1、系统中所使用的数据结构及说明、系统中所使用的数据结构及说明 /-数据结构的定义- /定义进程控制
4、块 PCB typedef struct PCB char PID5; /进程标示符 char Name10; /进程名称 int PRI; /进程的优先级(越小越高) float NeedTime; /进程要求运行时间(服务时间) float StartTime; /进程进入就绪队列的时间(到达时间) float RunBeginTime; /开始运行时间 float UpTime; /进程已运行时间 float OverTime; /进程运行完成的时间 float TurnaroundTime; /周转时间 float RightTTime; /带权周转时间 struct PCB *nex
5、t; PCB,*QueuePtr; /定义进程队列 typedef struct QueuePtr front,rear; /队头、队尾指针 PQueue; 2、系统功能结构系统功能结构 本系统是处理机低级调度模拟系统, 主要通过模拟来实现处理机 调度, 调度方式有短进程优先调度 (SJF) 、 高响应比优先调度 (HRN) 、 两种调度方式。 系统运行过程如下:输入进程个数,输入进程详细信息,通过简单操 作界面来选择调度方式,调度的过程和结果,重新选择调度方式或者 选择结束。 3、调度算法流程图(如下图所示)调度算法流程图(如下图所示) 短进程优先调度 开始 输入进程个 数和进程详 细信息 以后到达的进程按到达时间和服 务时间进行综合排序 令p为队 首的进程 计算p的开始运行 时间,结束运行时 间,周转时间和带 权周转时间 p=p-next p!=NULL? YES 计算平均周转 时间和平均带 权周转时间 输出平均周转 时间和平均带 权周转时间 结束 输出进程 相关信息 找到第一个到达的 进程并排在队首 NO 高响应比优先调度 开始 输入进程个 数和进程详 细信息 以后到达的进程按响 应比大小进行排序 令p为队 首的进程 计算p的开始运行 时间,结束运行时 间,周转时间和带 权周转时间 p=p-next p!=NULL? YES 计算平均周转 时间和平均带 权周转时间