我想模拟一个进程调度程度,但是用INT 1CH 只能固定每55ms中断一次,我想能够调整定时器时间,有没有办法实现?
顺便问一下,Windows系统的进程切换是怎么实现的?不是用的INT 1CH吧……
------解决方案--------------------------------------------------------
这种东西在PC上一般就三种方法:
1. 使用ACPI PMT(Power Management Timer)
2. 使用8253/8254 PIT(Programmable Interval Timer)
3. 使用CMOS RTC中断
windows只使用前两种,调用QueryPerformanceFrequency,如果返回值是3579545那就是第一种,返回值是1193812是第二种(比较老的机器)。
不管哪种,如果做多任务调度用的话,都需要重编程提高精度,这是一些资料:
http://www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/software-developers-hpet-spec-1-0a.pdf
http://wiki.osdev.org/Programmable_Interval_Timer
http://www.nondot.org/sabre/os/files/MiscHW/CMOSTimer