我的教授说,建议使用PIT而不是RTC来实现基于纪元的循环调度程序。他没有真正提到任何具体原因,我也想不出任何理由。有什么想法吗?
答案 0 :(得分:4)
我个人会使用PIT(如果您只能在这两者之间进行选择,现代操作系统使用HPET iirc)
一,它可以以更快的频率产生中断(尽管我怀疑在毫秒内抢占进程是否有益)
二,它在PIC芯片上具有更高的优先级,这意味着它不会被其他IRQ中断。
我个人使用PIT作为调度程序,RTC计时器用于挂钟时间保持。
答案 1 :(得分:3)
可以更改RTC(毕竟,它是正常的“时钟”),这意味着从操作系统的角度来看,它的值是不可信的。它可能也没有足够好的OS调度程序中断所需的分辨率和/或精度。
答案 2 :(得分:1)
PIT更快。 RTC的增量通常不会超过8 kHz,最常配置为以1 Hz(每秒一次)递增。
答案 3 :(得分:1)
虽然这不能直接回答这个问题,但这里有一些关于选择抢占计时器的进一步见解。
在现代系统上(i586 +;我不确定i486的外部本地APIC(LAPIC)是否有定时器)你不应该使用,因为你总是得到本地APIC定时器,这是每核心的。还有更多:使用PIT或RTC进行定时器中断已经过时了。
LAPIC计时器通常用于现代系统的抢占,而HPET用于高精度事件。在具有HPET的系统上,通常没有物理PIT;另外,HPET的前两个比较器能够替换PIT和RTC中断源,这是最简单的配置,在大多数情况下是首选。
答案 4 :(得分:-1)