簡體   English   中英

定時器的用戶級中斷處理程序

[英]User Level Interrupt Handler for Timer

我必須為一個支持一些基本功能的項目實現一個簡單的操作系統和一個虛擬機。 該操作系統將在虛擬機和虛擬機上運行,​​就像Linux中的普通程序一樣。

假設現在是執行虛擬機的范圍。

  1. 如何接收一些額外的計時器信號以將虛擬機執行時間划分為較小的量子?
  2. 我的CPU中有多少個計時器可用? (這更像是一個一般性問題)
  3. 我可以使用用戶杠桿中斷處理程序處理虛擬機內部的計時器信號嗎?

任何幫助或指導將不勝感激。 謝謝

我建議您恰好使用1個中斷,並將您的計時器安排在隊列中(幾次,例如<50)或堆中,這是一棵很快的樹,隨時可以訪問最小的元素,也就是說,具有下一個要處理的Timer的元素。

因此,您有一個中斷,一個處理程序和許多具有相關功能的計時器,這些計時器將由該單個處理程序調用。

實際上,普通程序也使用中斷(系統級),例如,當他們想使用系統調用時。 在用戶級別,您可以使用swapcontext / makecontext模擬系統級別的交換上下文,但是當您想要獲取時間(以計算時間差)時,必須使用syscall。因此,最好直接使用系統計時器,不錯的主意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM