專利名稱:多核處理器系統(tǒng)、中斷程序、以及中斷方法
技術(shù)領(lǐng)域:
本發(fā)明涉及控制線程的中斷的多核處理器系統(tǒng)、中斷程序、以及中斷方法。
背景技術(shù):
以往公開了多核處理器系統(tǒng)。例如有如下的多核處理器系統(tǒng)在從CPU (CentralProcessing Unit,中央處理器)中不使OS (Operating System,操作系統(tǒng))的內(nèi)核動(dòng)作,而是針對(duì)來自主CPU的起動(dòng)請(qǐng)求對(duì)從屬庫(kù)(slave library)進(jìn)行線程起動(dòng)(例如,參考下述專利文獻(xiàn)I 4。)。該情況下,在從CPU中,內(nèi)核不進(jìn)行動(dòng)作,僅具有必要最低限度的線程執(zhí)行程序和來自主CPU的中斷控制功能,從而使基于OS的內(nèi)核的開銷為最小限度。例如,在由主CPU執(zhí)行的庫(kù)線程存在針對(duì)從CPU調(diào)用從屬庫(kù)線程的情況下,能夠?qū)崿F(xiàn)主CPU和從CPU并行執(zhí)行。
在先技術(shù)文獻(xiàn)專利文獻(xiàn)專利文獻(xiàn)I :日本專利文獻(xiàn)特開2005-25726號(hào)公報(bào);專利文獻(xiàn)2 :日本專利文獻(xiàn)特開平6-243102號(hào)公報(bào);專利文獻(xiàn)3 日本專利文獻(xiàn)特開平6-149752號(hào)公報(bào);專利文獻(xiàn)4 :日本專利文獻(xiàn)特開2006-185348號(hào)公報(bào)。
發(fā)明內(nèi)容
發(fā)明所要解決的問題但是,在上述的現(xiàn)有技術(shù)中,從CPU如果有來自主CPU的調(diào)用則執(zhí)行線程,在沒有調(diào)用的情況下,繼續(xù)中止?fàn)顟B(tài)。主CPU和從CPU總是并行執(zhí)行的情況少,通常從CPU在具有來自主CPU的調(diào)用之前處于中止?fàn)顟B(tài)。如此,根據(jù)動(dòng)作的軟件的可并行執(zhí)行的比率來決定系統(tǒng)的使用效率(阿姆達(dá)爾法則),但隨著處理器數(shù)增加、或者隨著軟件具有的可并行執(zhí)行的比率下降,存在使用效率嚴(yán)重惡化、性能劣化的問題。另一方面,當(dāng)使多處理器的各CPU運(yùn)行OS時(shí),通過各CPU執(zhí)行應(yīng)用,但是需要針對(duì)同時(shí)執(zhí)行的應(yīng)用實(shí)施排他控制等。如此,能夠通過OS的內(nèi)核進(jìn)行細(xì)致的控制,但是存在由該管理機(jī)構(gòu)產(chǎn)生開銷的問題。特別是在如便攜終端那樣的嵌入式系統(tǒng)中,存在由管理機(jī)構(gòu)產(chǎn)生的開銷成為無法忽視的負(fù)載的問題。本發(fā)明的目的在于提供能夠?qū)崿F(xiàn)低負(fù)載并且提高處理器的使用效率的多核處理器系統(tǒng)、中斷程序、以及中斷方法,以解決上述現(xiàn)有技術(shù)中的問題。用于解決問題的手段為了解決上述問題、實(shí)現(xiàn)目的,本多核處理器系統(tǒng)、中斷程序、以及中斷方法的要件在于,在具有執(zhí)行OS以及多個(gè)應(yīng)用的一個(gè)核以及被分配所述多個(gè)應(yīng)用的線程的其他核的多核處理器系統(tǒng)中,從所述一個(gè)核接收指定在所述多個(gè)應(yīng)用中的一個(gè)應(yīng)用中發(fā)生的事件的中斷信號(hào),判斷由被接收的中斷信號(hào)指定的事件是否是在所述其他核中對(duì)當(dāng)前執(zhí)行中的線程的排他或者同步的開始事件,在被判斷為是所述開始事件的情況下,使所述當(dāng)前執(zhí)行中的線程從所述其他核避讓,將所述多個(gè)應(yīng)用的執(zhí)行等待線程組中被避讓的線程以外的其他線程分配作為所述其他核的執(zhí)行對(duì)象線程。發(fā)明的效果根據(jù)本發(fā)明的多核處理器系統(tǒng)、中斷程序、以及中斷方法,能夠起到實(shí)現(xiàn)低負(fù)載并且提高處理器的使用效率的效果。
圖I是示出本實(shí)施方式涉及的多核處理器系統(tǒng)的硬件構(gòu)成的框圖;圖2是示出在本實(shí)施方式涉及的多核處理器系統(tǒng)中的執(zhí)行處理步驟的流程圖;圖3是示出中斷控制的具體例I的順序圖; 圖4是示出中斷控制的具體例2的順序圖;圖5是示出中斷控制的具體例3的順序圖;圖6是示出中斷控制的具體例4的順序圖。
具體實(shí)施例方式以下參考附圖對(duì)本發(fā)明涉及的多核處理器系統(tǒng)、中斷程序、以及中斷方法的實(shí)施方式進(jìn)行詳細(xì)地說明。此外,在本實(shí)施方式的多核處理器系統(tǒng)中,所謂的多核處理器是搭載多個(gè)核的處理器。只要搭載多個(gè)核即可,可以是搭載了多個(gè)核的單一處理器,也可以是排列單核處理器的處理器組。此外,在本實(shí)施方式中,為了簡(jiǎn)化說明,以排列單核處理器的處理器組為例來進(jìn)行說明。(多核處理器系統(tǒng)的硬件構(gòu)成)圖I是示出本實(shí)施方式涉及的多核處理器系統(tǒng)的硬件構(gòu)成的框圖。在圖I中,多核處理器系統(tǒng)100被構(gòu)成為主CPU 101、一個(gè)或多個(gè)從CPU102(在圖I中為I個(gè))、以及存儲(chǔ)器103經(jīng)由總線104連接。在主CPUlOl和從CPU 102中內(nèi)置有高速緩存。在主CPU 101中,運(yùn)行控制存儲(chǔ)器管理和從CPU 102的OS 110。0S110僅在主CPU101中運(yùn)行。另外,在主CPU 101中,與OS 110對(duì)應(yīng)的多個(gè)應(yīng)用通過OS 110的調(diào)度而以時(shí)間片進(jìn)行動(dòng)作。在應(yīng)用A中包含在其動(dòng)作中起動(dòng)的線程B,在應(yīng)用X中包含在其動(dòng)作中起動(dòng)的線程Y。從CPU 102執(zhí)行中斷程序120。另外,在主CPU 101中被執(zhí)行的應(yīng)用的線程也被從CPU 102執(zhí)行。在從CPU 102中,由于OS 110不運(yùn)行,因此僅一個(gè)獨(dú)立動(dòng)作。存儲(chǔ)器103存儲(chǔ)OS 110和應(yīng)用、以及其他各種信息,并被用作主CPU 101以及從CPU 102的工作區(qū)。存儲(chǔ)器103具體地例如是ROM (Read Only Memory,只讀存儲(chǔ)器)、RAM (Random Access Memory,隨機(jī)存取存儲(chǔ)器)、閃存器、硬盤驅(qū)動(dòng)器等存儲(chǔ)裝置。在圖I中,主CPU 101中在OS 110上進(jìn)行動(dòng)作的應(yīng)用A、X以時(shí)間片進(jìn)行動(dòng)作,從CPU 102中應(yīng)用A的線程B獨(dú)立地進(jìn)行動(dòng)作。此外,應(yīng)用X的線程Y在主CPU 101的線程隊(duì)列中等待。在本實(shí)施方式中,在排他或者同步的事件發(fā)生的情況下,可有效地運(yùn)用從CPU102。這里,對(duì)同步的例子進(jìn)行說明。例如,假設(shè)應(yīng)用A具有進(jìn)行文件讀入并在存儲(chǔ)器103上展開的功能,同時(shí)執(zhí)行中的線程B利用在存儲(chǔ)器103上展開的文件的數(shù)據(jù)。此時(shí),線程B在由應(yīng)用A完成文件讀出以及存儲(chǔ)器展開結(jié)束之前進(jìn)行等待。即,數(shù)據(jù)被展開的存儲(chǔ)器區(qū)域與文件讀出同時(shí)通過應(yīng)用A被置于排他監(jiān)視下,暫時(shí)從從CPU 102釋放線程B。之后,在存儲(chǔ)器展開后與線程B共用(同步)數(shù)據(jù)。另外,對(duì)排他的例子進(jìn)行說明。例如,假設(shè)應(yīng)用A為瀏覽器、線程B為在瀏覽器內(nèi)動(dòng)作的動(dòng)畫再生程序。另外,假設(shè)應(yīng)用X為郵件程序、線程Y為郵件的查詢程序。在主CPU 101中,假設(shè)應(yīng)用A(瀏覽器)和應(yīng)用X(郵件程序)分時(shí)進(jìn)行動(dòng)作。在線程B (動(dòng)畫再生程序)再生來自動(dòng)畫分發(fā)服務(wù)器的動(dòng)畫中,線程Y (郵件的查詢程序)的起動(dòng)定時(shí)到來了的情況下,OS 110使從CPU 102執(zhí)行線程Y (郵件的查詢程序),因此對(duì)線程B(動(dòng)畫再生程序)進(jìn)行排他控制。由此,從從CPU 102釋放線程B (動(dòng)畫再生程序),并在從CPU 102中執(zhí)行線程Y (郵件的查詢程序)。(多核處理器系統(tǒng)100中的中斷處理步驟) 圖2是示出在本實(shí)施方式涉及的多核處理器系統(tǒng)100中的執(zhí)行處理步驟的流程圖。在圖2中,主CPU 101的處理步驟示出OS 110的管理處理步驟,從CPU 102的處理步驟示出來自主CPU 101的線程的中斷控制處理步驟。首先,對(duì)在主CPU 101中的OS 110的管理處理步驟進(jìn)行說明。0S110并行起動(dòng)主進(jìn)程(步驟S201)。具體地,例如,使作為主進(jìn)程的應(yīng)用A、X以時(shí)間片進(jìn)行動(dòng)作。另外,當(dāng)執(zhí)行被起動(dòng)的主進(jìn)程時(shí),主CPU 101通過OS 110根據(jù)主進(jìn)程的執(zhí)行狀況將主進(jìn)程的線程設(shè)定在線程隊(duì)列200 (步驟S202)。具體地,例如設(shè)定線程B、Y。線程隊(duì)列200的狀態(tài)例如被寫入到存儲(chǔ)器103,能夠被從CPU 102參照。并且,主CPU 101通過OS 110檢測(cè)出事件的發(fā)生(步驟S203)。這里,所謂事件包括線程的起動(dòng)或停止、中斷、排他、同步、信號(hào)消息等。事件通過在OS 110上執(zhí)行的應(yīng)用或在從CPU 102中執(zhí)行的線程發(fā)生。當(dāng)OS 110檢測(cè)出事件的發(fā)生時(shí),判斷該事件的種類(步驟S204)。在事件是與排他或者同步有關(guān)的事件的情況下(步驟S204 :排他、同步),主CPU 101通過OS 110在中斷信號(hào)的高位比特上施加表示排他或者同步的標(biāo)識(shí)符(步驟S205),并轉(zhuǎn)移到步驟S206。另一方面,在步驟S204中,在事件種類是排他、同步以外的事件的情況下(步驟S204 :其他),轉(zhuǎn)移到步驟S206。在步驟S206中,主CPUlOl通過OS 110將與在步驟S204中判斷出的事件對(duì)應(yīng)的中斷信號(hào)通知給從CPU 102(步驟S206)。如此,主CPU 101通過OS110當(dāng)在主進(jìn)程中事件發(fā)生時(shí)將中斷信號(hào)通知給從CPU 102,并向線程隊(duì)列200投入必要的線程,成為執(zhí)行等待線程。另外,從CPU 102通過中斷程序120等待線程的起動(dòng)(步驟S210),當(dāng)線程被起動(dòng)時(shí),從CPU 102通過中斷程序120執(zhí)行線程(步驟S211)。該線程動(dòng)作在接收中斷信號(hào)之前被進(jìn)行。另外,當(dāng)在接收中斷信號(hào)前線程結(jié)束了的情況下,轉(zhuǎn)移到步驟S216。另外,當(dāng)從CPU 102從主CPU 101接收中斷信號(hào)的通知時(shí),從CPU102通過中斷程序120執(zhí)行中斷接收處理(步驟S212)。并且,從CPU102通過中斷程序120判斷由中斷信號(hào)指定的事件的種類(步驟S213)。在事件是與排他或者同步有關(guān)的事件以外的其他事件的情況下(步驟S213 :其他),從CPU 102通過中斷程序120執(zhí)行與其他事件對(duì)應(yīng)的事件處理(步驟S214),并返回到步驟S211。另一方面,當(dāng)事件種類是排他或者同步的開始事件的情況下(步驟S213 :排他開始、同步開始),從CPU 102通過中斷程序120使當(dāng)前執(zhí)行中的線程避讓(步驟S215)。具體的,例如,將當(dāng)前執(zhí)行中的線程使用的從CPU 102的高速緩存上的數(shù)據(jù)刷新到存儲(chǔ)器103,不釋放存儲(chǔ)器103上的上下文(context)區(qū)域,而保存在此之前動(dòng)作的程序計(jì)數(shù)器的位置。由此,從CPU 102被執(zhí)行的線程釋放。當(dāng)線程被避讓時(shí),中斷程序120通過中斷程序120檢查OS 110的線程隊(duì)列200的狀態(tài)(步驟S216)。在線程隊(duì)列200不是空集合的情況下(步驟S216 :隊(duì)列古O),中斷程序120通過中斷程序120將線程隊(duì)列200的前頭的線程(不是被避讓的線程)設(shè)定為執(zhí)行對(duì)象線程并執(zhí)行該線程(步驟S217)。然后,返回到步驟S211。另一方面,在線程隊(duì)列200的狀態(tài)是空集合的情況下(步驟S216 :隊(duì)列=O),中斷程序120通過中斷程序120將從CPU 102設(shè)定為低功率模式(步驟S218),并轉(zhuǎn)移到步驟S210的線程起動(dòng)等待。
另外,在步驟S213中,在事件種類是排他解除(結(jié)束)或者同步結(jié)束的情況下(步驟S213 :排他解除、同步結(jié)束),中斷程序120通過中斷程序120恢復(fù)避讓線程(步驟S219)。具體地,關(guān)于避讓線程,即使釋放從CPU 102,存儲(chǔ)器103的上下文區(qū)域也沒有釋放,因此避讓線程使用的存儲(chǔ)器區(qū)域被保護(hù)。僅通過簡(jiǎn)單地恢復(fù)保存在從CPU 102的寄存器(可以是存儲(chǔ)器103)中的避讓線程的程序計(jì)數(shù)器,能夠再次開始(恢復(fù))避讓線程。然后,返回到步驟S211。如此,通過以上的操作,能夠更有效地運(yùn)用以往由于排他或者同步等待而中止的從CPU 102。(中斷控制的具體例子)接著,使用圖3 圖6對(duì)中斷控制的具體例子進(jìn)行說明。圖3是示出中斷控制的具體例子I的順序圖。在圖3中,假設(shè)在主CPU 101中應(yīng)用A、X在OS 110上以時(shí)間片進(jìn)行動(dòng)作(實(shí)際上,OS 110、A、X以時(shí)間片進(jìn)行動(dòng)作),從CPU102執(zhí)行線程B。另外,假設(shè)OS 110的線程隊(duì)列200中線程Y作為執(zhí)行等待線程進(jìn)行等待。當(dāng)在應(yīng)用A中檢測(cè)出排他開始事件時(shí),從應(yīng)用A向線程B通知中斷信號(hào)(排他開始)。在從CPU 102中,當(dāng)接收排他開始事件的通知時(shí),通過使線程B避讓來釋放從CPU102。由于在線程隊(duì)列200中存在線程Y,因此對(duì)從CPU 102分配線程Y。由此,在從CPU 102中執(zhí)行線程Y。之后,當(dāng)線程Y結(jié)束時(shí),線程隊(duì)列200是空的,因此轉(zhuǎn)移到低功率模式。之后,當(dāng)在應(yīng)用A中檢測(cè)出排他結(jié)束事件時(shí),從應(yīng)用A向從CPU 102通知中斷信號(hào)(排他結(jié)束)。在從CPU 102中,當(dāng)接收排他結(jié)束事件的通知時(shí),在從CPU 102中恢復(fù)線程B。由此,能夠從使線程B避讓的位置再次執(zhí)行。另外,關(guān)于同步也是同樣的,當(dāng)在應(yīng)用A中檢測(cè)出同步開始事件時(shí),從應(yīng)用A對(duì)線程B進(jìn)行一致性(coherent)處理以及對(duì)從CPU 102進(jìn)行通知。此時(shí),在從CPU 102中暫時(shí)使線程B避讓,但是馬上恢復(fù)。并且,當(dāng)成為同步開始的定時(shí)時(shí),應(yīng)用A以及線程B被同步地執(zhí)行。圖4是示出中斷控制的具體例子2的順序圖。在圖4中,假設(shè)在主CPU 101中應(yīng)用A、X在OS 110上以時(shí)間片進(jìn)行動(dòng)作,從CPU 102執(zhí)行線程B。并且,是線程B對(duì)不是其所屬的主進(jìn)程的應(yīng)用X實(shí)施排他的例子。
當(dāng)檢測(cè)出線程B對(duì)應(yīng)用X的排他開始事件時(shí),通知給OS 110。在0S110中,檢測(cè)到應(yīng)用X的停止事件,之后由OS 110和應(yīng)用A以時(shí)間片進(jìn)行動(dòng)作。之后,當(dāng)檢測(cè)出線程B對(duì)應(yīng)用X的排他結(jié)束事件時(shí),通知給0S110。在主CPU 101中,之后應(yīng)用X被恢復(fù),OS 110、應(yīng)用A、X以時(shí)間片進(jìn)行動(dòng)作。如此,即使在從CPU 102檢測(cè)出排他事件的情況下,多核處理器系統(tǒng)100也沒有問題地進(jìn)行動(dòng)作。圖5是示出中斷控制的具體例子3的順序圖。在圖5中,假設(shè)在主CPU 101中應(yīng)用A、X在OS 110上以時(shí)間片進(jìn)行動(dòng)作,從CPU 102執(zhí)行線程B。并且,是線程B對(duì)其所屬的主進(jìn)程的應(yīng)用A實(shí)施排他的例子。當(dāng)檢測(cè)出線程B對(duì)應(yīng)用A的排他開始事件時(shí),通知給OS 110。在0S110中,檢測(cè)到應(yīng)用A的停止事件,之后由OS 110和應(yīng)用X以時(shí)間片進(jìn)行動(dòng)作。之后,當(dāng)檢測(cè)出線程B對(duì)應(yīng)用A的排他結(jié)束事件時(shí),通知給0S110。在主CPU 101中,之后應(yīng)用A被恢復(fù),OS 110、應(yīng)用A、X以時(shí)間片進(jìn)行動(dòng)作。如此,即使在從CPU 102檢測(cè)出排他事件的情況下,多核處理器系統(tǒng)100也會(huì)沒有問題地動(dòng)作。圖6是示出中斷控制的具體例子4的順序圖。圖6是在圖5中在0S110的線程隊(duì) 列200中設(shè)定線程Y的例子。當(dāng)檢測(cè)出線程B對(duì)應(yīng)用A的排他開始事件時(shí),通知給OS 110。在OS 110中,檢測(cè)到應(yīng)用A的停止事件,應(yīng)用A被停止。在圖6中,之后成為OS 110和應(yīng)用X以時(shí)間片進(jìn)行動(dòng)作,但當(dāng)想要在應(yīng)用X中使線程Y起動(dòng)的情況下,由于在從CPU 102中線程B處于執(zhí)行中,因此無法執(zhí)行線程Y。由此,應(yīng)用X的執(zhí)行也中斷,在主CPU 101中僅執(zhí)行OS 110。之后,當(dāng)在從CPU 102中檢測(cè)出排他結(jié)束事件時(shí),從線程B通知給OS 110。由此,線程B結(jié)束,并在主CPU 101中OS 110、應(yīng)用X、A以時(shí)間片進(jìn)行動(dòng)作。如此,在本實(shí)施方式涉及的多核處理器系統(tǒng)100中,即使在主CPUlOl和從CPU 102中的任一個(gè)CPU中發(fā)生排他或同步事件,都能實(shí)現(xiàn)有效地運(yùn)用。如以上說明的那樣,根據(jù)本實(shí)施方式涉及的多核處理器系統(tǒng)100、中斷程序120、以及中斷方法,僅在主CPU 101中使OS 110運(yùn)行,在從CPU 102中只不過執(zhí)行中斷程序120,因此能夠?qū)崿F(xiàn)低負(fù)載的運(yùn)用。另外,通過從主CPU 101向從CPU 102的線程實(shí)施排他或者同步,使執(zhí)行中的線程避讓,并在避讓后的空閑狀態(tài)下分配執(zhí)行等待線程來執(zhí)行。由此,在從CPU 102中,中止?fàn)顟B(tài)的期間被大幅地縮短并能夠?qū)崿F(xiàn)有效地運(yùn)用。另外,在沒有執(zhí)行等待線程的情況下,由于轉(zhuǎn)移到低功率模式,因此能夠?qū)崿F(xiàn)低消耗功率化。符號(hào)說明100多核處理器系統(tǒng)101 主 CPU102 從 CPU103存儲(chǔ)器104 總線120中斷程序A、X 應(yīng)用B、Y 線程
權(quán)利要求
1.ー種多核處理器系統(tǒng),具有執(zhí)行OS以及多個(gè)應(yīng)用的一個(gè)核以及其他核,所述多個(gè)應(yīng)用的線程被分配給所述其他核,所述多核處理器系統(tǒng)的特征在于,包括 接收單元,所述接收單元從所述ー個(gè)核接收指定在所述多個(gè)應(yīng)用中的一個(gè)應(yīng)用中發(fā)生的事件的中斷信號(hào); 判斷単元,所述判斷単元判斷由被所述接收単元接收的中斷信號(hào)指定的事件是否是對(duì)在所述其他核中當(dāng)前執(zhí)行中的線程的排他或者同步的開始事件; 避讓單元,在由所述判斷単元判斷為是所述開始事件的情況下,所述避讓単元使所述當(dāng)前執(zhí)行中的線程從所述其他核避讓;以及 分配単元,所述分配単元將所述多個(gè)應(yīng)用的執(zhí)行等待線程組中被所述避讓単元避讓的線程以外的其他線程分配作為所述其他核的執(zhí)行對(duì)象線程。
2.如權(quán)利要求I所述的多核處理器系統(tǒng),其特征在干, 包括確定單元,在通過所述避讓單元使所述當(dāng)前執(zhí)行中的線程避讓的情況下,所述確定單元確定有無所述執(zhí)行等待線程組, 在通過所述確定單元確定為有所述執(zhí)行等待線程組的情況下,所述分配單元將所述執(zhí)行等待線程組中被所述避讓単元避讓的線程以外的其他線程分配作為所述其他核的執(zhí)行對(duì)象線程。
3.如權(quán)利要求2所述的多核處理器系統(tǒng),其特征在干, 包括設(shè)定單元,所述設(shè)定単元在通過所述確定單元確定為沒有所述執(zhí)行等待線程組的情況下,將所述其他核設(shè)定為比當(dāng)前的功率低的低功率的狀態(tài)。
4.如權(quán)利要求I至3中任一項(xiàng)所述的多核處理器系統(tǒng),其特征在干, 在通過所述判斷単元判斷為由所述中斷信號(hào)指定的事件是對(duì)被所述避讓単元避讓的線程的排他或者同步的結(jié)束事件的情況下,所述分配單元將被所述避讓単元避讓的線程分配作為所述其他核的執(zhí)行對(duì)象線程。
5.ー種中斷程序,所述中斷程序在多核處理器系統(tǒng)中被其他核執(zhí)行,所述多核處理器系統(tǒng)具有執(zhí)行OS以及多個(gè)應(yīng)用的ー個(gè)核、以及其他核,所述多個(gè)應(yīng)用的線程被分配給所述其他核, 所述中斷程序的特征在于,使所述其他核執(zhí)行以下步驟 接收步驟,從所述ー個(gè)核接收指定在所述多個(gè)應(yīng)用中的一個(gè)應(yīng)用中發(fā)生的事件的中斷信號(hào); 判斷步驟,判斷由被所述接收步驟接收的中斷信號(hào)指定的事件是否是對(duì)在所述其他核中當(dāng)前執(zhí)行中的線程的排他或者同步的開始事件; 避讓步驟,在被所述判斷步驟判斷為是所述開始事件的情況下,使所述當(dāng)前執(zhí)行中的線程從所述其他核避讓;以及 分配步驟,將所述多個(gè)應(yīng)用的執(zhí)行等待線程組中被所述避讓步驟避讓的線程以外的其他線程分配作為所述其他核的執(zhí)行對(duì)象線程。
6.ー種中斷方法,其特征在于,在具有執(zhí)行OS以及多個(gè)應(yīng)用的ー個(gè)核、以及被分配所述多個(gè)應(yīng)用的線程的其他核的多核處理器系統(tǒng)中,所述其他核執(zhí)行以下步驟 接收步驟,從所述ー個(gè)核接收指定在所述多個(gè)應(yīng)用中的一個(gè)應(yīng)用中發(fā)生的事件的中斷信號(hào);判斷步驟,判斷由被所述接收步驟接收的中斷信號(hào)指定的事件是否是對(duì)在所述其他核中當(dāng)前執(zhí)行中的線程的排他或者同步的開始事件; 避讓步驟,在被所述判斷步驟判斷為是所述開始事件的情況下,使所述當(dāng)前執(zhí)行中的線程從所述其他核避讓;以及 分配步驟,將所述多個(gè)應(yīng)用的執(zhí)行等待線程組中被所述避讓步驟避讓的線程以外的其他線程分配作為所述其他核的執(zhí)行對(duì)象線程。
全文摘要
當(dāng)在應(yīng)用(A)中檢測(cè)出排他開始事件時(shí),向線程(B)通知中斷信號(hào)(排他開始)。當(dāng)接收到排他開始事件的通知時(shí),通過使線程(B)避讓來釋放從CPU(102)。由于在線程隊(duì)列中存在線程(Y),從CPU(102)被分配線程(Y)。由此,在從CPU(102)中,執(zhí)行線程(Y)。當(dāng)線程(Y)結(jié)束時(shí),線程隊(duì)列是空的,因此轉(zhuǎn)移到低功率模式。之后,當(dāng)在應(yīng)用(A)中檢測(cè)出排他結(jié)束事件時(shí),從應(yīng)用(A)向從CPU(102)通知中斷信號(hào)(排他結(jié)束)。在從CPU(102)中,當(dāng)接收到排他結(jié)束事件的通知時(shí),在從CPU(102)中恢復(fù)線程(B)。由此,能夠從使線程(B)避讓的位置再次執(zhí)行。
文檔編號(hào)G06F9/50GK102754080SQ201080063240
公開日2012年10月24日 申請(qǐng)日期2010年2月23日 優(yōu)先權(quán)日2010年2月23日
發(fā)明者宮崎清志, 山下浩一郎, 山內(nèi)宏真 申請(qǐng)人:富士通株式會(huì)社