【问题标题】:Processor Manager and Job Interrupts处理器管理器和作业中断
【发布时间】:2013-03-17 08:02:05
【问题描述】:

这是我在 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 毫秒的队列中完成。以防万一有人想知道。

【问题讨论】:

    标签: jobs processor interrupt-handling interrupt


    【解决方案1】:

    3 中断 - 当作业在第三级(即 20 毫秒)充分利用之前完成其执行时 - 让调度程序安排另一个进程。

    【讨论】:

    • 那么,您是说在执行结束时,作业会因上下文切换到另一个作业而中断?但是如果作业执行完了,怎么可能中断呢?
    • 原来只有2个中断,请参考我对原帖的编辑。
    【解决方案2】:

    2 中断,教练出错。该作业在 20ms 队列中完成。

    【讨论】:

      猜你喜欢
      • 2021-09-07
      • 1970-01-01
      • 2014-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-10
      • 1970-01-01
      相关资源
      最近更新 更多