1、1 课程课程设计报告设计报告 设计题目:设计题目:处理机调度算法模拟实现 班级班级 : 学号学号: 姓名姓名: 指导老师指导老师: 设计时间:设计时间: 2012 年八月 2 摘要摘要 1、主要算法包括:、主要算法包括: 先来先服务、短作业优先、高优先权优先、基于时间片的轮转、多级反馈队 列调度算法。 2、内容要求:、内容要求: 1)定义与算法相关的数据结构,如进程控制块(PCB) ,相关队列(队列要 考虑实际应用,应采用类似于类的私有成员定义所用到的队列,并使用公有函数 提供对类的操作) ; 2)所设计的系统中至少需要实现三种以上调度算法,且必须包含多级反馈 队列调度算法; 3)提供用户选择
2、功能,用户可以根据需要选择采用何种调度算法; 4)算法执行结构之后,应该给出周转时间和平均周转时间。 本系统模拟操作系统处理机调度算法的实现,实现了先来先服务、短作业优先、 基于时间片的轮转、多级反馈队列调度算法四种调度算法的模拟实现,可以根据 需要自行选择合适的调度算法,进程用 PCB 来控制,队列由 PCB 相链接而成, 分为就绪队列,阻塞队列,完成队列。进程在在运行时可以随时挂起暂停进程执 行,待条件满足后,继续恢复运行,进程在运行的时候优先权是不断的变化的, 运行的时间越长,优先级会相应减小。 关键词:先来先服务,短作业优先,高优先权优先,基于时间片的轮转, 多级反馈队列调度算法。 3
3、 目录目录 1. 概述概述 .4 2. 课程设计任务及要求课程设计任务及要求 2.1 设计任务设计任务 4 2.2 设计要求设计要求 4 3. 算法及数据结构算法及数据结构 3.1 算法的总体思想(流程)算法的总体思想(流程) 5 3.2 PCB 模块模块 3.2.1 功能(运算)功能(运算) .5 3.2.2 数据结构(存储结构)数据结构(存储结构) .5 3.2.3 算法(实现)算法(实现) .5 3.3 进程队列进程队列模块模块 3.3.1 功能功能 6 3.3.2 数据结构数据结构 6 3.3.3 算法算法 6 4. 程序设计与实现程序设计与实现 4.1 程序流程图程序流程图 7 4.
4、2 程序说明(代码)程序说明(代码) 4.3 实验结果实验结果 10 5. 结论结论 11 6. 参考文献。参考文献。 11 7. 收获、体会和建议。收获、体会和建议。 11 4 一:概述 定义与算法相关的数据结构,模拟操作系统处理机调度算法的实现,至少实 现 3 种以上算法,且必须包含多级反馈队列调度算法;提供用户选择功能,用户 可以根据需要选择采用何种调度算法;算法执行结构之后,应该给出周转时间和 平均周转时间。 二:课程设计任务及要求课程设计任务及要求 设计任务: 使用 Visual C+ 模拟实现处理机调度算法,实现先来先服务、短作业优先、 基于时间片的轮转、多级反馈队列调度算法。 设
5、计要求: 所设计的系统中至少需要实现三种以上调度算法, 且必须包含多级反馈队列 调度算法;提供用户选择功能,用户可以根据需要选择采用何种调度算法; 算法执行结构之后,应该给出周转时间和平均周转时间。 5 三:三:算法及数据结构算法及数据结构 进程控制块数据结构和相应的操作。进程控制块数据结构和相应的操作。 class PCB public: PCB(void); PCB(PCB void Creat(CString ,int ); PCB(void); void Update(); /剩余时间与运行时间更新 CString ShowPro(); /返回进程信息 bool IsEnd(); /判断进行是否执行完成 void Dispose(); /锁定进程 bool IsLocked(); /判断进程是否锁住 void Terminal(); /强制终止进程函数 int GetServiceT(); /获得需要服务时间 float GetPrio(); /返回进程优先级 CString GetCurTime(); /返回当前系统时间 CString GetName(); /获取进程名称 void UpdateGoneTime(); /更新进程周转时间 int GetGoneTime(); /返回进程周转时间 int