- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构程序设计 机器调度问题
学 号
数据库系统原理课程设计
设计说明书
起止日期: 年 月 日 至 年 月 日
学生姓名 班级 成绩 指导教师(签字)
系
年月日
天津城市建设学院
课程设计任务书
20—2012学年第学期
系 专业 班级
课程设计名称:
设计题目:
完成期限:自 年 月 日至 年 月 日共 周
设计依据、要求及主要内容(可另加附页):
m台机器需要处理n个作业,设作业i的处理时间为ti,则对n个作业进行机器分配,使得:
(1) 一台机器在同一时间内只能处理一个作业;
(2) 一个作业不能同时在两台机器上处理;
(3) 作业i一旦运行,则需要ti个连续时间单位。
设计算法进行合理调度,使得在m台机器上处理n个作业所需要的处理时间最短。
2) 基本要求
(1) 建立问题模型,设计数据结构;
(2) 设计调度算法,为每个作业分配一台可用机器;
(3) 给出分配方案。
3) 设计思想
假设有七个作业,所需时间分别为{2, 14, 4, 16, 6, 5, 3},有三台机器,编号分别为m1、m2和m3。这七个作业在三台机器上进行调度的情形如图9所示,阴影区代表作业的运行区间。作业4在0到16时间被调度到机器1上运行,在这16个时间单位中,机器1完成了对作业4的处理;作业2在0到14时间被调度到机器2上处理,之后机器2在14到17时间处理作业7;在机器3上,作业5在0~6时间完成,作业6在6~11时间完成,作业3在11~15时间完成,作业1在15~17时间完成。注意到作业i只能在一台机器上从si时刻到si +ti时间完成且任何机器在同一时刻仅能处理一个作业,因此最短调度长度为17。
在上述处理中,采用了最长时间优先(LPT)的简单调度策略。在LPT算法中,作业按其所需时间的递减顺序排列,在分配一个作业时,将其分配给最先变为空闲的机器。
下面设计完成LPT算法的存储结构。
· 为每个机器设计数据类型:
struct MachineNode
{
int ID; //机器号
int avail; //机器可用时刻
};
· 为每个作业设计数据类型:
struct JobNode
{
int ID; //作业号
int time; //处理时间
};
LPT算法用伪代码描述如下:
1. 如果作业数n≤机器数m,则
1.1 将作业i分配到机器i上;
1.2 最短调度长度等于n个作业中处理时间最大值;
2. 否则,重复执行以下操作,直到n个作业都被分配:
2.1 将n个作业按处理时间建成一个大根堆H1;
2.2 将m个机器按可用时刻建立一个小根堆H2;
2.3 将堆H1的堆顶作业分配给堆H2的堆顶机器;
2.4 将H2的堆顶机器加上H1的堆顶作业的处理时间重新插入h2中;
2.5 将堆H1的堆顶元素删除;
3. 堆H2的堆顶元素就是最短调度时间;
四、参考文献
1.王红梅.数据结构.清华大学出版社
2.王红梅.数据结构学习辅导与实验指导.清华大学出版社
3.严蔚敏,吴伟民.数据结构(C语言版).清华大学出版社
一、需求分析
本系统主要针对机器、工作数,等问题的分配调度而开发设计,系统中输入工作数、完成时间,以及机器数量,就可以计算出完成工作所需的最短时间。此系统可以广泛的应用于各个领域的生产型企业,以及各行各业中涉及到工作分配的问题。
二、问题求解
1、一个钻石加工工厂要加工5颗钻石,按照钻石规格的不同5颗钻石分别需要1天、2天、3天、4天、5天。加工完成。现在一共有三名加工工人。问完成这批钻石加工最短需要多长时间。
对于这个问题首先建立一个模型。给5个钻石编号A、B、C、D、E
A——1天、B——2天、C——3天、D——4天、E——5天
工人:甲、乙、丙三名。
要想做到能在最短的时间能完成该问题,就涉及到一个工作分配的问题。
实现最短时间完成工作,首先在工作分配上应该将工作的优先级别划分一下。按照时间的长短我们可以将其划分为。
EDCBA
那么在完成工作的时候就应该按照优先级来考虑,首先将EDC三个任务交给甲乙丙三个工人完成。
甲——E(5天)
乙——D(4天)
丙——C(3天)
在第三天的时候丙完成了任务C因此再将任务B分配给丙来完成。
丙——C(3天)——B(2天)
在第四天的时候乙完成了任务D,因此再将最后一个工作A交给乙
乙——D(4天)——A(1天)
至此在第五天的时候A、B、C、D、E五颗钻石全部加工完成。即:
甲——E(5天)
文档评论(0)