1

这是我在 CIS-21:操作系统课上的作业中的一个问题,我已经有了答案,因为导师给了我们,但他不想解释为什么这是答案。那么问题来了:

在系统中运行的作业,每个队列具有可变的时间量,需要 30 毫秒才能完成。如果第一个队列的时间量为 5 毫秒,之后每个队列的时间量是前一个队列的两倍,那么作业将被中断多少次,它将在哪个队列上完成执行?

第二部分很简单,作业将在第三级队列中完成(第一级队列为 5 毫秒,第二级队列为 10 毫秒,第三级队列为 20 毫秒)。由于作业需要 30 毫秒,因此它将在一级队列中执行 5 毫秒,然后在二级队列中执行 10 毫秒,在三级队列中执行 15 毫秒。

问题的第一部分是每个人,我的意思是每个人,在课堂上没有得到什么。教练说总共会有3次中断。但是当我们都说这将是 2 次中断时,他生气并继续前进.... 很奇怪,是吧?我花了这么多钱来接受适当的教育。

无论如何,我们的想法是,作业在第一个队列中运行 5 毫秒,然后发出中断,更新其 PCB(个人控制块),然后将其移入下一个较低的队列,即 10 毫秒队列. 一旦轮到它,作业将在二级队列中执行 10 毫秒,并发出中断。信息将在 PCB 中更新,作业将移动到下一个较低的队列,即 20 毫秒队列。到目前为止,已经中断了两次。一旦作业到达第三级队列中的队列顶部,它就会执行 15 秒,并在队列的时间段到期之前完成它的执行。

那么,他从哪里得到第三次中断呢?当程序完成执行时会发出第三个中断吗?我认为只有在存在内部中断时才会发生作业中断,例如 I/O 请求、时间段到期且作业周期未完成时,或者作业中存在非法操作/指令时。

那么,是否有 2 或 3 次工作中断,为什么?

编辑:在互联网上得到相互矛盾的答案后,我给导师发了电子邮件,他承认他犯了一个错误,而且只有 2 次中断,因为工作在 20 毫秒的队列中完成。以防万一有人想知道。

4

2 回答 2

0

3 中断 - 当作业在第三级(即 20 毫秒)使用完整量子之前完成其执行时 - 密切调度程序以安排另一个进程。

于 2013-03-17T20:30:28.257 回答
0

2 打断,教练犯了一个错误。该作业由 20 毫秒队列完成。

于 2013-06-01T14:56:53.820 回答