x86中斷0x1A似乎給出了計算機的時鐘時間,但它只能在55ms(AH = 0)內給出準確的時間。有沒有辦法獲得更小的增量(也許有點「正常」),比如可能是1ms?我試圖製作我自己的玩具操作系統,所以我不能使用任何我不能寫自己的東西。以1ms爲增量獲取時間
5
A
回答
3
由於您正在製作自己的操作系統,因此不必保留計時器週期。可以重新編程PIT以更頻繁地觸發INT 8(IRQ 0)。見here。
在較新的計算機上,您還可以使用High Precision Event Timer。
6
您可以使用x86上的rdtsc
(讀取時間戳計數器)指令將64位CPU時間戳記轉換爲edx:eax
。這條指令的執行取決於你的處理器,但是它每個時鐘或者恆定的速率增加一次。因此,時間分辨率也有所不同,但應該比1ms好。
有一些注意事項使用rdtsc
:
- 時間戳計數器不一定同步多個CPU內核。這可能是超線程和多核CPU的問題。
- 計數器不一定以恆定的速率遞增。它可能會受到處理器節流或省電功能的影響。
- 休眠會導致計數器重置。
由於您正在編寫自己的操作系統,因此您可能不必擔心其中的一些問題。
相關問題
- 1. PHP活動預訂:以30分鐘爲增量獲取時間爲1小時
- 2. 爲什麼epoll_wait只能提供巨大的1ms超時時間?
- 3. 以15分鐘爲增量格式的時間間隔
- 4. 時間隨增量
- 5. 在時間增量
- 6. 獲取當前時間,然後遞增?
- 7. 如何獲得時間間隔中的度量的增量
- 8. 如何從系統時間獲得時間增量?
- 9. Python&Pandas:以2h爲增量計算時間數據
- 10. 以秒獲取時間
- 11. x86獲取語義獲取和增量?
- 12. 增量多時間戳值
- 13. 停止增量時間c#
- 14. 獲取夜間兩個時間之間的時間以早上
- 15. 增量時,作爲參數
- 16. VBA獲取按鍵的時間量
- 17. 從時間矢量獲取信息
- 18. MySQL的 - 獲取時間以分鐘爲時間值超過一個小時
- 19. 爲什麼我需要在jQuery調用之間放置1ms setTimeout()?
- 20. MPI:當處理器數量增加時,輸出時間增加
- 21. 以C獲取當前時間,功能
- 22. 爲什麼我在Google上獲得1ms延遲
- 23. 以聯繫表格形式獲取自動增量ID 7
- 24. 可以通過自動增量pk獲取插入的值嗎?
- 25. 以增量方式使用z3但會導致更多時間
- 26. 修改乘法計算以使用增量時間
- 27. 更改滴答間隔以使用一小時增量?
- 28. 有沒有可以提供時間增量功能的庫?
- 29. 以HH:mm:ssPM格式添加增量秒數到時間
- 30. 乘以尺寸隨時間增加的兩個向量
也可以使用APIC定時器:http://wiki.osdev.org/APIC_timer – Necrolis 2012-07-20 09:49:45