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