首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解时间切片和执行时间

理解时间切片和执行时间
EN

Stack Overflow用户
提问于 2012-03-05 08:47:42
回答 3查看 2.8K关注 0票数 0

我被分配了一个任务。

编写了一个程序来模拟操作系统中的作业调度。工作是随机产生的。每个作业都被赋予一个从1到4的随机优先级,其中1是最高优先级的-and,这是完成其执行的随机时间。

作业不会开始执行并运行到完成,而是共享处理器。操作系统执行一个称为时间片的固定时间单位的作业。在时间片的末尾,当前作业的执行被暂停。然后将作业放在优先级队列中,等待下一个处理器时间的分配。然后,将具有最高优先级的作业从优先级队列中移除并执行一段时间。当第一次生成作业时,如果处理器空闲,它将立即开始执行。否则,它将被放在优先级队列中。

在此分配中,您将需要队列和优先级队列的实现。您可以在Java类库(java.util.PriorityQueue)中使用优先级队列。它实现了接口java.util.Queue。

我混淆了时间片和执行时间。正如我现在所理解的,假设为final timeslice=3,完成所有作业的时间是最终int clock=20分钟。当作业A从0分钟开始时,执行时间为5(在1-5之间随机生成)。在执行作业到第3分钟时,作业A被放入优先级队列,而执行时间为2分钟的作业B在第3分钟进入?完成执行作业B后,作业A进入完成执行还是作业C?

如果我错了,请解释一下。谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-05 09:27:33

在您的问题中,Job还是Job是否被执行(一旦B完成),这应该取决于PriorityQueue返回了什么,这将是具有最高优先级的任务。

如果Job的优先级为1,而Job的优先级为2,PriorityQueue将返回Job,这将得到下一个时间切片。

如果Job的优先级为2,而Job的优先级为4,PriorityQueue将返回Job,这将得到下一个时间切片。

正如adn_295所说,这是一个很好的任务。

票数 0
EN

Stack Overflow用户

发布于 2012-03-05 09:13:10

PriorityQueue总是返回最高优先级的任务,因此每当添加回队列时,它将继续被返回。我建议您尝试实现该解决方案,看看它是如何工作的。(或者使用PriorityQueue编写一个简单的测试程序)

票数 0
EN

Stack Overflow用户

发布于 2012-03-05 09:15:40

首先,这是一个非常好的任务。您需要实现操作系统如何调度作业/任务的确切机制。请参阅这些参考资料,以便对其有清楚的了解。

1) http://oreilly.com/java/archive/quartz.html

2)Job Scheduling Problem in Java

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9563811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档