【问题标题】:RTC vs PIT for scheduler调度程序的 RTC 与 PIT
【发布时间】:2014-01-09 19:34:01
【问题描述】:

我的教授说建议使用 PIT 而不是 RTC 来实现基于 epoch 的循环调度器。他并没有真正提到任何具体的原因,我也想不出来。有什么想法吗?

【问题讨论】:

    标签: operating-system osdev


    【解决方案1】:

    虽然这不能直接回答问题,但这里有一些关于选择抢占计时器的进一步见解。

    在现代系统上(i586+;我不确定 i486 的外部本地 APIC (LAPIC) 是否有计时器)您都不应该使用,因为您总是获得本地 APIC 计时器,它是按核心的。还有更多:使用 PIT 或 RTC 进行定时器中断已经过时了。

    LAPIC 计时器通常用于现代系统的抢占,而 HPET 用于高精度事件。在具有 HPET 的系统上,通常没有物理 PIT;此外,HPET 的前两个比较器能够替换 PIT 和 RTC 中断源,这对它们来说是最简单的配置,并且在大多数情况下是首选。

    【讨论】:

      【解决方案2】:
      1. PIT 具有中断功能。
      2. PIT 的分辨率高于实时时钟。

      【讨论】:

      • 你的第一点无效,RTC确实有周期性中断功能。
      • 是的,你是对的。 RTC 通常提供警报和其他中断。但在我的记忆中,非 PC 系统中的 RTC 就像挂钟一样。
      【解决方案3】:

      PIT 更快。 RTC 通常以不超过 8 kHz 的速度递增,并且最常配置为以 1 Hz 的频率递增(每秒一次)。

      【讨论】:

        【解决方案4】:

        我个人会使用 PIT(如果您只能在这两者之间进行选择,现代操作系统使用 HPET iirc)

        第一,它可以以更快的频率产生中断(尽管我怀疑在毫秒内抢占进程是否有益)

        二,它在PIC芯片上具有更高的优先级,这意味着它不能被其他IRQ中断。

        我个人将 PIT 用于调度程序,将 RTC 计时器用于挂钟计时。

        【讨论】:

          【解决方案5】:

          RTC 可以更改(毕竟,它是一个普通的“时钟”),这意味着从操作系统的角度来看,它的值是不可信的。它也可能没有足够好的分辨率和/或 OS 调度程序中断所需的精度。

          【讨论】:

          • 你是什么意思'可以改变'......?只要您可以访问 IO 端口,您还可以更改 PIT 的频率。此外,RTC 能够像 PIT 一样运行并生成周期性中断,尽管速度稍慢。
          猜你喜欢
          • 1970-01-01
          • 2015-03-27
          • 1970-01-01
          • 2021-04-09
          • 1970-01-01
          • 2015-09-09
          • 2017-07-19
          • 2023-04-04
          • 2017-03-21
          相关资源
          最近更新 更多