TW201317896A - 具搶占功能的即時中斷處理系統及其方法 - Google Patents

具搶占功能的即時中斷處理系統及其方法 Download PDF

Info

Publication number
TW201317896A
TW201317896A TW100139597A TW100139597A TW201317896A TW 201317896 A TW201317896 A TW 201317896A TW 100139597 A TW100139597 A TW 100139597A TW 100139597 A TW100139597 A TW 100139597A TW 201317896 A TW201317896 A TW 201317896A
Authority
TW
Taiwan
Prior art keywords
interrupt
task
priority
interrupt processing
handler
Prior art date
Application number
TW100139597A
Other languages
English (en)
Other versions
TWI463406B (zh
Inventor
Chi-Sheng Shih
Hsing-Yu Lai
Original Assignee
Univ Nat Taiwan
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Univ Nat Taiwan filed Critical Univ Nat Taiwan
Priority to TW100139597A priority Critical patent/TWI463406B/zh
Publication of TW201317896A publication Critical patent/TW201317896A/zh
Application granted granted Critical
Publication of TWI463406B publication Critical patent/TWI463406B/zh

Links

Landscapes

  • Multi Processors (AREA)
  • Bus Control (AREA)

Abstract

一種具搶占功能的即時中斷處理系統及其方法,透過建立優先權索引表儲存任務及中斷處理程序的優先權,並根據優先權索引表對任務及中斷處理程序進行排程及調整優先權索引表中記錄的優先次序,以及在搶占發生時,將被搶占的中斷處理程序作為執行緒執行,用以達成提升中斷處理效能之技術功效。

Description

具搶占功能的即時中斷處理系統及其方法
本發明為有關於一種中斷處理系統及其方法,特別是指一種提供對中斷處理程序進行搶占及避免優先權反轉之具搶占功能的即時中斷處理系統及其方法。
近年來,隨著即時作業系統的蓬勃發展,其已被應用於許多重要領域之中,例如:嵌入式系統、工業機台......等等,然而,由於即時作業系統的特性,其對時間上的要求非常嚴苛,而優先權反轉(Priority inversion)卻是影響此時間要求的一大因素,因此,如何解決優先權反轉已成為各家廠商亟欲解決的問題之一。
一般而言,產生優先權反轉的產生原因有以下幾種:第一種是由於任務(Tasks)與中斷(Interrupts)的優先權空間(Priority spaces)相互分開,所以導致無法識別兩者優先權順序;第二種是任務無法對已執行的中斷處理程序(Interrupts Service Routine,ISR)進行搶占(Preempt);第三種是針對中斷阻卻的情況,因為中斷處理程序無法被搶占,因此,一旦中斷處理程序開始執行必須等到執行完畢才輪到任務執行,所以採用關閉中斷的方式來實現阻卻,但卻也因此造成可能產生優先權反轉的情況。當造成優先權反轉時,中斷延遲時間便無法被預測,這對於即時作業系統而言將產生不可預期的情況。
有鑑於此,便有人提出將中斷處理程序作為執行緒(Thread)來進行處理,以便中斷處理程序可以被搶占。不過,以上述單純將中斷處理程序作為執行緒的方式會額外增加執行緒建立(Thread creation)及內容交換(Context switch)的負載並使用較多系統資源,而且因任務與中斷的優先權未整合所以仍有優先權反轉的可能,故上述方式仍無法有效解決優先權反轉的問題。
綜上所述,可知先前技術中長期以來一直存在優先權反轉導致中斷處理的延遲時間不可預期,進而造成中斷處理效能低落之問題,因此實有必要提出改進的技術手段,來解決此一問題。
有鑒於先前技術存在的問題,本發明遂揭露一種具搶占功能的即時中斷處理系統及其方法。
本發明所揭露之具搶占功能的即時中斷處理系統,應用於即時作業系統中,包含:整合模組、調整模組、遮罩模組、中斷處理模組及執行模組。其中,整合模組用以預先將任務及中斷處理程序的優先權配置於同一儲存空間以形成一個優先權索引表;調整模組用以於執行任務時,根據執行的任務之優先權於所述優先權索引表中調整相應的中斷處理程序之優先權,並且在此中斷處理程序執行完成後恢復優先權;遮罩模組用以於中斷產生時,接收並過濾中斷請求信號,以及對此中斷請求信號以外的中斷處理程序進行遮罩處理;中斷處理模組用以註冊記錄所述中斷請求信號,並且根據此中斷請求信號及優先權索引表進行排程以決定次一執行為任務或中斷處理程序,當次一執行為任務時執行任務切換(Tasks switch),當次一執行為中斷處理程序時分配中斷處理程序(Dispatch ISR);執行模組用以將分配完成的中斷處理程序作為第一中斷處理程序執行,且在執行時偵測到另一中斷產生即判斷為發生搶占並將第一中斷處理程序初始化成執行緒(Thread),以及執行對應該另一中斷的第二中斷處理程序;上述中斷處理模組執行任務切換完成後,將自中斷返回由即時作業系統執行所述執行緒及任務。
至於本發明所揭露之具搶占功能的即時中斷處理方法,應用於即時作業系統中,其步驟包括:預先將任務及中斷處理程序的優先權配置於同一儲存空間以形成一個優先權索引表;於執行任務時,根據執行的任務之優先權於優先權索引表中調整相應的中斷處理程序之優先權,以及在中斷處理程序執行完成後恢復優先權;於中斷產生時,接收並過濾中斷請求信號,以及對此中斷請求信號以外的中斷處理程序進行遮罩處理;註冊所述中斷請求信號,並且根據此中斷請求信號及優先權索引表進行排程以決定次一執行為任務或中斷處理程序;當次一執行為任務時執行任務切換,當次一執行為中斷處理程序時分配中斷處理程序;當中斷處理程序分配完成後,將分配完成的中斷處理程序作為第一中斷處理程序執行,且在執行時偵測到另一中斷產生即判斷為搶占,並將此第一中斷處理程序初始化成執行緒,以及執行對應該另一中斷的第二中斷處理程序;當任務切換完成後自中斷返回由即時作業系統執行所述執行緒及任務。
本發明所揭露之系統及其方法如上,與先前技術之間的差異在於本發明是透過建立優先權索引表儲存任務及中斷處理程序的優先權,並根據優先權索引表對任務及中斷處理程序進行排程及調整優先權索引表中記錄的優先次序,以及在搶占發生時,將被搶占的中斷處理程序作為執行緒執行。
透過上述的技術手段,本發明可以達到提升中斷處理效能之技術功效。
以下將配合圖式及實施例來詳細說明本發明之實施方式,藉此對本發明如何應用技術手段來解決技術問題並達成技術功效的實現過程能充分理解並據以實施。
首先,在說明本發明具搶占功能的即時中斷處理系統及其方法之前,先針對本系統的架構進行說明,本系統係應用在即時作業系統中的中斷處理機制,在傳統的中斷處理機制中,中斷處理的過程中可能會造成優先權反轉導致中斷處理的延遲時間難以預測,因此,本系統以四個部份來解決優先權反轉的問題。第一個部份是針對任務與中斷建構一個統一的優先權空間(即優先權索引表),用來儲存任務與中斷的優先權,而且此優先權索引表中的優先權能夠被調整以減少高優先權任務在等待中斷處理完成的這段期間所被阻擋的時間;第二個部份是利用遮罩方式減少中斷處理程序執行時所需要的額外的計算量,限制那些不想要的中斷出現的次數;第三個部份是將任務與中斷都使用同一個排程機制且根據優先權索引表來進行排程;第四個部份是允許搶占中斷處理程序,並且將被搶占的中斷處理程序作為執行緒(Thread)來執行。如此一來,即可有效避免優先權反轉進而正確預測中斷處理的延遲時間。在實際實施上,亦可再搭配傳統的同步機制如互斥信號(Mutex)與信號標(Semaphore)於中斷處理程序之中,減少同步問題所造成的優先權反轉。
接著,針對本發明所自行定義的名詞作說明,本發明所述的優先權索引表是用以同時記錄任務及中斷處理程序的優先權,如此一來,將有助於一併對任務與中斷處理程序進行排程而非如傳統各自排程,也因此降低優先權反轉的機會。另外,所述中斷環境是指“Interrupt context”,其用以執行中斷處理程序(Interrupts Service Routine,ISR),而行程環境則是指“Process context”,其用以執行任務(Task)及執行緒(Thread),由於所述“Interrupt context”及“Process context”為作業系統的習知技術,故在此不再多作贅述。
接下來,先針對本發明具搶占功能的即時中斷處理系統作說明,請參閱「第1圖」。「第1圖」為本發明具搶占功能的即時中斷處理系統之系統方塊圖,包含:整合模組10、調整模組20、遮罩模組30、中斷處理模組40及執行模組50。其中,整合模組10用以預先將任務及中斷處理程序的優先權配置於同一儲存空間以形成一個優先權索引表,此優先權索引表提供中斷處理模組40在進行排程時的依據。
調整模組20用以於執行任務時,根據執行的任務之優先權於優先權索引表中調整相應的中斷處理程序之優先權,並且在該中斷處理程序執行完成後恢復優先權,舉例來說,假設任務需要等待中斷處理程序完成後才會繼續執行,那麼此任務與欲等待的中斷處理程序為相應關係,故為了避免此相應的中斷處理程序被其他中斷處理程序搶占,調整模組20會將此相應的中斷處理程序之優先權提高至與任務相同,如此一來,即可減少高優先權任務在等待中斷處理完成的這段期間所被阻擋的時間,稍後將配合圖式作詳細說明。
遮罩模組30用以於中斷產生時,接收並過濾中斷請求信號,並且對此中斷請求信號以外的中斷處理程序進行遮罩處理,此遮罩處理只在不必要的中斷發生時執行,限制(Bound)由不必要的中斷所導致的中斷數量,故能夠降低硬體中斷處理請求線路之遮罩操作次數,進而減少系統負載,換而言之,當中斷被觸發時,遮罩模組30將確認此中斷的優先權,倘若中斷需要處理則不遮罩,此中斷將透過中斷處理模組40進行處理,假如所述中斷被遮罩,則被遮罩的中斷進入等待處理(Pended)的狀態且中斷請求信號線路(IRQ line)為關閉。稍後將配合圖式與傳統硬體遮罩機制進行對比並作詳細說明。
中斷處理模組40用以註冊中斷請求信號,並且根據此中斷請求信號及優先權索引表進行排程以決定下一次執行的活動(Activities)是任務或中斷處理程序,此排程是利用排程器(Scheduler)對任務與中斷處理程序一起進行排程。假設下一次執行的是任務,則執行任務切換(Task switch)。反之,若下一次執行的是中斷處理程序,則進行分配中斷處理程序(Dispatch ISR),由於任務切換及分配中斷處理程序的方式皆為作業系統中的習知技術,故在此不再多作贅述。
執行模組50用以將分配完成的中斷處理程序作為第一中斷處理程序執行,且在執行時偵測到另一中斷產生即判斷為發生搶占並將第一中斷處理程序初始化成執行緒,所述執行緒包含被中斷的第一中斷處理程序之配置訊息及核心堆疊(Kernel stack),在實際實施上,所謂初始化是將第一中斷處理程序尚未執行的部份作為執行緒。接著,執行模組50會在執行緒初始化完成後,執行對應所述另一中斷的第二中斷處理程序。
特別要說明的是,當中斷處理模組40執行任務切換完成後,將自中斷返回並由即時作業系統執行在執行模組50所初始化的執行緒及尚未完成的任務。此外,所述中斷處理程序更包含使用互斥信號或信號標來進行同步,由於使用互斥信號或信號標來對中斷處理程序進行同步的方式為習知技術,故在此不再多作贅述。
如「第2圖」所示意,「第2圖」為本發明具搶占功能的即時中斷處理方法之方法流程圖,應用於即時作業系統中,其包括:預先將任務及中斷處理程序的優先權配置於同一儲存空間以形成優先權索引表(步驟210);於執行任務時,根據執行的任務之優先權於優先權索引表中調整相應的中斷處理程序之優先權,以及在中斷處理程序執行完成後恢復優先權(步驟220);於中斷產生時,接收並過濾中斷請求信號,以及對此中斷請求信號以外的中斷處理程序進行遮罩處理(步驟230);註冊所述中斷請求信號,並且根據此中斷請求信號及優先權索引表進行排程以決定次一執行為任務或中斷處理程序(步驟240);當次一執行為任務時執行任務切換,當次一執行為中斷處理程序時分配中斷處理程序(步驟250);當中斷處理程序分配完成後,將分配完成的中斷處理程序作為第一中斷處理程序執行,且在執行時偵測到另一中斷產生即判斷為搶占,並將第一中斷處理程序初始化成執行緒,以及執行對應所述另一中斷的第二中斷處理程序(步驟260);當任務切換完成後自中斷返回由即時作業系統執行所述執行緒及任務(步驟270)。藉由上述步驟即可透過建立優先權索引表儲存任務及中斷處理程序的優先權,並根據優先權索引表對任務及中斷處理程序進行排程及調整優先權索引表中記錄的優先次序,以及在搶占發生時,將被搶占的中斷處理程序作為執行緒執行。
如「第2A圖」及「第2B圖」所示意,「第2A圖」及「第2B圖」為本發明具搶占功能的即時中斷處理方法之細部方法流程圖。請先參閱「第2A圖」,在實際實施上,步驟240可細分為處理中斷請求信號(步驟2401)、註冊中斷處理信號(步驟2402)及排程(步驟2403);步驟250可細分為判斷下一次的執行是任務或是中斷處理程序(步驟2501),倘若為任務,則進行任務切換(Task switch)(步驟2502),反之若為中斷處理程序,則進行分配中斷處理程序(Dispatch ISR)(步驟2503)。接著,請參閱「第2B圖」,步驟260可細分為將分配完成的中斷處理程序作為第一中斷處理程序執行(步驟2601)、並且持續判斷是否搶占(步驟2602),若是則將第一中斷處理程序初始化成執行緒,並執行對應所述另一中斷的第二中斷處理程序(步驟2603),反之,若否即執行第一中斷處理程序(步驟2604)。更詳細的說,以搶占中斷處理程序為例,當中斷發生時,假如前一個活動是中斷處理程序,將執行搶占機制,此搶占機制會觸發一個執行緒,並在此執行緒中初始化一個核心堆疊用以儲存被搶占的中斷處理程序之配置訊息,以便將被搶占的中斷處理程序尚未執行的部份作為執行緒並根據優先權重新排程。特別要說明的是,在實際實施上還可將傳統的同步機制如互斥信號(Mutex)與信號標(Semaphore)使用於中斷處理程序之中,進而減少同步問題所造成的優先權反轉。
請參閱「第3A圖」及「第3B圖」,「第3A圖」及「第3B圖」為本發明執行模組執行中斷處理程序之示意圖。當一個中斷發生時,其相應的中斷處理程序“ISR 1”進行配置,此“ISR 1”將取得一個核心堆疊並且直接執行在中斷環境(Interrupt context)中,當沒有搶占的情況發生時,整個“ISR 1”的執行是在中斷環境中完成。倘若在“ISR 1”尚未執行完畢時有另一個中斷發生,則此另一中斷相應的中斷處理程序“ISR 2”將進行分配(Dispatch)並對“ISR 1”進行搶占,且觸發一個“ISR 1”執行緒(亦即將“ISR 1”尚未執行的部份作為執行緒),接著在此“ISR 1”執行緒中初始化一個核心堆疊記錄“ISR 1”的配置訊息。之後,“ISR 2”仍然執行在中斷環境,而“ISR 1”執行緒則透過執行緒的方式在行程環境(Process context)執行,並且此“ISR 1”執行緒將根據“ISR 1”的優先權在中斷處理模組40中進行排程。
請參閱「第4A圖」,「第4A圖」為習知的硬體遮罩機制之示意圖。為了防止不必要的中斷打斷任務或中斷處理程序的執行,習知的硬體遮罩機制會區分不必要的中斷並將其遮罩,其過濾方式可以直接比對中斷及當前系統的優先權之優先次序,例如:當中斷的優先權低於當前系統的優先權則將該中斷遮罩。接著,假設中斷的優先權低於當前系統的優先權,那麼將透過存取中斷控制器來對所有的硬體中斷處理請求線路(IRQ line)進行遮罩(Masks off),而具有較高優先權的中斷則被打開(Turned on)。以「第4A圖」為例,由於中斷的優先權低於任務一“Task 1”的優先權,所以此中斷即使在任務一“Task 1”的執行期間被觸發仍然會被遮罩,任務一“Task 1”不會被中斷且觸發的中斷將進入等待(Pended)。在任務一“Task 1”執行完成後,排程會比對在等待狀態中的中斷之優先權與任務二“Task 2”的優先權,假設任務二“Task 2”的優先權較低,那麼排程會選擇將等待狀態中的中斷之中斷處理請求線路打開,並且開始處理此中斷。然而,以硬體遮罩的方式會產生不必要的負載,因為不必要的中斷並非時常發生,除此之外,以上述方式進行遮罩對系統的負載較大。
請參閱「第4B圖」,「第4B圖」為本發明遮罩模組進行遮罩之示意圖。前面提到,以往的遮罩方式透過硬體方式進行遮罩,而且其方式將造成較大的系統負載。因此,本發明的遮罩模組30以一種改良的遮罩機制來降低系統負載。如「第4B圖」所示意,假設一個不必要的中斷“IRQ 1”打斷任務一“Task 1”的執行,而中斷“IRQ 1”的優先權小於任務一“Task 1”的優先權,則中斷“IRQ 1”會被遮罩並且註冊成一個等待狀態的“IRQ”事件,在任務一“Task 1”執行完成後,排程器會選擇在等待狀態的“IRQ”事件及分配(Dispatch)其相應的中斷處理程序“ISR 1”,由於中斷處理程序“ISR 1”的優先權大於任務二“Task 2”,所以遮罩的中斷處理請求線路將重新致能(Re-enabled)。以此方式能夠避免不必要的硬體中斷處理請求之遮罩操作,減少中斷遮罩的負載。
請參閱「第5圖」,「第5圖」為本發明調整模組進行優先權調整之示意圖。前面提到,任務和中斷處理程序的優先權是儲存在同一儲存空間(亦可稱之為優先權空間),如:優先權索引表。如此一來,便可統一對任務及中斷處理程序排列優先次序,甚至是調整優先權以改變原本的優先次序,而非以往將任務及中斷處理程序各自分別進行中斷處理。舉例來說,假設原本的優先權次序為任務“Task H”大於中斷處理程序“ISR 2”大於中斷處理程序“ISR 1”,而在“Task H”要等待“ISR 1”的情況下,則調整模組20會將“ISR 1”的優先權提高至“Task H”的等級,以便在相應於中斷處理程序“ISR 1”的中斷發生時順利執行“ISR 1”。雖然原本“ISR 2”的優先權大於原本的“ISR 1”的優先權,但因為“Task H”透過調整模組20提高“ISR 1”的優先權,所以“ISR 2”將在“ISR 1”的執行期間被遮罩模組30所遮罩。接著,在“ISR 1”執行完成後,將喚醒(Walk up)“Task H”,並且將“ISR 1”的優先權調回原本的優先權,“Task H”會在“ISR 1”執行完成後排入排程,而“ISR 2”則直到“Task H”執行完成後才排入排程。
請參閱「第6A圖」及「第6B圖」,「第6A圖」及「第6B圖」為應用本發明減少高優先權任務在等待中斷處理完成的期間所被阻擋的時間之對照示意圖,其中,「第6A圖」為未提高優先權之示意,而「第6B圖」則為提高優先權之示意。以上例而言,調整模組20可調整優先權以改變原本的優先次序,避免高優先權任務“Task H”長時間等待中斷處理完成,如「第6A圖」不具提高優先權的機制所示意,在高優先權任務“Task H”需要等待“ISR 1”的情況下,當“ISR 1”的中斷發生時,執行模組50於中斷環境執行“ISR 1”,此時若再發生“ISR 2”的中斷,則允許“ISR 2”搶占“ISR 1”並且將“ISR 1”未處理的部份作為執行緒,接著執行模組50執行“ISR 2”直到“ISR 2”執行完成後再由中斷處理模組40進行任務切換並自中斷返回,由即時作業系統於行程環境執行作為執行緒的“ISR 1”,最後由作為執行緒的“ISR 1”喚醒“Task H”。從「第6A圖」可清楚看到,高優先權的“Task H”沒必要等待“ISR 2”執行完成,但是因為“ISR 1”沒有提高優先權所以會被“ISR 2”搶占,直到“ISR 2”執行完成後才繼續執行“ISR 1”,而由於“Task H”需要等到“ISR 1”執行完成後才能執行,因此導致高優先權的“Task H”反而比相對之下低優先權的“ISR 2”來得晚執行,造成優先權反轉的問題。
承上所述,為了避免優先權反轉的問題,調整模組20能夠如「第6B圖」所示意,透過提高“ISR 1”的優先權之方式來推遲“ISR 2”的執行直到“ISR 1”及“Task H”執行完成。換句話說,雖然“ISR 2”有一個比“ISR 1”還要高的優先權,但是因為“Task H”將“ISR 1”的優先權提高至與自己相同等級,所以“ISR 1”會比“ISR 2”還要優先排入排程而不會被“ISR 2”搶占,且遮罩模組30會將“ISR 2”遮罩。如此一來,“ISR 1”執行完成後直接喚醒高優先權任務“Task H”,無須等待“ISR 2”執行完成,故高優先權任務“Task H”在等待中斷處理完成的期間所被阻擋的時間將大幅減少。
綜上所述,可知本發明與先前技術之間的差異在於透過建立優先權索引表儲存任務及中斷處理程序的優先權,並根據優先權索引表對任務及中斷處理程序進行排程及調整優先權索引表中記錄的優先次序,以及在搶占發生時,將被搶占的中斷處理程序作為執行緒執行,藉由此一技術手段可以解決先前技術中所存在的問題,達成提升中斷處理效能之技術功效。
雖然本發明以前述之實施例揭露如上,然其並非用以限定本發明,任何熟習相像技藝者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之專利保護範圍須視本說明書所附之申請專利範圍所界定者為準。
10...整合模組
20...調整模組
30...遮罩模組
40...中斷處理模組
50...執行模組
步驟210 預先將任務及中斷處理程序的優先權配置於同一儲存空間以形成一優先權索引表
步驟220 於執行任務時,根據執行的任務之優先權於該優先權索引表中調整相應的中斷處理程序之優先權,以及在該中斷處理程序執行完成後恢復優先權
步驟230 於中斷產生時,接收並過濾一中斷請求信號,以及對該中斷請求信號以外的中斷處理程序進行遮罩處理
步驟240 註冊該中斷請求信號,並且根據該中斷請求信號及該優先權索引表進行排程以決定次一執行為任務或中斷處理程序
步驟250 當次一執行為任務時執行任務切換,當次一執行為中斷處理程序時分配該中斷處理程序
步驟260 當該中斷處理程序分配完成後,將分配完成的該中斷處理程序作為一第一中斷處理程序執行,且在執行時偵測到另一中斷產生即判斷為搶占,並將該第一中斷處理程序初始化成一執行緒,以及執行對應該另一中斷的一第二中斷處理程序
步驟270 當任務切換完成後自中斷返回由即時作業系統執行該執行緒及任務
步驟2401 處理中斷請求信號
步驟2402 註冊中斷請求信號
步驟2403 排程
步驟2501 判斷次一執行為任務或中斷處理程序
步驟2502 任務切換
步驟2503 分配該中斷處理程序
步驟2601 將分配完成的該中斷處理程序作為一第一中斷處理程序執行
步驟2602 判斷是否搶占
步驟2603 將該第一中斷處理程序初始化成一執行緒,執行對應該另一中斷的一第二中斷處理程序
步驟2604 執行該第一中斷處理程序
第1圖為本發明具搶占功能的即時中斷處理系統之系統方塊圖。
第2圖為本發明具搶占功能的即時中斷處理方法之方法流程圖。
第2A圖及第2B圖為本發明具搶占功能的即時中斷處理方法之細部方法流程圖。
第3A圖及第3B圖為本發明執行模組執行中斷處理程序之示意圖。
第4A圖為習知的硬體遮罩機制之示意圖
第4B圖為本發明遮罩模組進行遮罩之示意圖。
第5圖為本發明調整模組進行優先權調整之示意圖。
第6A圖及第6B圖應用本發明減少高優先權任務在等待中斷處理完成的期間所被阻擋的時間之對照示意圖。
10...整合模組
20...調整模組
30...遮罩模組
40...中斷處理模組
50...執行模組

Claims (10)

  1. 一種具搶占功能的即時中斷處理系統,應用於即時作業系統中,該系統包含:一整合模組,用以預先將任務及中斷處理程序的優先權配置於同一儲存空間以形成一優先權索引表;一調整模組,用以於執行任務時,根據執行的任務之優先權於該優先權索引表中調整相應的中斷處理程序之優先權,並且在該中斷處理程序執行完成後恢復優先權;一遮罩模組,用以於中斷產生時,接收並過濾一中斷請求信號,以及對該中斷請求信號以外的中斷處理程序進行遮罩處理;一中斷處理模組,用以註冊該中斷請求信號,並且根據該中斷請求信號及該優先權索引表進行排程以決定次一執行為任務或中斷處理程序,當次一執行為任務時執行任務切換,當次一執行為中斷處理程序時分配該中斷處理程序;一執行模組,用以將分配完成的該中斷處理程序作為一第一中斷處理程序執行,且在執行時偵測到另一中斷產生即判斷為發生搶占並將該第一中斷處理程序初始化成一執行緒,以及執行對應該另一中斷的一第二中斷處理程序;以及其中,當該中斷處理模組執行任務切換完成後,自中斷返回由即時作業系統執行該執行緒及任務。
  2. 如申請專利範圍第1項所述之具搶占功能的即時中斷處理系統,其中該執行緒包含該第一中斷處理程序之配置訊息及核心堆疊。
  3. 如申請專利範圍第1項所述之具搶占功能的即時中斷處理系統,其中該中斷處理程序更包含使用互斥信號及信號標其中之一以進行同步。
  4. 如申請專利範圍第1項所述之具搶占功能的即時中斷處理系統,其中該中斷處理程序執行於中斷環境,所述任務及執行緒執行於行程環境。
  5. 如申請專利範圍第1項所述之具搶占功能的即時中斷處理系統,其中該調整模組係於任務需要等待中斷處理程序執行完成時,將該中斷處理程序的優先權調整成與該任務的優先權相同。
  6. 一種具搶占功能的即時中斷處理方法,應用在即時作業系統中,其步驟包括:預先將任務及中斷處理程序的優先權配置於同一儲存空間以形成一優先權索引表;於執行任務時,根據執行的任務之優先權於該優先權索引表中調整相應的中斷處理程序之優先權,以及在該中斷處理程序執行完成後恢復優先權;於中斷產生時,接收並過濾一中斷請求信號,以及對該中斷請求信號以外的中斷處理程序進行遮罩處理;註冊該中斷請求信號,並且根據該中斷請求信號及該優先權索引表進行排程以決定次一執行為任務或中斷處理程序;當次一執行為任務時執行任務切換,當次一執行為中斷處理程序時分配該中斷處理程序;當該中斷處理程序分配完成後,將分配完成的該中斷處理程序作為一第一中斷處理程序執行,且在執行時偵測到另一中斷產生即判斷為搶占,並將該第一中斷處理程序初始化成一執行緒,以及執行對應該另一中斷的一第二中斷處理程序;以及當任務切換完成後自中斷返回由即時作業系統執行該執行緒及任務。
  7. 如申請專利範圍第6項所述之具搶占功能的即時中斷處理方法,其中該執行緒包含該第一中斷處理程序之配置訊息及核心堆疊。
  8. 如申請專利範圍第6項所述之具搶占功能的即時中斷處理方法,其中該方法更包含將該中斷處理程序以互斥信號及信號標其中之一進行同步。
  9. 如申請專利範圍第6項所述之具搶占功能的即時中斷處理方法,其中該中斷處理程序執行於中斷環境,所述任務及執行緒執行於行程環境。
  10. 如申請專利範圍第6項所述之具搶占功能的即時中斷處理方法,其中該調整中斷處理程序的步驟係在任務需要等待中斷處理程序執行完成時,將該中斷處理程序的優先權調整成與該任務的優先權相同。
TW100139597A 2011-10-31 2011-10-31 具搶占功能的即時中斷處理系統及其方法 TWI463406B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW100139597A TWI463406B (zh) 2011-10-31 2011-10-31 具搶占功能的即時中斷處理系統及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW100139597A TWI463406B (zh) 2011-10-31 2011-10-31 具搶占功能的即時中斷處理系統及其方法

Publications (2)

Publication Number Publication Date
TW201317896A true TW201317896A (zh) 2013-05-01
TWI463406B TWI463406B (zh) 2014-12-01

Family

ID=48871962

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100139597A TWI463406B (zh) 2011-10-31 2011-10-31 具搶占功能的即時中斷處理系統及其方法

Country Status (1)

Country Link
TW (1) TWI463406B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110570075A (zh) * 2019-07-18 2019-12-13 北京邮电大学 一种电力业务边缘计算任务分配方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6779065B2 (en) * 2001-08-31 2004-08-17 Intel Corporation Mechanism for interrupt handling in computer systems that support concurrent execution of multiple threads
US7043582B2 (en) * 2002-09-06 2006-05-09 Intel Corporation Self-nesting interrupts
US7080178B2 (en) * 2004-02-09 2006-07-18 Arm Limited Interrupt pre-emption and ordering within a data processing system
US8234431B2 (en) * 2009-10-13 2012-07-31 Empire Technology Development Llc Interrupt masking for multi-core processors

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110570075A (zh) * 2019-07-18 2019-12-13 北京邮电大学 一种电力业务边缘计算任务分配方法及装置
CN110570075B (zh) * 2019-07-18 2022-04-05 北京邮电大学 一种电力业务边缘计算任务分配方法及装置

Also Published As

Publication number Publication date
TWI463406B (zh) 2014-12-01

Similar Documents

Publication Publication Date Title
US8504753B2 (en) Suspendable interrupts for processor idle management
KR100983061B1 (ko) 서로 다른 크리티컬리티의 인터럽트 요청 실행을제어하는데 적합한 인터럽트 제어 함수
US20060010446A1 (en) Method and system for concurrent execution of multiple kernels
EP2315113A1 (en) Multi-threaded processors and multi-processor systems comprising shared resources
US9424105B2 (en) Preempting tasks at a preemption point of a kernel service routine based on current execution mode
CN111414246B (zh) 具备tee扩展的计算平台上的跨安全世界实时功能调用方法及装置
WO2023246044A1 (zh) 调度方法及装置、芯片、电子设备及存储介质
US20170212852A1 (en) Method and accelerator unit for interrupt handling
Leyva-del-Foyo et al. Integrated task and interrupt management for real-time systems
CN109343960A (zh) 一种Linux系统的任务调度方法、系统及相关装置
JP2008108075A (ja) タスク切替え制御方法及びコンピュータシステム
TWI463406B (zh) 具搶占功能的即時中斷處理系統及其方法
CA2767782C (en) Suspendable interrupts for processor idle management
WO2016033755A1 (zh) 任务处理装置、电子设备及方法
KR100848323B1 (ko) 임베디드 운영체제 커널의 실시간 성능을 향상시키는 방법
JPWO2018211865A1 (ja) 車両制御装置
Roy et al. A high-throughput network processor architecture for latency-critical applications
KR100651722B1 (ko) 실시간 성능 지원을 위한 리눅스 커널의 구성 방법 및실시간 성능 테스트 방법
CN112527532A (zh) 一种基于消息的路径调度方法
US11461134B2 (en) Apparatus and method for deferral scheduling of tasks for operating system on multi-core processor
JP2015041199A (ja) 情報処理装置
US11947486B2 (en) Electronic computing device having improved computing efficiency
US20230305872A1 (en) Efficient central processing unit overcommit for virtual machines with symmetric multi-processing
Gupta et al. Support for Nested Preemption in nxtOSEK
JPH02244371A (ja) マルチプロセツサシステムの排他制御方法