两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

利用單處理器操作系統(tǒng)的并行處理系統(tǒng)及并行處理程序的制作方法

文檔序號(hào):6396099閱讀:241來源:國知局
專利名稱:利用單處理器操作系統(tǒng)的并行處理系統(tǒng)及并行處理程序的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及利用多處理器的并行處理系統(tǒng),更具體地,涉及一種利用單處理器的操作系統(tǒng)的并行處理系統(tǒng),能夠在多處理器上運(yùn)行單處理器的操作系統(tǒng)和單處理器的現(xiàn)有應(yīng)用程序,以使應(yīng)用程序能夠?qū)崿F(xiàn)利用多處理器的并行處理,并且涉及一種并行處理程序。
背景技術(shù)
在諸如包括移動(dòng)電話和移動(dòng)PC之類的移動(dòng)終端的數(shù)據(jù)處理設(shè)備中,用于單處理器的操作系統(tǒng)(此后,稱之為單處理器的OS)和用于單處理器的應(yīng)用程序(此后,簡稱為應(yīng)用程序)主要在單處理器上執(zhí)行。
在這些情況下,當(dāng)使用上述應(yīng)用程序而不在多處理器的基礎(chǔ)上進(jìn)行修改時(shí),應(yīng)用程序應(yīng)該在替代了作為單處理器OS的多處理器OS上執(zhí)行。
在控制在如上所述的多處理器系統(tǒng)上的多處理器的OS和應(yīng)用程序的執(zhí)行的這樣的系統(tǒng)中,例如,在日本專利待審公開(Kokai)No.3-257652和日本專利待審公開(Kokai)No.3-113563中公開的傳統(tǒng)技術(shù)。
日本專利待審公開(Kokai)No.3-257652(參考文獻(xiàn)1)公開了一種控制由多個(gè)處理器單元構(gòu)成的多處理器系統(tǒng)中的各個(gè)處理器單元之間的中斷的方法。
日本專利待審公開(Kokai)No.3-113563(參考文獻(xiàn)2)公開了一種在多處理器系統(tǒng)中調(diào)度分配給多個(gè)處理器的進(jìn)程的方法。
另一方面,日本專利待審公開(Kokai)No.2003-058515(參考文獻(xiàn)3)公開了一種在多個(gè)處理器單元中執(zhí)行單獨(dú)的進(jìn)程的方法。
然而,當(dāng)如同在傳統(tǒng)技術(shù)中那樣在多處理器的OS上運(yùn)行現(xiàn)有的應(yīng)用程序時(shí),即使當(dāng)應(yīng)用程序只使用多個(gè)處理器中的一個(gè)處理器時(shí),多處理器的OS也提供針對多處理器的服務(wù),或者即使當(dāng)沒有運(yùn)行其他應(yīng)用程序時(shí),也繼續(xù)進(jìn)行除其他處理器之外的處理,從而這些額外的處理造成了開銷。
在修改上述應(yīng)用程序以使其適合于多處理器將會(huì)消除上述問題,但是將產(chǎn)生需要相當(dāng)大的勞動(dòng)和修改成本的其他問題。
另一方面,當(dāng)應(yīng)用程序不進(jìn)行修改就在現(xiàn)有的單處理器上的OS上使用時(shí),具有以下的高要求現(xiàn)有的應(yīng)用程序應(yīng)該不修改地在多處理器上運(yùn)行。
而且,并行處理器中的進(jìn)程之間的通信需要共享通信數(shù)據(jù)的功能和進(jìn)行處理器的休眠和喚醒的機(jī)制,這些功能傳統(tǒng)上通過安裝在OS的內(nèi)核級(jí)來實(shí)現(xiàn)。換句話說,并行處理器中的進(jìn)程之間的通信需要用于并行處理器的OS。這里,進(jìn)程之間的通信表示進(jìn)程之間的處理同步,和數(shù)據(jù)傳送與接收。
因此,前述的在多處理器的每一個(gè)處理器上運(yùn)行單處理器的OS的單處理器的OS的簡單并行化能夠利用單處理器的OS的功能來實(shí)現(xiàn)進(jìn)程之間的通信,而不能夠?qū)崿F(xiàn)不同處理器的進(jìn)程之間的通信。
例如,參考文獻(xiàn)3未公開任何在不同處理器之間的進(jìn)程間通信的方法。
例如,雖然未利用單處理器的原有功能而利用了網(wǎng)絡(luò),但是,能夠?qū)崿F(xiàn)不同處理器中的進(jìn)程間的通信,在網(wǎng)絡(luò)通信的處理中的延遲將引起開銷而使多處理器無意義地進(jìn)行并行處理。

發(fā)明內(nèi)容
本發(fā)明的目的是提出一種利用單處理器的OS的并行處理系統(tǒng),其中,在多處理器上運(yùn)行單處理器的OS和針對單處理器的現(xiàn)有應(yīng)用程序而不對其進(jìn)行修改,以使現(xiàn)有的應(yīng)用程序能夠?qū)崿F(xiàn)利用多處理器的并行處理,以及提出了一種并行處理程序。
本發(fā)明的另一目的是提出一種利用單處理器的OS的并行處理系統(tǒng),其中,在多處理器上運(yùn)行單處理器的OS和現(xiàn)有應(yīng)用程序而不對其進(jìn)行修改,以及能夠在處理器之間同步地或異步地控制應(yīng)用程序的工作單元(work unit),以及提出了一種并行處理程序。
本發(fā)明的另一目的是提出一種利用單處理器的OS的并行處理系統(tǒng),其中,通過在用戶級(jí)提供進(jìn)程間通信功能,即使在單處理器的OS上也能夠?qū)崿F(xiàn)并行處理器中的進(jìn)程之間的通信,而不需要多處理器的OS,以及一種并行處理程序。
根據(jù)本發(fā)明的第一方面,提出了一種利用單處理器的OS的并行處理系統(tǒng),其中,在多處理器上運(yùn)行單處理器的OS和應(yīng)用程序,以及將在一個(gè)處理器上運(yùn)行的應(yīng)用程序內(nèi)能夠并行化的工作單元控制為其他處理器上的新工作單元,從而針對所述應(yīng)用程序,由所述多處理器進(jìn)行并行處理。
根據(jù)本發(fā)明的另一方面,提出了一種利用單處理器的OS的并行處理系統(tǒng),其中,在多處理器上運(yùn)行單處理器的OS和應(yīng)用程序,將所述多處理器邏輯上劃分為第一處理器側(cè)和第二處理器側(cè)兩組,以及將在所述第一處理器側(cè)的處理器上運(yùn)行的應(yīng)用程序內(nèi)能夠并行化的工作單元控制為在所述第二處理器側(cè)的處理器上的新工作單元,從而針對所述應(yīng)用程序,由所述多處理器進(jìn)行并行處理。
根據(jù)本發(fā)明的另一方面,提出了一種利用單處理器的OS的并行處理系統(tǒng),其中,在多處理器上運(yùn)行單處理器的OS和應(yīng)用程序,將所述多處理器邏輯上劃分為第一處理器側(cè)和第二處理器側(cè)兩組,在所述第一處理器側(cè)的處理器上運(yùn)行單處理器的所述OS和所述應(yīng)用程序,以及將在所述應(yīng)用程序內(nèi)能夠并行化的工作單元控制為在所述第二處理器側(cè)的處理器上的新工作單元,從而針對所述應(yīng)用程序,由所述多處理器進(jìn)行并行處理。
根據(jù)本發(fā)明,提出了一種利用單處理器的OS的并行處理程序,包括以下功能在多處理器上運(yùn)行單處理器的OS和應(yīng)用程序,以及將在一個(gè)處理器上運(yùn)行的應(yīng)用程序內(nèi)能夠并行化的工作單元控制為其他處理器上的新工作單元,從而針對所述應(yīng)用程序,由所述多處理器進(jìn)行并行處理。
根據(jù)本發(fā)明的另一方面,提出了一種利用單處理器的OS的并行處理程序,包括以下功能在多處理器上運(yùn)行單處理器的OS和應(yīng)用程序,在將所述多處理器邏輯上劃分為第一處理器側(cè)和第二處理器側(cè)兩組的系統(tǒng)上,將在所述第一處理器側(cè)的處理器上運(yùn)行的應(yīng)用程序內(nèi)能夠并行化的工作單元控制為在所述第二處理器側(cè)的處理器上的新工作單元,從而針對所述應(yīng)用程序,由所述多處理器進(jìn)行并行處理。
根據(jù)本發(fā)明的另一方面,提出了一種利用單處理器的OS的并行處理程序,包括以下功能在多處理器上運(yùn)行單處理器的OS和應(yīng)用程序,在將所述多處理器邏輯上劃分為第一處理器側(cè)和第二處理器側(cè)兩組的系統(tǒng)上,在所述第一處理器側(cè)的處理器上運(yùn)行所述單處理器的OS和所述應(yīng)用程序,以及將在所述應(yīng)用程序內(nèi)能夠并行化的工作單元控制為在所述第二處理器側(cè)的處理器上的新工作單元,從而針對所述應(yīng)用程序,由所述多處理器進(jìn)行并行處理。
從以下所給出的詳細(xì)描述中,本發(fā)明的其他目的、特征和優(yōu)點(diǎn)將變得清楚。


從以下所給出的詳細(xì)描述中和從本發(fā)明的優(yōu)選實(shí)施例的附圖中,本發(fā)明將得到更完整的理解,然而,這些優(yōu)選實(shí)施例不應(yīng)該看作對本發(fā)明的限定,而只用于解釋和理解的目的。
在附圖中圖1是示出了根據(jù)本發(fā)明第一實(shí)施例的并行處理系統(tǒng)的結(jié)構(gòu)的方框圖;圖2是用于解釋在第一實(shí)施例的并行處理系統(tǒng)中由并行處理單元進(jìn)行的激活并行處理的操作的圖。
圖3是在由并行處理系統(tǒng)的并行處理單元的并行處理激活中,給出命令的消息結(jié)構(gòu)的圖;圖4是用于解釋在第一實(shí)施例的并行處理系統(tǒng)中,響應(yīng)來自第二處理器側(cè)的任務(wù)中的文件訪問命令,OS服務(wù)單元要進(jìn)行的操作的圖;圖5是用于解釋響應(yīng)來自第一處理器側(cè)的順序任務(wù)中的文件訪問命令所執(zhí)行的操作的圖;圖6是示出在根據(jù)第一實(shí)施例的并行處理系統(tǒng)中的控制處理中繼單元的內(nèi)部結(jié)構(gòu)的方框圖;圖7是用于解釋在根據(jù)第一實(shí)施例的并行處理系統(tǒng)中的控制處理中繼單元的處理操作的圖;圖8是用于解釋在根據(jù)第一實(shí)施例的并行處理系統(tǒng)中由代理單元所進(jìn)行的信號(hào)通知處理操作的圖;圖9是示出了在根據(jù)第一實(shí)施例的并行處理系統(tǒng)中,用于實(shí)現(xiàn)在第二處理器側(cè)的任務(wù)之間的協(xié)同操作的結(jié)構(gòu)的方框圖;圖10是用于解釋在根據(jù)第一實(shí)施例的并行處理系統(tǒng)中,在第二處理器側(cè)的任務(wù)之間的協(xié)同操作的圖;圖11是用于解釋作為應(yīng)用于并行處理系統(tǒng)的實(shí)例,運(yùn)行在多處理器的移動(dòng)終端上的應(yīng)用程序的情況的圖;圖12是示出了根據(jù)本發(fā)明的第二實(shí)施例的并行處理系統(tǒng)的結(jié)構(gòu)的方框圖;圖13是用于解釋在根據(jù)第二實(shí)施例的并行處理系統(tǒng)中,同步激活對進(jìn)程的并行處理的操作的圖;圖14是用于解釋在根據(jù)第二實(shí)施例的并行處理系統(tǒng)中,異步激活對進(jìn)程的并行處理的操作的圖;圖15是示出了在根據(jù)第二實(shí)施例的并行處理系統(tǒng)中,控制處理中繼單元的內(nèi)部結(jié)構(gòu)的方框圖;圖16是用于解釋在根據(jù)第二實(shí)施例的并行處理系統(tǒng)中,控制處理中繼單元的處理操作的圖。
圖17是示出了根據(jù)本發(fā)明的第三實(shí)施例的并行處理系統(tǒng)的結(jié)構(gòu)的方框圖;圖18是用于解釋在根據(jù)第三實(shí)施例的并行處理系統(tǒng)中,當(dāng)處理器中的進(jìn)程通過進(jìn)程間通信單元利用信號(hào)量(semaphore)系統(tǒng)進(jìn)行信號(hào)量增加(semaphore-up)或信號(hào)量減小(semaphore-down)時(shí)要執(zhí)行的操作的圖;圖19是用于解釋在根據(jù)第三實(shí)施例的并行處理系統(tǒng)中,當(dāng)處理器中的進(jìn)程通過進(jìn)程間通信單元利用信號(hào)量系統(tǒng)進(jìn)行信號(hào)量增加時(shí)所執(zhí)行的操作的圖;圖20是用于解釋在根據(jù)第三實(shí)施例的并行處理系統(tǒng)中,當(dāng)通過進(jìn)程間通信單元利用信號(hào)量系統(tǒng)在相同處理器中的進(jìn)程間進(jìn)行信號(hào)量增加時(shí)所執(zhí)行的操作的圖;圖21是用于解釋在根據(jù)第三實(shí)施例的并行處理系統(tǒng)中,當(dāng)通過進(jìn)程間通信單元利用信號(hào)量系統(tǒng)在不同處理器中的進(jìn)程間進(jìn)行信號(hào)量增加時(shí)所執(zhí)行的操作的圖;圖22是用于解釋在根據(jù)第三實(shí)施例的并行處理系統(tǒng)中,當(dāng)處理器中的進(jìn)程通過進(jìn)程間通信單元利用消息隊(duì)列系統(tǒng)接收消息時(shí)所執(zhí)行的操作的圖;圖23是用于解釋在根據(jù)第三實(shí)施例的并行處理系統(tǒng)中,當(dāng)處理器中的進(jìn)程通過進(jìn)程間通信單元利用消息隊(duì)列系統(tǒng)接收消息時(shí)所執(zhí)行的操作的圖;圖24是用于解釋在根據(jù)第三實(shí)施例的并行處理系統(tǒng)中,當(dāng)處理器中的進(jìn)程通過進(jìn)程間通信單元利用消息隊(duì)列系統(tǒng)傳送消息時(shí)所執(zhí)行的操作的圖;圖25是用于解釋在根據(jù)第三實(shí)施例的并行處理系統(tǒng)中,當(dāng)通過進(jìn)程間通信單元利用消息隊(duì)列系統(tǒng)在相同處理器中的進(jìn)程間進(jìn)行消息傳送和接收時(shí)所執(zhí)行的操作的圖;圖26是用于解釋在根據(jù)第三實(shí)施例的并行處理系統(tǒng)中,當(dāng)通過進(jìn)程間通信單元利用消息隊(duì)列系統(tǒng)在不同處理器中的進(jìn)程間進(jìn)行消息傳送和接收時(shí)所執(zhí)行的操作的圖;圖27是用于解釋在根據(jù)第三實(shí)施例的并行處理系統(tǒng)中,利用信號(hào)量系統(tǒng)和消息隊(duì)列系統(tǒng)的進(jìn)程間通信的特定實(shí)例的圖;圖28是用于解釋在圖27所示的特定實(shí)例中,在瀏覽器屏幕上的顯示內(nèi)容的圖;以及圖29是示出根據(jù)本發(fā)明第四實(shí)施例的并行處理系統(tǒng)的結(jié)構(gòu)的方框圖。
具體實(shí)施例方式
下面將參考附圖詳細(xì)描述本發(fā)明的優(yōu)選實(shí)施例。在以下描述中,闡明了大量特定細(xì)節(jié),以便提供對本發(fā)明的完全理解。然而,對于本領(lǐng)域的技術(shù)人員顯而易見,可以脫離這些具體細(xì)節(jié)來實(shí)施本發(fā)明。在其他實(shí)例中,為了不必要地使本發(fā)明不清楚,未詳細(xì)示出公知結(jié)構(gòu)。
在本發(fā)明的并行處理系統(tǒng)中,通過添加用于詢問針對多個(gè)處理器的處理的機(jī)制和在向多個(gè)處理器提供OS服務(wù)中保護(hù)關(guān)鍵部分的機(jī)制,在多處理器上執(zhí)行并行處理,而不對單處理器的傳統(tǒng)OS添加任何修改。
在下文中,將參考附圖詳細(xì)描述本發(fā)明的優(yōu)選實(shí)施例。
圖1是示出了根據(jù)本發(fā)明的優(yōu)選實(shí)施例的并行處理系統(tǒng)的結(jié)構(gòu)的方框圖。
如圖1所示,根據(jù)本實(shí)施例的并行處理系統(tǒng)包括由通過系統(tǒng)總線91連接的多個(gè)處理器(CPU)P0到Pn(n是不小于1的整數(shù))構(gòu)成的多處理器,所述多個(gè)處理器邏輯上劃分為第一處理器側(cè)10和第二處理器側(cè)20兩組,其中,安裝有單處理器的OS 30,其在第一處理器側(cè)10的處理器P0上運(yùn)行,用于進(jìn)行并行處理的并行處理單元40P0到40Pn和用于處理OS服務(wù)的OS服務(wù)單元50P0到50Pn分別安裝在第一處理器側(cè)10的處理器P0上和在第二處理器側(cè)20的處理器P1到Pn上。與系統(tǒng)總線91相連的是主存儲(chǔ)設(shè)備92,作為由各個(gè)處理器P0到Pn和諸如盤設(shè)備的外部存儲(chǔ)設(shè)備93共享的共享存儲(chǔ)器。
可以對上述多處理器進(jìn)行構(gòu)造,以使其不僅包括相同種類的多個(gè)處理器,還包括諸如DSP和安全引擎之類不同種類的多個(gè)處理設(shè)備。
在第一處理器側(cè)10和第二處理器側(cè)20之間,唯一地設(shè)置了控制處理中繼單元60,用于傳送和接收控制信號(hào)和數(shù)據(jù),并且在第一處理器側(cè)10上設(shè)置了代理單元70,通過該代理單元70,單處理器的OS 30與在第二處理器側(cè)20上執(zhí)行的任務(wù)進(jìn)行通信。
在上述第一處理器側(cè)10上的處理器不必須作為單個(gè)處理器存在而可以作為多個(gè)處理器存在。例如,可以在第一處理器側(cè)10上設(shè)置兩個(gè)處理器,并且每一個(gè)處理器安裝有不同的單處理器的OS。
將現(xiàn)有的OS用作由第一處理器側(cè)10上的處理器激活的單處理器的OS 30。例如,使用實(shí)時(shí)OS和UNIX(R)OS而無需修改。
在本說明書中的任務(wù)表示用于對進(jìn)程進(jìn)行并行處理的工作單元、以及在UNIX(R)OS上的線程、在實(shí)時(shí)OS等上的任務(wù)。
在根據(jù)本實(shí)施例的并行處理系統(tǒng)中,應(yīng)用程序在第一處理器側(cè)10上的單處理器的OS上運(yùn)行,并且在應(yīng)用程序的工作單元中,不能夠并行化的任務(wù)(順序任務(wù))由第一處理器側(cè)10上的處理器P0處理,而將能夠在應(yīng)用程序內(nèi)并行化的任務(wù)創(chuàng)建為第二處理器側(cè)20上的新任務(wù),并且被并行處理。
并行處理單元40P0和并行處理單元40P1到40Pn具有執(zhí)行任務(wù)的創(chuàng)建、激活、停止、終止(termination)和刪除和其他與任務(wù)有關(guān)的控制的功能。這里,第一處理器側(cè)10的并行處理單元40P0針對在第二處理器側(cè)20上的各個(gè)處理器P1到Pn的并行處理單元40P1到40Pn,通過控制處理中繼單元60進(jìn)行諸如任務(wù)的創(chuàng)建、激活、停止、終止和刪除等處理。對于信號(hào)通知,從并行處理單元40P0和并行處理單元40P1到40Pn中對其進(jìn)行雙向處理。
OS服務(wù)單元50P0和OS服務(wù)單元50P1到50Pn具有作為對外部設(shè)備進(jìn)行各種訪問的接口及其控制、和作為對任務(wù)之間共享的資源進(jìn)行各種訪問的接口及其控制的功能。
控制處理中繼單元60是用于傳送和接收第一處理器側(cè)10和第二處理器側(cè)20之間的控制信號(hào)和數(shù)據(jù)的單元,并且用于由多個(gè)處理器相互并行地處理的多個(gè)任務(wù)之間的控制中。
代理單元70與在第二處理器側(cè)20上執(zhí)行的任務(wù)關(guān)聯(lián)(部分任務(wù)或全部任務(wù)),并安裝了代理單元70,用于第二處理器側(cè)20上的任務(wù)和單處理器的OS 30之間的信號(hào)通知(通知用于控制任務(wù)的各種控制信號(hào))。
下面,將參考附圖對根據(jù)本實(shí)施例的這樣構(gòu)造的并行處理系統(tǒng)的操作進(jìn)行詳細(xì)的描述。
這里假定應(yīng)用程序在第一處理器側(cè)10上的單處理器的OS上運(yùn)行,并且在應(yīng)用程序的工作單元中,將要由第一處理器側(cè)10上的處理器P0處理的單元定義為順序任務(wù)ST,并且將作為在應(yīng)用程序內(nèi)可以并行化并由第二處理器側(cè)20作為任務(wù)PT-1到PT-n并行處理的單元定義為并行化任務(wù)PT。
首先,將參考圖2和3,描述由并行處理單元40P0和40P1到40Pn激活并行處理的操作。
(1)在激活第一處理器側(cè)10上的并行化任務(wù)PT作為第二處理器側(cè)20上的任務(wù)PT-1到PT-n中的任一個(gè)的情況下,命令并行處理單元P40創(chuàng)建任務(wù)PT-1到PT-n中的任一個(gè),作為要在第二處理器側(cè)20上的激活的工作單元。
來自并行處理單元40P0和并行處理單元40P1到40Pn的命令包括諸如,創(chuàng)建(任務(wù)創(chuàng)建)、刪除(任務(wù)刪除)、激活(任務(wù)激活)、終止(任務(wù)終止)、信號(hào)(信號(hào)命令)等。在這些命令中,創(chuàng)建(任務(wù)創(chuàng)建)、刪除(任務(wù)刪除)、激活(任務(wù)激活)和終止(任務(wù)終止)是從第一處理器側(cè)10發(fā)送到第二處理器側(cè)20的命令,而信號(hào)(信號(hào)命令)同時(shí)從第一處理器側(cè)10和第二處理器側(cè)20雙向地發(fā)送。
這些命令由圖3所示的消息來實(shí)現(xiàn)。更具體地,通過向并行處理單元40P0傳送由表示請求內(nèi)容(在這種情況下的任務(wù)創(chuàng)建)的請求內(nèi)容201、用于指定將處理該任務(wù)的第二處理器側(cè)20上的處理器P1~Pn的處理器號(hào)202、表示要新創(chuàng)建的任務(wù)PT-1~PT-n的任務(wù)號(hào)、以及表示請求任務(wù)創(chuàng)建的并行化任務(wù)PT的原始任務(wù)號(hào)構(gòu)成的消息,請求任務(wù)創(chuàng)建。對于任務(wù)創(chuàng)建之外的其他任務(wù),將根據(jù)圖3所示的消息來發(fā)送所述命令。
(2)并行處理單元40P0作為響應(yīng),激活與要?jiǎng)?chuàng)建的PT-1~PT-n相對應(yīng)的代理單元70。激活所述代理單元70,以便防止任務(wù)的管理內(nèi)容在第一處理器側(cè)10和第二處理器側(cè)20之間共享,并且完成在第一處理器側(cè)10上的專門處理。此時(shí),將任務(wù)PT-1~PT-n的任務(wù)號(hào)保存在代理單元70中。
(3)并行處理單元40P0還設(shè)置諸如上述任務(wù)號(hào)和請求內(nèi)容的任務(wù)創(chuàng)建(在第二處理器側(cè)20的處理器P1到Pn的任務(wù)創(chuàng)建)時(shí)所需的數(shù)據(jù)以及用于在控制處理中繼單元60指定“并行處理”的通信理由信息(communication reason information)。
該處理造成了針對控制處理中繼單元60,進(jìn)行稍后將要描述的要傳送到主存儲(chǔ)設(shè)備92(共享存儲(chǔ)器)上的內(nèi)容的設(shè)置、以及處理器間中斷的處理。
這里,通信理由信息表示傳送到控制處理中繼單元60的數(shù)據(jù)的接受者(接受方),并且在上述情況下,在控制處理中繼單元60中設(shè)置的數(shù)據(jù)將由指定處理器P1~Pn的并行處理單元40P1~40Pn獲得。
(4)在第二處理器側(cè)20的指定處理器P1~Pn上的并行處理單元40P1~40Pn獲得具有來自控制處理中繼單元60的、作為通信理由信息的“并行處理”的請求內(nèi)容(任務(wù)控制所需的數(shù)據(jù))。
(5)然后,并行處理單元40P1~40Pn根據(jù)所獲得的請求內(nèi)容,在處理器P1~Pn上創(chuàng)建和激活任務(wù)PT-1~PT-n。
前述的處理使作為在第一處理器側(cè)10的單處理器的OS上運(yùn)行的應(yīng)用程序的工作單元的并行化任務(wù)PT的工作單元能夠在第二處理器側(cè)20上作為任務(wù)PT-1~PT-n被并行處理。
雖然已經(jīng)針對并行處理單元40P1到40Pn根據(jù)所獲得的請求內(nèi)容在處理器P1到Pn上創(chuàng)建和激活任務(wù)PT-1到PT-n的情況,描述了前述的操作,但是,可以提前創(chuàng)建第一處理器側(cè)10上的并行化任務(wù)PT作為第二處理器側(cè)20上的任務(wù)PT-1到PT-n中的任一個(gè),并且并行化處理單元40P1到40Pn可以根據(jù)所獲得的請求內(nèi)容,激活處理器P1到Pn上的任務(wù)PT1到PTn。
接下來,將描述由OS服務(wù)單元50P0和50P1到50Pn所進(jìn)行的OS服務(wù)處理操作。
OS服務(wù)單元50P0和50P1到50Pn具有根據(jù)來自在第二處理器側(cè)20的處理器P1到Pn上創(chuàng)建的任務(wù)PT-1到PT-n的命令,提供與對外部設(shè)備的各種訪問及其控制、和對由其他任務(wù)共享的資源的各種訪問及其控制相關(guān)的服務(wù),所述服務(wù)是由單處理器的OS30所提供的服務(wù)。由單處理器的OS30提供的主要服務(wù)等價(jià)于由普通OS提供的系統(tǒng)調(diào)用和API。
將參考圖4,描述響應(yīng)來自第二處理器側(cè)20的處理器P1到Pn上的任務(wù)PT-1到PT-n的文件訪問(例如,針對外部存儲(chǔ)設(shè)備93上的文件的各種處理)命令,OS服務(wù)單元50P0和50P1到50Pn的操作。
這里,文件訪問包括諸如以下的處理打開(打開文件)、關(guān)閉(關(guān)閉文件)、讀取(讀取文件)、寫入(寫入文件)、查找(移動(dòng)文件寫入位置)、刪除(刪除文件)和更名(改變文件的名字)。
(1)當(dāng)在第二處理器20上的任務(wù)PT-1到PT-n中產(chǎn)生了對文件訪問處理的需要時(shí),任務(wù)PT1到PTn請求第二處理器側(cè)20上的OS服務(wù)單元50P1到50Pn提供文件訪問的服務(wù)。例如,由該文件訪問服務(wù)命令所調(diào)用的是定義為由OS服務(wù)單元50P1到50Pn對文件進(jìn)行寫入處理的寫入功能、以及定義為文件讀取處理的讀取功能。
這里,OS服務(wù)單元50P1到50Pn設(shè)置在第一處理器側(cè)10上的處理(由單處理器的OS30所進(jìn)行的文件訪問處理)所需的數(shù)據(jù)。這里,所需數(shù)據(jù)包括諸如以下的信息請求內(nèi)容(例如,寫入請求)、要訪問的文件的描述符(文件描述符)、指向字符串的指針、字符串的長度和任務(wù)號(hào)。
(2)利用設(shè)置為“OS服務(wù)”的通信理由信息,通過在控制處理中繼單元60處設(shè)置包含請求內(nèi)容的所需數(shù)據(jù),OS服務(wù)單元50P1~50Pn向第一處理器側(cè)10發(fā)布文件訪問命令。
之后,已經(jīng)發(fā)布了文件訪問的服務(wù)命令的任務(wù)PT-1~PT-n進(jìn)入等待狀態(tài),并且在相應(yīng)的處理器P1~Pn中,由并行處理單元40P1~40Pn將處理切換到其他任務(wù)(任務(wù)切換)。
(3)在第一處理器側(cè)10上的OS服務(wù)單元50P0從控制處理中繼單元60中獲得具有作為通信理由信息的“OS服務(wù)”的上述文件訪問命令。
(4)在第一處理器側(cè)10上的OS服務(wù)單元50P0根據(jù)所獲得的請求內(nèi)容,從單處理器的OS30中請求文件訪問。
(5)結(jié)果,單處理器的OS30根據(jù)命令對外部存儲(chǔ)設(shè)備93進(jìn)行文件訪問(寫入、讀取等)。利用單處理器的OS30最初具有的文件訪問服務(wù)來執(zhí)行該文件訪問處理而無需修改。
(6)在完成所請求的文件訪問處理之后,單處理器的OS30將針對文件訪問命令的返回值發(fā)送回OS服務(wù)單元50P0,以便返回處理。
(7)此外,OS服務(wù)單元50P0在具有作為通信理由信息的“OS服務(wù)”的控制中繼單元60處,設(shè)置通信內(nèi)容,即,包括已經(jīng)請求文件訪問的任務(wù)PT-1~PT-n的返回值和任務(wù)號(hào)的數(shù)據(jù),從而通知第二處理器側(cè)20上的處理器P1~Pn該文件訪問的完成。
(8)由此,相應(yīng)處理器P1~Pn的OS服務(wù)單元50P1~50Pn從控制處理中繼單元60接收所設(shè)置的返回值和完成通知。
(9)然后,第二處理器側(cè)20上的OS服務(wù)單元50P1~50Pn要求并行處理單元40P1~40Pn激活已經(jīng)給出文件訪問命令的任務(wù)PT-1~PT-n。
結(jié)果,處理切換到處于等待狀態(tài)的任務(wù)PT-1~PT-n。
(10)由并行處理單元40P1~40Pn激活的任務(wù)PT-1~PT-n從OS服務(wù)單元50P1~50Pn中接收文件訪問的返回值,以繼續(xù)處理。
前述的處理使在第二處理器側(cè)20上的任務(wù)PT-1~PT-n能夠進(jìn)行文件訪問,而無需在第二處理器側(cè)20上提供單獨(dú)的文件訪問的處理單元,同時(shí),利用了單處理器的OS30的服務(wù),而無需進(jìn)行修改。此外,利用該布置,在第一處理器側(cè)10上完成針對文件訪問的專有處理,從而可以實(shí)現(xiàn)并行處理,而沒有如同在運(yùn)行多處理器的OS上的應(yīng)用程序那樣由這樣的專有處理所引起的開銷。
在第二處理器側(cè)20的處理器P1~Pn上的任務(wù)PT-1~PT-n對外部存儲(chǔ)設(shè)備93的只讀數(shù)據(jù)進(jìn)行文件訪問的情況下,可以從每一個(gè)處理器P1~Pn對外部存儲(chǔ)設(shè)備93進(jìn)行直接訪問,而無需如前面所描述的由OS服務(wù)單元50P1~50Pn進(jìn)行這樣的處理。
這里,對于來自第一處理器側(cè)的處理器P0上的順序任務(wù)ST的文件訪問命令,由單處理器的OS30直接進(jìn)行處理,而無需使用OS服務(wù)單元。下面,將參考圖5來描述該處理。
(1)在處理器P0上的順序任務(wù)ST請求單處理器的OS30進(jìn)行文件訪問。
(2)結(jié)果,單處理器的OS30根據(jù)命令,對外部存儲(chǔ)設(shè)備93等進(jìn)行文件訪問(寫入、讀取等)。利用單處理器的OS30最初所具有的沒有修改的文件訪問服務(wù)來執(zhí)行文件訪問處理。
(3)當(dāng)完成文件訪問處理時(shí),單處理器的OS30將針對文件訪問命令的返回值發(fā)送回順序任務(wù)ST,以返回處理。
由于響應(yīng)來自順序任務(wù)ST的OS服務(wù)命令,不需要專有控制等,將不會(huì)產(chǎn)生任何額外的開銷。
將參考圖6和7來描述控制處理中繼單元60所進(jìn)行的處理操作。
首先,圖6中示出了控制處理中繼單元60的結(jié)構(gòu)。如圖所示,控制處理中繼單元60包括與各個(gè)處理器P0到Pn相對應(yīng)的中斷控制設(shè)備61P0到61Pn、以及與各個(gè)處理器P0到Pn相對應(yīng)的通信區(qū)域62P0到62Pn。這里,在主存儲(chǔ)設(shè)備92中確保了通信區(qū)域62P0到62Pn。
中斷設(shè)備61P0到61Pn的每一個(gè)還包括中斷指示單元61a,用于指示其他處理器中斷;中斷狀態(tài)保存單元61b,用于保存響應(yīng)中斷指示而進(jìn)行的中斷的信息;以及中斷取消單元61c,用于清除中斷。
通信區(qū)域62P0到62Pn的每一個(gè)包括通信理由保存區(qū)域62a,用于保存來自作為通信源的處理器的通信理由信息;通信數(shù)據(jù)保存區(qū)域62b,用于保存要通信的通信數(shù)據(jù);以及互斥控制區(qū)域62c,用于鎖定通信區(qū)域以確保通信。
在這個(gè)時(shí)刻,在通信數(shù)據(jù)保存區(qū)域62b中,將存儲(chǔ)指向主存儲(chǔ)設(shè)備92的指針,其中存儲(chǔ)了要通信的通信數(shù)據(jù)(包括請求內(nèi)容的所需數(shù)據(jù))。
將參考圖7,針對作為實(shí)例的從第一處理器側(cè)10上的并行處理單元40P0到第二處理器側(cè)20上的處理器P1的通信的處理,對操作進(jìn)行描述。
(1)并行處理單元40P0鎖定針對處理器P1的通信區(qū)域62P1的互斥控制區(qū)域62c。更具體地,通過使在互斥控制區(qū)域62c中存儲(chǔ)的鎖定變量變?yōu)殒i定狀態(tài),防止當(dāng)前針對處理器P1的通信區(qū)域62P1由其他處理器使用。
當(dāng)該區(qū)域已經(jīng)由其他處理器鎖定時(shí),等待該鎖定的釋放。
(2)當(dāng)?shù)玫搅送ㄐ艆^(qū)域62P1的鎖定時(shí),并行處理單元40P0分別在通信區(qū)域62P1的通信理由保存區(qū)域62a和通信數(shù)據(jù)保存區(qū)域62b中存儲(chǔ)通信理由信息和通信數(shù)據(jù)(包括請求內(nèi)容的所需數(shù)據(jù))。
在如上所述的創(chuàng)建任務(wù)的通信處理的情況下,要存儲(chǔ)的通信理由信息是表示“并行處理”的信息(例如,對應(yīng)于并行處理預(yù)定的諸如數(shù)值的數(shù)據(jù))。
(3)并行處理單元40P0指示其自身的中斷控制設(shè)備61P0的中斷指示單元61a中斷處理器P1。
(4)中斷控制設(shè)備61P0的中斷指示單元61a在對應(yīng)于處理器P1的中斷控制設(shè)備61P1的中斷狀態(tài)保存單元61b處,設(shè)置表示中斷的信息。這使處理器P1進(jìn)入中斷狀態(tài)。
(5)處理器P1的并行處理單元40P1根據(jù)在控制處理中繼單元60中的中斷控制設(shè)備61P1的中斷狀態(tài)保存單元61b中的狀態(tài),確定中斷被設(shè)置。
(6)處理器P1的并行處理單元40P1通過清除在控制處理中繼單元60中的其自身的中斷狀態(tài)保存單元61b的中斷信息,從終端狀態(tài)中釋放它自己。
(7)處理器P1的并行處理單元40P1分別從控制處理中繼單元60的通信理由保存區(qū)域62a和通信數(shù)據(jù)保存區(qū)域62b中獲得通信理由信息和通信數(shù)據(jù)(包括請求內(nèi)容的所需數(shù)據(jù))。
(8)當(dāng)允許其接收下一個(gè)通信時(shí),處理器P1的并行處理單元40P1釋放其自身通信區(qū)域62P1的互斥控制區(qū)域62c的鎖定。更具體地,通過使互斥控制區(qū)域62c中的鎖定變量變?yōu)槲存i定狀態(tài),釋放處理器P1的通信區(qū)域62P1,以使其可以由其他處理器使用。
因此,利用控制處理中繼單元60,實(shí)現(xiàn)了第一處理器側(cè)10和第二處理器側(cè)20之間的控制信號(hào)和數(shù)據(jù)的傳送和接收。
將參考圖8來描述由代理單元70所進(jìn)行的信號(hào)通知處理的操作。
代理單元70具有使單處理器的OS30能夠利用信號(hào)(控制信號(hào))與第二處理器側(cè)20上產(chǎn)生的任務(wù)PT-1~PT-n進(jìn)行通信的功能。將相應(yīng)任務(wù)的PT-1~PT-n的任務(wù)號(hào)保存在代理單元70中。
代理單元70可以與多個(gè)任務(wù)PT-1~PT-n中的每一個(gè)一對一地關(guān)聯(lián),或者多個(gè)任務(wù)PT-1~PT-n可以與一個(gè)代理單元70關(guān)聯(lián)。
(1)第一處理器側(cè)10上的順序任務(wù)ST從單處理器的OS30請求信號(hào)通知服務(wù)。由信號(hào)通知所傳達(dá)的信號(hào)是由單處理器的OS30最初具有的服務(wù)功能控制在第二處理器側(cè)20的各個(gè)處理器P1到Pn上激活的任務(wù)PT-1到PT-n的控制信號(hào)。
(2)單處理器的OS30將信號(hào)通知給相應(yīng)的代理單元70。
(3)通過控制處理中繼單元60,代理單元70將所通知的信號(hào)通知給其相應(yīng)的處理器P1~Pn,其中,任務(wù)PT-1存在于第二處理器側(cè)20。此時(shí),設(shè)置“并行處理”作為通信理由信息。
(4)由于去往通信處理中繼單元60的通信理由是“并行處理”,在第二處理器側(cè)20上的相應(yīng)處理器的并行處理單元40P1~40Pn從控制處理中繼單元60獲得信號(hào)通知命令。
(5)已經(jīng)獲得信號(hào)通知命令的并行處理單元40P1~40Pn向相應(yīng)的任務(wù)PT-1~PT-n通知所述信號(hào)(控制信號(hào))。
因此,由于代理單元70在第一處理器側(cè)10利用任務(wù)號(hào)與第二處理器側(cè)20的處理器P0~Pn上的任務(wù)PT-1~PT-n關(guān)聯(lián),可以針對任務(wù)PT-1~PT-n來執(zhí)行由單處理器的OS30所進(jìn)行的信號(hào)通知服務(wù)。
最后,將參考圖9和10來描述在第二處理器側(cè)20上的任務(wù)間協(xié)同操作。
圖9示出了用于獲得任務(wù)間的協(xié)同的并行處理單元40P1到40Pn的結(jié)構(gòu)。如圖所示,并行處理單元40P1到40Pn設(shè)置有互斥(mutualexclusion)單元41P1到41Pn。
主存儲(chǔ)設(shè)備92還包括互斥控制區(qū)域43和任務(wù)管理內(nèi)容保存區(qū)域44,以便獲得任務(wù)的協(xié)作。
(1)在處理器P1上的任務(wù)PT-1從其自身的并行處理單元40P1上請求所需的并行處理。
(2)處理器P1的并行處理單元40P1從互斥單元41P1中請求獲得鎖定,以便確保用于并行處理的資源。
(3)互斥單元41P1利用主存儲(chǔ)設(shè)備92的互斥控制區(qū)域43來獲得鎖定。
(4)互斥單元41P1通知并行處理單元40P1已經(jīng)獲得了鎖定。
(5)并行處理單元40P1在任務(wù)管理內(nèi)容保存區(qū)域44中保存已經(jīng)請求處理器P1上的并行處理的任務(wù)PT-1的管理內(nèi)容(請求內(nèi)容、任務(wù)號(hào)和其他所需數(shù)據(jù))。
(6)并行處理單元40P1中斷正在執(zhí)行低優(yōu)先級(jí)任務(wù)的其他處理器P2~Pn。這里假定處理器Pn被中斷。
(7)并行處理單元40P1要求互斥單元41P1釋放如上所述的所確保的鎖定。
(8)互斥單元41P1對主存儲(chǔ)設(shè)備92的互斥控制區(qū)域43進(jìn)行解鎖。
(9)互斥單元41P1向并行處理單元40P1通知解鎖的完成。
(10)并行處理單元40P1將處理返回到任務(wù)PT-1。
(11)處理器Pn的并行處理單元40Pn從互斥單元41Pn中請求獲得鎖定,以確保用于并行處理的資源。
(12)互斥單元41Pn利用主存儲(chǔ)設(shè)備92的互斥控制區(qū)域43來獲得鎖定。
(13)互斥單元41Pn向并行處理單元40Pn通知鎖定獲取的完成。
(14)并行處理單元40Pn獲得在任務(wù)管理內(nèi)容保存區(qū)域44中所存儲(chǔ)的任務(wù)管理內(nèi)容。
(15)并行處理單元40Pn根據(jù)任務(wù)管理內(nèi)容來創(chuàng)建和激活新的任務(wù)。
(16)并行處理單元40Pn從互斥單元41Pn中請求如上所述的所確保的鎖定的釋放。
(17)互斥單元41Pn對主存儲(chǔ)設(shè)備92的互斥控制區(qū)域43進(jìn)行解鎖。
(18)互斥單元41Pn向并行處理單元40Pn通知解鎖的完成。
如上所述的這樣的任務(wù)協(xié)同操作允許在特定處理器P1~Pn上激活的任務(wù)PT-1~PT-n使其自身的工作單元由其他處理器來并行處理。
作為應(yīng)用于這樣構(gòu)造的并行處理系統(tǒng)的實(shí)例,將對在多處理器的移動(dòng)終端上運(yùn)行應(yīng)用程序的情況進(jìn)行描述。
這里,將參考圖11來進(jìn)行描述,假定以下情況應(yīng)用程序具有在移動(dòng)終端上同時(shí)再現(xiàn)圖像(運(yùn)動(dòng)圖像)和聲音的功能,并且將聲音輸出處理定義為順序任務(wù)A,而圖像輸出處理定義為并行化任務(wù)B,應(yīng)用程序運(yùn)行于第一處理器側(cè)10的處理器P0上。
由上述并行處理單元將并行化任務(wù)B創(chuàng)建和激活為在第二處理器側(cè)20的處理器P1到Pn的任一個(gè)上的任務(wù)C。
創(chuàng)建的任務(wù)C通過OS服務(wù)單元的文件訪問處理,在屏幕上輸出圖像。
關(guān)于由順序任務(wù)A輸出的聲音,由單處理器的OS30的服務(wù)來輸出聲音。
為了周期性地同步聲音和圖像,通過經(jīng)由代理單元70所進(jìn)行的信號(hào)通知操作在順序任務(wù)A和任務(wù)C之間提供信號(hào)通知來達(dá)到同步。
此外,當(dāng)執(zhí)行在任務(wù)C中的編輯圖像處理時(shí),由任務(wù)協(xié)同處理將編輯處理創(chuàng)建和激活為其他處理器上的任務(wù)D。
當(dāng)完成了由任務(wù)C所進(jìn)行的圖像輸出處理時(shí),任務(wù)C通過文件訪問操作,向單處理器的OS通知該終止。
在本實(shí)施例中,作為模塊設(shè)置的并行處理單元40P0到40Pn、OS服務(wù)單元50P0到50Pn、控制處理中繼單元60和代理單元70使單處理器的OS30和應(yīng)用程序能夠在沒有多處理器系統(tǒng)上的開銷的情況下操作,而無需修改單處理器的OS30和在處理器P0上運(yùn)行的應(yīng)用程序,同時(shí)收到由多處理器進(jìn)行并行處理的好處。
接下來,將參考圖12和隨后的附圖來描述根據(jù)本發(fā)明第二實(shí)施例的并行處理系統(tǒng)。圖12是示出了根據(jù)第二實(shí)施例的并行處理系統(tǒng)的結(jié)構(gòu)的方框圖,其中,與圖1相同的組件由相同的參考符號(hào)表示。圖12所示的第二實(shí)施例中示出了其中第一實(shí)施例中的并行處理單元40P0到40Pn分別由并行處理通信單元400P0到400Pn和控制代理單元500P0到500Pn形成的情況。
如圖12所示,根據(jù)本實(shí)例的并行處理系統(tǒng)與第一實(shí)施例的相同在于將由通過系統(tǒng)總線91連接的多個(gè)處理器(CPU)P0到Pn(n是不小于1的整數(shù))形成的多處理器邏輯劃分為兩個(gè)組,即,第一處理器側(cè)100和第二處理器側(cè)200。
在第二實(shí)施例中,實(shí)現(xiàn)了在第一處理器側(cè)100的處理器P0上和在第二處理器側(cè)200的各個(gè)處理器(CPU)P0到Pn上運(yùn)行的單處理器的OS300P0到300Pn。
此外,用于并行處理的并行處理通信單元400P0到400Pn和控制代理單元500P0到500Pn分別安裝在第一處理器側(cè)100的處理器P0上和第二處理器側(cè)200的處理器P1到Pn上。作為在各個(gè)處理器P0到Pn間共享的主存儲(chǔ)設(shè)備92和諸如盤設(shè)備的外部存儲(chǔ)設(shè)備93等與系統(tǒng)總線91相連。
同時(shí),唯一地設(shè)置控制處理中繼單元600,用于傳送和接收第一處理器側(cè)100和第二處理器側(cè)200之間的控制信號(hào)和數(shù)據(jù)。
由于關(guān)于通過其在第一處理器側(cè)100上的單處理器的OS 300P0與第二處理器側(cè)200上執(zhí)行的進(jìn)程進(jìn)行通信的第一實(shí)施例所示的代理單元70,該單元在本實(shí)施例執(zhí)行與第一實(shí)施例中完全相同的功能,這里為了簡便,將不再對其進(jìn)行任何描述。
雖然在第一實(shí)施例中,已經(jīng)描述了響應(yīng)來自第二處理器側(cè)20的處理器P1到Pn上的任務(wù)的文件訪問命令來進(jìn)行任務(wù)切換,然而,同時(shí),在本實(shí)施例中,也能夠進(jìn)行來自第二處理器側(cè)200的文件訪問,并且由第二處理器側(cè)200上的單處理器的OS 300P1到300Pn來進(jìn)行第二處理器側(cè)200上的進(jìn)程PP-1到PPn的切換。
對于安裝在各個(gè)處理器P0到Pn上的單處理器的OS 300P0到300Pn,這些單處理器的OS與第一實(shí)施例的不同在于不僅可以使用諸如實(shí)時(shí)OS之類實(shí)現(xiàn)了存儲(chǔ)器保護(hù)功能的無虛擬存儲(chǔ)器機(jī)制的OS,而且可以使用作為現(xiàn)有OS的諸如Linux和Windows(R)之類具有虛擬存儲(chǔ)機(jī)制的OS,并且可以在所有和部分處理器P0到Pn上實(shí)現(xiàn)存儲(chǔ)器保護(hù)機(jī)制。
此外,單處理器的OS 300P0到300Pn不必是相同種類的OS,而可以是彼此不同種類的OS。
在本實(shí)施例中,作為進(jìn)行并行處理的工作單元的任務(wù)是在處理器之間受到存儲(chǔ)器保護(hù)的,并且在這種意義上,稱之為與第一實(shí)施例中的任務(wù)區(qū)別的進(jìn)程。
在根據(jù)本實(shí)施例的并行處理系統(tǒng)中,在運(yùn)行于第一處理器側(cè)100的單處理器的OS 300P0上的應(yīng)用程序的工作單元中,不能夠并行化的那些進(jìn)程(順序進(jìn)程SP)由第一處理器側(cè)100上的處理器P0來處理,而將能夠在應(yīng)用程序內(nèi)并行化的那些任務(wù)創(chuàng)建為第二處理器側(cè)200上的新的進(jìn)程PP-1到PP-n,并且進(jìn)行并行處理。
并行處理通信單元400P0和并行處理通信單元400P1到400Pn具有傳送和接收與進(jìn)程創(chuàng)建、激活、停止、終止和刪除有關(guān)的信息、與進(jìn)程和單處理器的OS 300P0到300Pn之間的處理有關(guān)的其他控制的功能。
這里,將與任務(wù)的創(chuàng)建、激活、停止、終止、刪除等有關(guān)的控制信息和數(shù)據(jù)通過控制處理中繼單元600,在第一處理器側(cè)100和第二處理器側(cè)200之間傳送和接收。
此外,控制代理單元500P0和控制代理單元500P1到500Pn具有從單處理器的OS 300P0~OS 300Pn中獲得對進(jìn)程的處理命令,并且激活該進(jìn)程。
控制處理中繼單元600是用于傳送和接收第一處理器側(cè)10和第二處理器側(cè)20之間的控制信號(hào)和數(shù)據(jù)的單元,并且用于控制由多個(gè)處理器并行處理的多個(gè)進(jìn)程。
下面,將參考附圖詳細(xì)描述根據(jù)第二實(shí)施例構(gòu)造的并行處理系統(tǒng)的操作。
這里假定應(yīng)用程序運(yùn)行于第一處理器側(cè)100的單處理器的OS300P0上,并且在應(yīng)用程序的工作單元中,將要由第一處理器側(cè)100上的處理器P0處理的工作單元定義為順序進(jìn)程SP,而將作為可以在應(yīng)用程序內(nèi)并行化的進(jìn)程和由第二處理器側(cè)200作為任務(wù)PP-1到PP-n并行處理的工作單元定義為并行化進(jìn)程PP。
在第二實(shí)施例中,在激活特定進(jìn)程(任務(wù))之后,其中在調(diào)用側(cè)作為進(jìn)程(任務(wù))的并行化進(jìn)程PP等待已激活進(jìn)程PP-1~PP-n的終止的并行處理的同步激活、以及其中在調(diào)用側(cè)作為進(jìn)程(任務(wù))的并行化進(jìn)程PP不必等待已激活進(jìn)程PP-1~PP-n的終止的并行處理的異步激活都是可行的。
首先,將參考圖13來描述進(jìn)程的并行處理的同步激活的操作。
這里假定在第二處理器側(cè)200的處理器Pk(1≤k≤n)中,事先將第一處理器側(cè)100上的并行化進(jìn)程PP創(chuàng)建為作為要在第二處理器側(cè)200上激活的工作單元的進(jìn)程PP-k。
(1)在第二處理器側(cè)200的處理器Pk(1≤k≤n)上的進(jìn)程PP-k在并行處理通信單元400Pk中登記與屬于其自身的進(jìn)程的處理有關(guān)的信息。結(jié)果,進(jìn)程PP-k進(jìn)入待機(jī)狀態(tài)。
(2)并行處理通信單元400Pk通過單處理器的OS 300Pk,請求訪問在主存儲(chǔ)設(shè)備92(共享存儲(chǔ)器)上的所需數(shù)據(jù)。
(3)結(jié)果,將與屬于進(jìn)程PP-k的處理有關(guān)的信息存儲(chǔ)在主存儲(chǔ)設(shè)備92上(共享存儲(chǔ)器)。
(4)處理器P0上的進(jìn)程PP從并行處理通信單元400P0中請求同步處理。因此,進(jìn)程PP進(jìn)入待機(jī)狀態(tài)。
(5)已經(jīng)接收到請求的并行處理通信單元400P0通過單處理器的OS 300P0,請求訪問主存儲(chǔ)設(shè)備92(共享存儲(chǔ)器)上的數(shù)據(jù)。
(6)由單處理器的OS 300P0對主存儲(chǔ)器設(shè)備92(共享存儲(chǔ)器)進(jìn)行訪問。
(7)并行處理通信單元400P0從主存儲(chǔ)設(shè)備92(共享存儲(chǔ)器)中獲得與屬于進(jìn)程PP-k的處理有關(guān)的信息。因此,獲得了處理器號(hào)和用于執(zhí)行處理PP-k的進(jìn)程號(hào)。
(8)并行處理通信單元400P0根據(jù)通過單處理器的OS 300P0從主存儲(chǔ)設(shè)備92(共享存儲(chǔ)器)中獲得的信息來進(jìn)行通信請求。
(9)單處理器的OS 300P0設(shè)置在控制處理中繼單元600的通信所需的信息。
(10)結(jié)果,將處理命令從控制處理中繼單元600發(fā)送到處理器Pk的單處理器的OS 300Pk。
(11)處理器Pk的控制代理單元500Pk獲得通過單處理器的OS300Pk發(fā)送的處理命令。
(12)然后,控制代理單元500Pk根據(jù)所獲得的處理命令來激活進(jìn)程PP-k。
(13)結(jié)果,處于待機(jī)狀態(tài)的進(jìn)程PP-k執(zhí)行所述處理。
(14)在完成處理之后,進(jìn)程PP-k向并行處理通信單元400Pk通知取得該效果的信息。
(15)已經(jīng)接收到通知的并行處理通信單元400Pk根據(jù)通過單處理器的OS 300Pk通知的信息來進(jìn)行通信請求。
(16)單處理器的OS 300Pk在控制處理中繼單元600處,設(shè)置通信所需的信息。
(17)結(jié)果,將處理命令從控制處理中繼單元600發(fā)送到處理器P0中的單處理器的OS 300P0。
(18)處理器P0的控制代理單元500P0獲得通過單處理器的OS300P0發(fā)送的處理命令。
(19)然后,控制代理單元500P0根據(jù)所獲得的處理命令來激活進(jìn)程PP。
因此,在第一處理器側(cè)100的處理器P0上的進(jìn)程PP和第二處理器側(cè)200的處理器PP-k之間,實(shí)現(xiàn)了同步處理。
接下來,將參考圖14來描述對進(jìn)程的并行處理的異步激活的操作。
這里還假定在第二處理器側(cè)200上的處理器Pk(1≤k≤n)中,事先將第一處理器側(cè)100上的并行化進(jìn)程PP創(chuàng)建為作為要在第二處理器側(cè)200上激活的工作單元的進(jìn)程PP-k。
(1)正在第二處理器側(cè)200的處理器Pk((1≤k≤n)上執(zhí)行處理的進(jìn)程PP-k在并行處理通信單元400Pk中,登記與屬于其自身的進(jìn)程的處理有關(guān)的信息。結(jié)果,進(jìn)程PP-k輸入待機(jī)狀態(tài)。
(2)并行處理通信單元400Pk通過單處理器的OS 300Pk,請求訪問主存儲(chǔ)設(shè)備92(共享存儲(chǔ)器)上所需的數(shù)據(jù)。
(3)結(jié)果,將與屬于進(jìn)程PP-k的處理有關(guān)的信息存儲(chǔ)在主存儲(chǔ)設(shè)備92(共享存儲(chǔ)器)中。
(4)在處理器P0上的進(jìn)程PP從并行處理通信單元400P0中請求異步處理。在這種情況下,之后,進(jìn)程PP繼續(xù)處理,而不進(jìn)入待機(jī)狀態(tài)。
(5)已經(jīng)接收到該請求的并行處理通信單元400P0通過單處理器的0S 300P0,請求在主存儲(chǔ)設(shè)備92(共享存儲(chǔ)器)上的數(shù)據(jù)。
(6)由單處理器的0S 300P0對主存儲(chǔ)設(shè)備92(共享存儲(chǔ)器)進(jìn)行訪問。
(7)并行處理通信單元400P0從主存儲(chǔ)設(shè)備92(共享存儲(chǔ)器)中獲得與屬于進(jìn)程PP-k的處理有關(guān)的信息。因此,獲得了處理器號(hào)和用于執(zhí)行進(jìn)程PP-k的進(jìn)程號(hào)。
(8)并行處理通信單元400P0根據(jù)通過單處理器的OS 300P0從主存儲(chǔ)設(shè)備92(共享存儲(chǔ)器)中獲得的信息來進(jìn)行通信請求。
(9)單處理器的OS 300P0在控制處理中繼單元600處,設(shè)置通信所需的信息。
(10)因此,將處理命令從控制處理中繼單元600發(fā)送到處理器Pk的單處理器的OS 300Pk。
(11)處理器Pk的控制代理單元500Pk獲得通過單處理器的OS300Pk發(fā)送的處理命令。
(12)然后,控制代理單元500Pk根據(jù)所獲得的處理命令來激活進(jìn)程PP-k。
(13)因此,處于待機(jī)狀態(tài)的進(jìn)程PP-k執(zhí)行所述處理。
按照上述方式,在第一處理器側(cè)100的處理器P0上的進(jìn)程PP和第二處理器側(cè)200的進(jìn)程PP-k之間,實(shí)現(xiàn)了異步處理。
下面將參考圖15和16來描述在根據(jù)第二實(shí)施例的并行處理系統(tǒng)中,由控制處理中繼單元600所進(jìn)行的處理操作。
首先,在圖15中示出了控制處理中繼單元600的結(jié)構(gòu)。如圖所示,對控制處理中繼單元600進(jìn)行構(gòu)造,以使其包括與各個(gè)處理器P0到Pn相對應(yīng)的中斷控制設(shè)備601P0到601Pn、以及與各個(gè)處理器P0到Pn相對應(yīng)的通信區(qū)域602P0到602Pn。這里,在主存儲(chǔ)設(shè)備92中確保了通信區(qū)域602P0到602Pn。
中斷控制設(shè)備601P0到601Pn的每一個(gè)具有與圖6所示的根據(jù)第一實(shí)施例的控制處理中繼單元60中的結(jié)構(gòu)相同的結(jié)構(gòu),并且由中斷指示單元601a、中斷狀態(tài)保存單元601b和中斷取消單元601c組成。
同時(shí),通信區(qū)域602P0到602Pn的每一個(gè)基本上具有與圖6所示的第一實(shí)施例中的結(jié)構(gòu)相同的結(jié)構(gòu),并且由作為圖6所示的通信理由保存區(qū)域62a和通信數(shù)據(jù)保存區(qū)域62b的組合的通信隊(duì)列602a和互斥控制區(qū)域602c形成。
作為實(shí)例,將參考圖16來描述從第一處理器側(cè)100上的并行處理通信單元400P0到第二處理器側(cè)200上的處理器Pn的通信處理操作。
(1)并行處理通信單元400P0鎖定針對處理器Pn的通信區(qū)域602Pn的互斥控制區(qū)域602b。更具體地,使在互斥控制區(qū)域602b中的鎖定變量變?yōu)殒i定狀態(tài)以防止當(dāng)前針對處理器Pn的通信區(qū)域602Pn被其他處理器使用。
(2)并行處理通信單元400P0將通信理由信息和通信數(shù)據(jù)(包括請求內(nèi)容的所需數(shù)據(jù))存儲(chǔ)在通信區(qū)域602Pn的通信隊(duì)列602a。
作為要存儲(chǔ)的通信理由信息,在如上所述的針對進(jìn)程創(chuàng)建/激活的通信處理的情況下,存儲(chǔ)表示“進(jìn)程激活”的信息(例如,諸如與并行處理相對應(yīng)的預(yù)定數(shù)值的數(shù)據(jù))。
(3)在(1)的時(shí)刻,如果通信區(qū)域602Pn的通信隊(duì)列602a是空的,并行處理通信單元400P0指示其自身的中斷控制設(shè)備601P0的中斷指示單元601a中斷處理器Pn。
(4)處理器P0的并行處理通信單元400P0使針對處理器Pn的通信區(qū)域602Pn的互斥控制區(qū)域602b進(jìn)入未鎖定狀態(tài)。如果在(1)的時(shí)刻,通信區(qū)域602Pn的通信隊(duì)列602a不是空的,則由于不需要中斷,處理在該時(shí)刻終止。
(5)中斷控制設(shè)備601P0的中斷指示單元601a在與處理器Pn相對應(yīng)的中斷控制設(shè)備601Pn的中斷狀態(tài)保持單元601b處設(shè)置表示中斷的信息。結(jié)果,處理器Pn進(jìn)入中斷狀態(tài)。
(6)處理器Pn的單處理器的OS 300Pn根據(jù)針對處理器Pn的中斷控制設(shè)備601Pn的中斷狀態(tài)保持單元601b的條件來接受中斷。
(7)處理器Pn中的單處理器的OS 300Pn通過利用中斷控制設(shè)備601Pn中的中斷取消單元601c清除其自身中斷狀態(tài)保持單元601b中的中斷信息,釋放其中斷狀態(tài)。
(8)處理器Pn中的單處理器的OS 300Pn激活其自身控制代理單元500Pn。
(9)處理器Pn的控制代理單元500Pn在其自身通信區(qū)域602Pn的互斥控制區(qū)域602b處設(shè)置鎖定。
(10)處理器Pn的控制代理單元500Pn還從其自身通信區(qū)域602Pn的通信隊(duì)列602a中刪除通信理由信息和通信數(shù)據(jù)。
(11)處理器Pn的控制代理單元500Pn對處理器Pn的通信區(qū)域602Pn的互斥控制區(qū)域602b進(jìn)行解鎖。這使處理器Pn的通信區(qū)域602Pn不能夠由其他處理器使用。
因此,通過使用控制處理中繼單元600,實(shí)現(xiàn)了第一處理器100和第二處理器200之間的控制信號(hào)和數(shù)據(jù)的傳送和接收。
接下來,下面將參考圖17來描述根據(jù)本發(fā)明第三實(shí)施例的并行處理系統(tǒng)。圖17是示出了根據(jù)第三實(shí)施例的并行處理系統(tǒng)的結(jié)構(gòu)的方框圖,在圖中,與圖13所示相同的組件由相同的參考符號(hào)表示。
在第二實(shí)施例的上述同步處理中,需要重復(fù)檢查在進(jìn)程之間,一個(gè)進(jìn)程是否使其在主存儲(chǔ)設(shè)備92上的數(shù)據(jù)被其他進(jìn)程更新,造成了涉及與重復(fù)同樣多的額外處理,同時(shí),本實(shí)施例能夠?qū)崿F(xiàn)進(jìn)程之間的高性能同步和數(shù)據(jù)傳送和接收,其中不需要任何這樣的額外處理。
如圖17所示,與第二實(shí)施例相似,根據(jù)本實(shí)施例的并行處理系統(tǒng)包括通過系統(tǒng)總線91連接的多個(gè)處理器(CPU)P0到Pn(n是不小于1的整數(shù))構(gòu)成的多處理器,將所述多個(gè)處理器邏輯上劃分為第一處理器側(cè)100和第二處理器側(cè)200,其中,安裝了運(yùn)行在第一處理器側(cè)100的處理器P0上和第二處理器側(cè)200的處理器(CPU)P1到Pn上的單處理器的OS 300P0到300Pn。
第三實(shí)施例的特征在于除了用于在第一處理器側(cè)100上的處理器P0和第二處理器側(cè)200上的處理器P1到Pn上進(jìn)行并行處理的并行處理通信單元400P0~400Pn,以及控制代理單元500P0和500Pn之外,還包括用于實(shí)現(xiàn)在第一處理器側(cè)100的處理器P0和第二處理器側(cè)200的處理器P1到Pn上執(zhí)行各個(gè)進(jìn)程之間的通信的進(jìn)程間通信單元1000P0到1000Pn。
換句話說,本實(shí)施例使傳統(tǒng)上安裝在多處理器的OS上的進(jìn)程間通信功能能夠在運(yùn)行單處理器的OS和多處理器的應(yīng)用程序的、單處理器的OS所進(jìn)行的并行處理系統(tǒng)上實(shí)現(xiàn),從而能夠在用戶級(jí)提供進(jìn)程間通信功能。
此外,由于在本實(shí)施例中,第一處理器側(cè)100上的單處理器的OS300P0與要在如第一實(shí)施例所示的第二處理器側(cè)200上執(zhí)行的進(jìn)程進(jìn)行通信所使用的代理單元70完全執(zhí)行與第一實(shí)施例相同的功能,為了簡便,不再對其進(jìn)行描述。
由于除了上述進(jìn)程間通信單元1000P0到1000Pn之外的其他組件的結(jié)構(gòu)和操作與第二實(shí)施例的上述結(jié)構(gòu)和操作完全相同,因此將只對進(jìn)程間通信單元1000P0到1000Pn進(jìn)行描述。
進(jìn)程間通信單元1000P0到1000Pn利用諸如信號(hào)量(semaphore)或消息隊(duì)列之類的系統(tǒng),實(shí)現(xiàn)在處理器P1到Pn上執(zhí)行的進(jìn)程之間的通信。
這里,將針對進(jìn)程間單元1000P0到1000Pn利用信號(hào)量系統(tǒng)進(jìn)行進(jìn)程間通信的情況來進(jìn)行描述。
如圖18所示,將對以下情況進(jìn)行描述當(dāng)進(jìn)程PP-m和進(jìn)程PP-n分別在第二處理器側(cè)200的處理器Pm和處理器Pn上執(zhí)行時(shí),進(jìn)程PP-m和進(jìn)程PP-n通過進(jìn)程間通信單元1000Pm和1000Pm利用信號(hào)量系統(tǒng)進(jìn)行通信。
信號(hào)量(semaphore)是一種用于多個(gè)進(jìn)程在同時(shí)執(zhí)行多個(gè)進(jìn)程的多任務(wù)OS上相互通信和同步的系統(tǒng),并且是一種共享標(biāo)記(計(jì)數(shù)器),相互同步的進(jìn)程注意著該計(jì)數(shù)器,以根據(jù)計(jì)數(shù)器的改變進(jìn)行處理,從而實(shí)現(xiàn)通信(同步)。
首先,參考圖18,將描述增加或減小主存儲(chǔ)設(shè)備92的信號(hào)量信息區(qū)域(共享標(biāo)記)的處理器Pm上的進(jìn)程PP-m的操作。這里假定信號(hào)量增加(semaphore-up)是遞增信號(hào)量信息區(qū)域的計(jì)數(shù)器值,而信號(hào)量減小(semaphore-down)是遞減信號(hào)量信息的計(jì)數(shù)器值。當(dāng)不允許信號(hào)量增加時(shí),當(dāng)前的進(jìn)程休眠以進(jìn)入等待狀態(tài),并且由信號(hào)量減小來喚醒。
(1)當(dāng)處理器Pm上的進(jìn)程PP-m增加或減小信號(hào)量(信號(hào)量計(jì)數(shù)器)時(shí),該進(jìn)程PP-m請求作用于進(jìn)程間通信單元1000Pm。
(2)已經(jīng)接收到請求的進(jìn)程間通信單元1000Pm訪問信號(hào)量信息區(qū)域#N(確保了與由系統(tǒng)預(yù)定的數(shù)量同樣多的信號(hào)量信息區(qū)域),作為可由主存儲(chǔ)設(shè)備92中所確保的信號(hào)量數(shù)可區(qū)分的共享標(biāo)記,以確定是否可以增加或減小所述信號(hào)量。
接下來,參考圖19,將描述處理器Pm上的進(jìn)程PP-m增加信號(hào)量(信號(hào)量標(biāo)記)的情況。
(1)處理器Pm上的進(jìn)程PP-m請求進(jìn)程間通信單元1000Pm減小信號(hào)量(信號(hào)量標(biāo)記)。
(2)已經(jīng)接收到請求的進(jìn)程間通信單元1000Pm訪問在主存儲(chǔ)設(shè)備92中所確保的信號(hào)量信息區(qū)域#N。這里,在信號(hào)量信息區(qū)域#N處設(shè)置了初始值“0”作為信號(hào)量的計(jì)數(shù)器值,并且事先固定,即使嘗試也不能減小。因此,確定不能夠減小該信號(hào)量。
(3)進(jìn)程間通信單元1000Pm利用系統(tǒng)調(diào)用,請求單處理器的OS300Pm使進(jìn)程PP-m休眠。
(4)單處理器的OS 300Pm利用系統(tǒng)調(diào)用,使進(jìn)程PP-m休眠,以從運(yùn)行隊(duì)列(run queue)中取出該進(jìn)程。
換句話說,在上述情況下,不允許減小信號(hào)量,進(jìn)程PP-m休眠。
此外,參考圖20,將描述當(dāng)在如上所述進(jìn)程PP-m休眠的情況下,相同處理器Pm上的進(jìn)程PP-m1增加信號(hào)量時(shí)所執(zhí)行的操作。
(1)進(jìn)程PP-m1請求進(jìn)程間通信單元1000Pm增加信號(hào)量。
(2)進(jìn)程間通信單元1000Pm訪問在主存儲(chǔ)設(shè)備92中確保的信號(hào)量信息區(qū)域#N,以確定存在等待信號(hào)量的進(jìn)程PP-m。
(3)進(jìn)程間通信單元1000Pm還向控制處理中繼單元600傳送消息(控制消息),以請求喚醒進(jìn)程PP-m。
(4)控制代理單元500Pm從控制處理中繼單元600接收消息。根據(jù)參考圖15和16所述的操作,由控制處理中繼單元600進(jìn)行消息中繼。
(5)控制代理單元500Pm從消息中確定進(jìn)行了喚醒等待信號(hào)量的進(jìn)程的請求,以便利用系統(tǒng)調(diào)用,向單處理器的OS 300Pm提供用于喚醒處于等待狀態(tài)的進(jìn)程PP-m的請求。
(6)單處理器的OS 300Pm利用系統(tǒng)調(diào)用來喚醒所請求的進(jìn)程PP-m,以將其連接到運(yùn)行隊(duì)列。在這種情況下,喚醒的進(jìn)程PP-m再次嘗試減小信號(hào)量。
利用單處理器的OS 300Pm的通信功能而不使用上述處理(3)和(4)所述的通過控制處理器中繼單元600進(jìn)行的控制消息中繼來從進(jìn)程間通信單元1000Pm到控制代理單元500Pm直接請求進(jìn)程PP-m的喚醒造成了處理(3)和(4)的取消,從而能夠高速處理。
參考圖21,將描述在當(dāng)處理器Pm的進(jìn)程PP-m如上所述休眠時(shí)其他處理器Pn上的進(jìn)程PP-n增加信號(hào)量的情況下所進(jìn)行的操作。
(1)處理器Pn上的進(jìn)程PP-n從其自身的處理器Pn的進(jìn)程間通信單元1000Pn請求信號(hào)量增加。
(2)進(jìn)程間通信單元1000Pn訪問在主存儲(chǔ)設(shè)備92中所確保的信號(hào)量信息區(qū)域#N,以確定存在等待信號(hào)量的進(jìn)程PP-m。
(3)進(jìn)程間通信單元1000Pn還向控制處理中繼單元600傳送消息(控制消息),以請求喚醒進(jìn)程PP-m。
(4)隨后,處理器Pm的控制代理單元500Pm從控制處理中繼單元600接收消息。根據(jù)參考圖15和16所述的操作來由控制處理中繼單元600進(jìn)行消息中繼。
(5)控制代理單元500Pm從該消息中確定進(jìn)行了喚醒等待信號(hào)量的進(jìn)程的請求,以利用系統(tǒng)調(diào)用,向單處理器的OS 300Pm提供用于喚醒處于等待狀態(tài)的進(jìn)程PP-m的請求。
(6)處理器的OS 300Pm利用系統(tǒng)調(diào)用喚醒所請求的進(jìn)程PP-m,以將其連接到運(yùn)行隊(duì)列。在這種情況下,所喚醒的進(jìn)程PP-m再次嘗試減小信號(hào)量。
接下來,如圖22所示,將描述以下情況,所述情況為當(dāng)進(jìn)程PP-m和進(jìn)程PP-n在第二處理器側(cè)200的處理器Pm和處理器Pn上執(zhí)行時(shí),進(jìn)程PP-m和進(jìn)程PP-n通過進(jìn)程間通信單元1000Pm和1000Pn利用消息隊(duì)列系統(tǒng)相互通信。
作為多個(gè)進(jìn)程之間的通信方法的消息隊(duì)列系統(tǒng),是一個(gè)創(chuàng)建以其名稱字面所表示的“隊(duì)列”并將消息(在進(jìn)程間傳送和接收的處理數(shù)據(jù))作為信息存儲(chǔ)在隊(duì)列中的系統(tǒng)。在消息隊(duì)列系統(tǒng)中,允許接收器側(cè)按照任意順序接收消息。當(dāng)進(jìn)程中的任一個(gè)接收到消息時(shí),該消息從隊(duì)列中消失。
參考圖22,將描述處理器Pm上的進(jìn)程PP-m利用消息隊(duì)列系統(tǒng)接收消息的情況。在這種情況下,要獲得的消息存在于可由主存儲(chǔ)設(shè)備92中確保的隊(duì)列信號(hào)區(qū)分的隊(duì)列消息區(qū)域#N(確保了與預(yù)定數(shù)量同樣多的隊(duì)列信息區(qū)域)。
(1)為了接收消息,在處理器Pm上的進(jìn)程PP-m從進(jìn)程間通信單元1000Pm中請求接收。
(2)已經(jīng)接收到請求的進(jìn)程間通信單元1000Pm訪問在主存儲(chǔ)設(shè)備92中所確保的隊(duì)列信息區(qū)域#N以接收消息。
(3)然后,進(jìn)程間通信單元1000Pm將接收到的消息拷貝到請求源進(jìn)程PP-m上。此時(shí),將當(dāng)前的消息從主存儲(chǔ)設(shè)備92中所確保的隊(duì)列信息區(qū)域#N中刪除。
接下來,參考圖23,將描述當(dāng)在處理器Pm上的進(jìn)程PP-m通過消息隊(duì)列系統(tǒng)接收消息時(shí)所執(zhí)行的第二操作。在這種情況下,要獲取的消息未能存在于主存儲(chǔ)設(shè)備92所確保的隊(duì)列信息區(qū)域#N中。
(1)為了接收消息,在處理器Pm上的進(jìn)程PP-m請求作用于進(jìn)程間通信單元1000Pm。
(2)已經(jīng)接收到該請求的進(jìn)程間通信單元1000Pm訪問在主存儲(chǔ)設(shè)備92中所確保的隊(duì)列信息區(qū)域#N。在這種情況下,確定要獲得的消息未能存在于所確保的隊(duì)列信息區(qū)域#N,而不能接收消息。
(3)進(jìn)程間通信單元1000Pm利用系統(tǒng)調(diào)用,請求單處理器的OS300Pm使進(jìn)程PP-m休眠。
(4)單處理器的OS 300Pm利用系統(tǒng)調(diào)用來使進(jìn)程PP-m休眠以從運(yùn)行隊(duì)列中斷開所述進(jìn)程。
換句話說,不允許進(jìn)程PP-m接收消息,從而在上述情況下,該進(jìn)程休眠。
參考圖24,將描述當(dāng)處理器Pm上的進(jìn)程PP-m通過消息隊(duì)列系統(tǒng)傳送消息時(shí)所執(zhí)行的操作。在這種情況下,不存在正在等待要傳送的消息的任何進(jìn)程,并且只進(jìn)行向主存儲(chǔ)設(shè)備92中所確保的隊(duì)列信息區(qū)域#N的消息傳送。
(1)為了傳送消息,在處理器Pm的進(jìn)程PP-m請求作用于進(jìn)程間通信單元1000Pm。
(2)已經(jīng)接收到該請求的進(jìn)程間通信單元1000Pm訪問在主存儲(chǔ)設(shè)備92中所確保的隊(duì)列信息區(qū)域#n,以存儲(chǔ)來自進(jìn)程PP-m的消息。
還將描述如圖25所示,當(dāng)處理器Pm上的進(jìn)程通過消息隊(duì)列系統(tǒng)傳送消息時(shí)所執(zhí)行的操作。在這種情況下,存在等待要傳送的消息的進(jìn)程。換句話說,這是如圖23的實(shí)例所示,當(dāng)進(jìn)程PP-m不能夠接收消息并休眠時(shí)從進(jìn)程PP-m1發(fā)送消息的情況。
(1)進(jìn)程PP-m1從進(jìn)程間通信單元1000Pm請求消息傳送。
(2)進(jìn)程間通信單元1000Pm訪問在主存儲(chǔ)設(shè)備92中所確保的隊(duì)列信息區(qū)域#N,以存儲(chǔ)來自進(jìn)程PP-m1的消息。這里,確定存在等待消息的進(jìn)程PP-m。
(3)進(jìn)程間通信單元1000Pm還向控制處理中繼單元600傳送控制消息,以請求喚醒進(jìn)程PP-m。
(4)控制代理單元500Pm從控制處理中繼單元600接收控制消息。
(5)控制代理單元500Pm從控制消息中確定命令用于喚醒等待消息的進(jìn)程,并且利用系統(tǒng)調(diào)用,請求單處理器的OS 300Pm喚醒處于等待狀態(tài)的上述進(jìn)程PP-m。
(6)單處理器的OS 300Pm利用系統(tǒng)調(diào)用喚醒所請求的進(jìn)程PP-m,以將進(jìn)程連接到運(yùn)行隊(duì)列。
在這種情況下,所喚醒的進(jìn)程PP-m再次嘗試接收消息。結(jié)果,來自進(jìn)程PP-m1的消息由進(jìn)程PP-m接收。
利用單處理器的OS 300Pm的通信功能而不利用如上述處理(3)和(4)所示的通過控制處理中繼單元600所進(jìn)行的控制消息中繼來從進(jìn)程間通信單元1000Pm向控制代理單元500Pm直接請求進(jìn)程PP-m的喚醒造成了處理(3)和(4)的取消,從而能夠?qū)崿F(xiàn)高速處理。
參考圖26,將描述在當(dāng)處理器Pm上的進(jìn)程PP-m休眠以等待消息時(shí),在其他處理器Pn上的進(jìn)程PP-n如圖23所示傳送消息的情況下所進(jìn)行的操作。
(1)處理器Pn上的進(jìn)程PP-n請求其自身處理器Pn的進(jìn)程間通信單元1000Pn傳送消息。
(2)進(jìn)程間通信單元1000Pn訪問在主存儲(chǔ)設(shè)備92中所確保的隊(duì)列信息區(qū)域#N,以存儲(chǔ)來自進(jìn)程PP-n的消息。這里確定了存在等待消息的進(jìn)程PP-m。
(3)進(jìn)程間通信單元1000Pn控制處理中繼單元600傳送控制消息,以請求喚醒進(jìn)程PP-m。
(4)隨后,處理器Pm的控制代理單元500Pm從控制處理中繼單元600接收控制消息。
(5)控制代理單元500Pm從控制消息中確定命令用于喚醒等待消息的進(jìn)程,并且利用系統(tǒng)調(diào)用,向單處理器的OS 300Pm提供用于喚醒處于等待狀態(tài)的上述進(jìn)程PP-m的請求。
(6)單處理器的OS 300Pm利用系統(tǒng)調(diào)用喚醒所請求的進(jìn)程PP-m,以將進(jìn)程連接到運(yùn)行隊(duì)列。
在這種情況下,所喚醒的進(jìn)程PP-m再次嘗試接收消息。結(jié)果,來自進(jìn)程PP-n的消息由進(jìn)程PP-m接收,以執(zhí)行在不同處理器間的進(jìn)程間通信。
根據(jù)本實(shí)施例,按照前述的方式,利用信號(hào)量系統(tǒng)或消息隊(duì)列系統(tǒng),通過進(jìn)程間通信單元1000P0到Pn在相同處理器內(nèi)或不同處理器間的進(jìn)程(同步或消息傳送和接收)之間的通信,能夠?qū)崿F(xiàn)諸如進(jìn)程切換和數(shù)據(jù)傳送和接收之類的進(jìn)程控制。
雖然在相同處理器中的進(jìn)程之間有限制地進(jìn)行利用單處理器的OS的進(jìn)程間通信,并且不同處理器間的進(jìn)程間通信應(yīng)該利用具有較重處理負(fù)載等的網(wǎng)絡(luò)來進(jìn)行,但是,由其處理速度快于網(wǎng)絡(luò)通信速度的控制處理中繼單元600和進(jìn)程間通信單元1000P0到Pn使用信號(hào)量系統(tǒng)和消息隊(duì)列系統(tǒng)實(shí)現(xiàn)了在安裝有單處理器的OS的多處理器系統(tǒng)中也具有高處理速度的進(jìn)程間通信。
對于相同處理器內(nèi)的進(jìn)程間通信,通過單處理器的OS,可以獲得幾乎等價(jià)于從進(jìn)程的休眠到喚醒所需要的處理性能的性能。
另外的優(yōu)點(diǎn)在于與多處理器的OS不同,即使安裝有隨每一個(gè)處理器而改變的單處理器的OS,處理器間的進(jìn)程間通信也是可行的。
接下來,將參考圖27來描述通過進(jìn)程間通信單元1000P0到1000P利用信號(hào)量系統(tǒng)和消息隊(duì)列系統(tǒng)的上述進(jìn)程間通信的具體實(shí)例。
在圖27中,進(jìn)程PP-0、進(jìn)程PP-j和進(jìn)程PP-k分別在處理器P0、處理器Pj口處理器Pk上執(zhí)行。這里,進(jìn)程PP-0作為瀏覽器進(jìn)行操作,進(jìn)程PP-j作為Java小應(yīng)用程序進(jìn)行操作,以及進(jìn)程PP-k作為MPEG4應(yīng)用程序進(jìn)行操作,并且如圖28所示,在嵌入在利用進(jìn)程PP-0的瀏覽器1100中的窗口內(nèi),相互同步地顯示利用進(jìn)程PP-j的Java小應(yīng)用程序內(nèi)容1200和利用進(jìn)程PP-k的MPEG4圖像內(nèi)容1300。
在該實(shí)例中,在第一處理器側(cè)100的單處理器的OS 300P0上運(yùn)行的應(yīng)用程序的工作單元中,進(jìn)程PP-0運(yùn)行在處理器P0上,進(jìn)程PP-j和進(jìn)程PP-k,即能夠在應(yīng)用程序內(nèi)并行化的進(jìn)程,在第二處理器側(cè)200上的處理器Pj和處理器Pk中并行處理。
在圖27中,當(dāng)激活了Java小應(yīng)用程序(進(jìn)程PP-j)和MPEG4應(yīng)用程序(進(jìn)程PP-k)時(shí),兩個(gè)應(yīng)用程序都等待從瀏覽器(進(jìn)程PP-0)中接收J(rèn)ava小應(yīng)用程序數(shù)據(jù)和MPEG4圖像數(shù)據(jù)(步驟S101和S201)。
這里,從處理器P0的進(jìn)程PP-0中,通過進(jìn)程間通信單元1000P0利用消息傳送,將Java小應(yīng)用程序數(shù)據(jù)和MPEG4圖像數(shù)據(jù)作為消息傳送,并且由Java小應(yīng)用程序(進(jìn)程PP-j)和MPEG4應(yīng)用程序(進(jìn)程PP-k)接收。
結(jié)果,啟動(dòng)了由Java小應(yīng)用程序(進(jìn)程PP-j)所進(jìn)行的操作(步驟S102),以開始由MPEG4應(yīng)用程序(進(jìn)程PP-k)所進(jìn)行的解碼處理(步驟S202)。
在該實(shí)例中,由于事先清楚由Java小應(yīng)用程序(進(jìn)程PP-j)所進(jìn)行的操作結(jié)束得比由MPEG4應(yīng)用程序(進(jìn)程PP-k)所進(jìn)行的解碼處理要早,因此,將信號(hào)量計(jì)數(shù)器的初始值設(shè)置為“0”,從而在完成操作之后,Java小應(yīng)用程序(進(jìn)程PP-j)等待由MPEG4應(yīng)用程序(進(jìn)程PP-k)所進(jìn)行的處理的完成,從而防止已經(jīng)較早完成操作的Java小應(yīng)用程序(進(jìn)程PP-j)減小信號(hào)量。此外,定義MPEG4應(yīng)用程序(進(jìn)程PP-k),以便在完成處理之后增加信號(hào)量。
雖然Java小應(yīng)用程序(進(jìn)程PP-j)嘗試增加信號(hào)量(步驟S103),但是由于計(jì)數(shù)器的初始值為“0”,因此其不能夠減小信號(hào)量,從而使其進(jìn)入休眠以等待信號(hào)量。
當(dāng)MPEG4應(yīng)用程序(進(jìn)程PP-k)結(jié)束處理(步驟S203)之后,該應(yīng)用程序請求信號(hào)量增加(步驟S204)。結(jié)果,等待信號(hào)量的Java小應(yīng)用程序(進(jìn)程PP-j)被喚醒并允許其減小信號(hào)量。
對每一個(gè)幀重復(fù)前述操作導(dǎo)致了將利用進(jìn)程PP-j的Java小應(yīng)用程序的內(nèi)容1200和利用進(jìn)程PP-k的MPEG4圖像內(nèi)容1300相互同步地顯示在嵌入于利用進(jìn)程PP-0的瀏覽器1100的窗口內(nèi)。
接下來,將參考圖29來描述根據(jù)本發(fā)明第四實(shí)施例的并行處理系統(tǒng)。圖29是示出了根據(jù)第四實(shí)施例的并行處理系統(tǒng)結(jié)構(gòu)的方框圖,其中,與圖13所示的組件相同的組件由相同的參考符號(hào)表示。
如圖29所示,根據(jù)第四實(shí)施例的并行處理系統(tǒng)包括通過系統(tǒng)總線91連接的多個(gè)處理器(CPU)P1~Pn(n是不小于2的整數(shù))構(gòu)成的多處理器,所述多個(gè)處理器安裝有運(yùn)行于各個(gè)處理器P1到Pn上的單處理器的OS 300P1到300Pn。
更具體地,本實(shí)施例與第一到第三實(shí)施例的不同在于不將多處理器邏輯上劃分為第一處理器側(cè)和第二處理器側(cè)兩組。
與上述第三實(shí)施例相似,第四實(shí)施例的特征在于除了用于進(jìn)行處理器P1到Pn的并行處理的并行處理通信單元400P1到400Pn,以及控制代理單元500P1到500Pn之外,還包括用于實(shí)現(xiàn)在處理器P1到Pn上執(zhí)行的各個(gè)進(jìn)程之間的通信的進(jìn)程間通信單元1000P1到1000Pn。
另一方面,可以進(jìn)行每一個(gè)處理器P1到Pn上的進(jìn)程控制,而沒有第一實(shí)施例中所設(shè)置的OS服務(wù)單元50P1到50Pn以及在第一到第三實(shí)施例中所設(shè)置的并行處理通信單元400P1到400Pn。在各個(gè)處理器P1到Pn上的單處理器的OS 300P1到300Pn不需要是相同的OS,而可以相互不同。
換句話說,本實(shí)施例還使傳統(tǒng)上安裝在多處理器的OS上的進(jìn)程間通信功能能夠在由運(yùn)行單處理器的OS和多處理器上的應(yīng)用程序的單處理器的OS所進(jìn)行的并行處理系統(tǒng)上實(shí)現(xiàn),從而能夠在用戶級(jí)提供進(jìn)程間通信功能。
進(jìn)行每一個(gè)處理器P1到Pn中的每一個(gè)進(jìn)程的執(zhí)行,而不需要與其他處理器的互斥控制。
如在第三實(shí)施例中所描述的,通過進(jìn)程間通信單元1000P1到1000Pn,利用信號(hào)量系統(tǒng)和消息排隊(duì)系統(tǒng),進(jìn)行各個(gè)處理器P1~Pn內(nèi)的進(jìn)程間通信和處理器之間的進(jìn)程間通信,以執(zhí)行進(jìn)程之間的同步處理和數(shù)據(jù)傳送和接收。
此外,通過具有并行處理單元、OS服務(wù)單元、控制處理中繼單元、代理單元和進(jìn)程間通信單元的各自功能的并行處理程序,可以實(shí)現(xiàn)根據(jù)各個(gè)實(shí)施例的上述并行處理系統(tǒng)。將并行處理程序存儲(chǔ)在磁盤、半導(dǎo)體存儲(chǔ)器或其他存儲(chǔ)介質(zhì)中,并且將其從存儲(chǔ)介質(zhì)中加載到計(jì)算機(jī)處理設(shè)備上,以控制計(jì)算機(jī)處理設(shè)備的操作,從而實(shí)現(xiàn)上述的各個(gè)功能。
雖然已經(jīng)針對前述的優(yōu)選實(shí)施例和操作實(shí)例描述了本發(fā)明,但是本發(fā)明并不局限于上述方面,并且可以在其技術(shù)思想的范圍內(nèi)的變體中實(shí)現(xiàn)。
根據(jù)本發(fā)明,如前面所述,通過操作單處理器的OS和多處理器上的現(xiàn)有應(yīng)用程序而不對其進(jìn)行修改,可以針對該應(yīng)用程序來實(shí)現(xiàn)由多處理器所進(jìn)行的并行處理。
而且,根據(jù)本發(fā)明,將并行處理單元、OS服務(wù)單元、控制處理中繼單元和代理單元作為模塊來實(shí)現(xiàn)使單處理器的OS和現(xiàn)有的應(yīng)用程序能夠無開銷地在多處理器系統(tǒng)結(jié)構(gòu)上操作,而無需修改在單處理器的OS上所執(zhí)行的應(yīng)用程序,還會(huì)收到由多處理器進(jìn)行并行處理的好處。
此外,無需在第二處理器側(cè)設(shè)置用于文件訪問的單獨(dú)的處理單元,通過利用單處理器的OS的服務(wù)而無需對其進(jìn)行修改,就允許在第二處理器側(cè)上的任務(wù)進(jìn)行文件訪問。此外,這使文件訪問的專有處理在第一處理器側(cè)上完成,從而可以實(shí)現(xiàn)并行處理,而不會(huì)如同操作多處理器的OS上的應(yīng)用程序的情況那樣,由于專用處理而產(chǎn)生開銷。
此外,通過在第一處理器側(cè)的處理器上和第二處理器側(cè)的每一個(gè)處理器上安裝具有虛擬存儲(chǔ)器機(jī)制的單處理器的OS,可以實(shí)現(xiàn)上述并行處理,同時(shí)進(jìn)行進(jìn)程之間的存儲(chǔ)器保護(hù)。
另外,當(dāng)?shù)谝惶幚砥鱾?cè)上的工作單元和第二處理器側(cè)上的工作單元中一個(gè)或兩個(gè)都從并行處理單元中請求處理時(shí),第二處理器側(cè)上的并行處理單元或單處理器的OS使請求源工作單元進(jìn)入待機(jī)狀態(tài),從而實(shí)現(xiàn)同步處理。
而且,當(dāng)?shù)谝惶幚砥鱾?cè)上的工作單元(任務(wù)/進(jìn)程)和第二處理器側(cè)上的工作單元中一個(gè)或兩個(gè)都從并行處理單元中請求處理時(shí),第二處理器側(cè)上的并行處理單元或單處理器的OS繼續(xù)執(zhí)行請求源的工作單元,從而實(shí)現(xiàn)異步處理。
此外,將進(jìn)程間通信功能安裝在用戶級(jí)上能夠?qū)崿F(xiàn)并行處理器中的、單處理器的OS上的進(jìn)程之間的通信,而不需要多處理器的OS。
另外的優(yōu)點(diǎn)在于與多處理器的OS不同,即使當(dāng)每一個(gè)處理器安裝有不同的單處理器的OS,也能夠進(jìn)行處理器之間的進(jìn)程間通信。
雖然已經(jīng)針對典型實(shí)施例示出和描述了本發(fā)明,本領(lǐng)域的技術(shù)人員應(yīng)該理解,在不脫離本發(fā)明的精神和范圍的情況下,可以進(jìn)行前述和各種其他的改變、省略和添加。因此,本發(fā)明不應(yīng)該被理解為限定于以上所述的特定實(shí)施例,而是可以包括針對所附權(quán)利要求所提出的特征所涵蓋的范圍及其等價(jià)物內(nèi)能夠具體實(shí)現(xiàn)的所有可能的實(shí)施例。
權(quán)利要求
1.一種利用單處理器的操作系統(tǒng)的并行處理系統(tǒng),所述利用單處理器的操作系統(tǒng)的并行處理系統(tǒng)在多處理器上運(yùn)行單處理器的操作系統(tǒng)和應(yīng)用程序,以及將在一個(gè)處理器上運(yùn)行的所述應(yīng)用程序內(nèi)能夠并行化的工作單元控制為其他處理器上的新工作單元,從而針對所述應(yīng)用程序,由所述多處理器進(jìn)行并行處理。
2.一種利用單處理器的操作系統(tǒng)的并行處理系統(tǒng),所述利用單處理器的操作系統(tǒng)的并行處理系統(tǒng)在多處理器上運(yùn)行單處理器的操作系統(tǒng)和應(yīng)用程序,將所述多處理器邏輯上劃分為第一處理器側(cè)和第二處理器側(cè)兩組,以及將在所述第一處理器側(cè)的一個(gè)處理器上運(yùn)行的所述應(yīng)用程序內(nèi)能夠并行化的工作單元控制為在所述第二處理器側(cè)的處理器上的新工作單元,從而針對所述應(yīng)用程序,由所述多處理器進(jìn)行并行處理。
3.一種利用單處理器的操作系統(tǒng)的并行處理系統(tǒng),所述利用單處理器的操作系統(tǒng)的并行處理系統(tǒng)在多處理器上運(yùn)行單處理器的操作系統(tǒng)和應(yīng)用程序,將所述多處理器邏輯上劃分為第一處理器側(cè)和第二處理器側(cè)兩組,在所述第一處理器側(cè)的處理器上運(yùn)行單處理器的所述操作系統(tǒng)和所述應(yīng)用程序,以及將在所述應(yīng)用程序內(nèi)能夠并行化的工作單元控制為在所述第二處理器側(cè)的處理器上的新工作單元,從而針對所述應(yīng)用程序,由所述多處理器進(jìn)行并行處理。
4.根據(jù)權(quán)利要求1所述的利用單處理器的操作系統(tǒng)的并行處理系統(tǒng),其特征在于在所述第二處理器側(cè)的處理器上事先創(chuàng)建在所述應(yīng)用程序內(nèi)能夠并行化的工作單元。
5.根據(jù)權(quán)利要求1所述的利用單處理器的操作系統(tǒng)的并行處理系統(tǒng),其特征在于將在所述應(yīng)用程序內(nèi)能夠并行化的工作單元?jiǎng)?chuàng)建和激活為在所述第二處理器側(cè)的處理器上的新工作單元。
6.根據(jù)權(quán)利要求2所述的利用單處理器的操作系統(tǒng)的并行處理系統(tǒng),其特征在于將具有虛擬存儲(chǔ)器機(jī)制的單處理器的操作系統(tǒng)安裝在所述第一處理器側(cè)的處理器上和在所述第二處理器側(cè)的每一個(gè)處理器上。
7.根據(jù)權(quán)利要求6所述的利用單處理器的操作系統(tǒng)的并行處理系統(tǒng),其特征在于與在所述第一處理器側(cè)的處理器上的工作單元同步地或異步地控制在所述第二處理器側(cè)的處理器上的新工作單元。
8.根據(jù)權(quán)利要求6所述的利用單處理器的操作系統(tǒng)的并行處理系統(tǒng),其特征在于在所述第一處理器側(cè)的處理器上和在所述第二處理器側(cè)的處理器上的工作單元之間能夠?qū)崿F(xiàn)同步處理和數(shù)據(jù)傳送和接收。
9.根據(jù)權(quán)利要求8所述的利用單處理器的操作系統(tǒng)的并行處理系統(tǒng),其特征在于在所述第一處理器側(cè)的處理器上和在所述第二處理器側(cè)的處理器上設(shè)置了進(jìn)程間通信單元,所述進(jìn)程間通信單元利用信號(hào)量系統(tǒng)和消息隊(duì)列系統(tǒng)來執(zhí)行所述工作單元之間的同步處理和數(shù)據(jù)傳送和接收。
10.根據(jù)權(quán)利要求1所述的利用單處理器的操作系統(tǒng)的并行處理系統(tǒng),其特征在于把進(jìn)行包括所述工作單元的創(chuàng)建的與工作單元有關(guān)的控制的并行處理單元、以及向所述工作單元提供所述單處理器的操作系統(tǒng)的服務(wù)的操作系統(tǒng)服務(wù)單元包括在所述第一處理器側(cè)和所述第二處理器側(cè)的每一個(gè)中。
11.根據(jù)權(quán)利要求1所述的利用單處理器的操作系統(tǒng)的并行處理系統(tǒng),其特征在于包括控制處理中繼單元,用于進(jìn)行所述第一處理器側(cè)和所述第二處理器側(cè)之間的控制信號(hào)和數(shù)據(jù)的傳送和接收。
12.根據(jù)權(quán)利要求11所述的利用單處理器的操作系統(tǒng)的并行處理系統(tǒng),其特征在于所述控制處理中繼單元包括與每一個(gè)處理器相對應(yīng)的中斷控制設(shè)備和與每一個(gè)處理器相對應(yīng)的通信區(qū)域,所述中斷控制設(shè)備由以下組件形成中斷指示單元,用于指示其他處理器中斷;中斷狀態(tài)保存單元,用于保存由中斷指示進(jìn)行了中斷的信息;以及中斷取消單元,用于清除中斷,以及所述通信區(qū)域由以下部分形成通信理由保存區(qū)域,用于保存來自通信源處理器的通信理由;通信數(shù)據(jù)保存區(qū)域,用于保存要通信的通信數(shù)據(jù);以及互斥控制區(qū)域,用于鎖定通信區(qū)域以確保通信。
13.根據(jù)權(quán)利要求11所述的利用單處理器的操作系統(tǒng)的并行處理系統(tǒng),其特征在于所述控制處理中繼單元包括與每一個(gè)處理器相對應(yīng)的中斷控制設(shè)備和與每一個(gè)處理器相對應(yīng)的通信區(qū)域,所述中斷控制設(shè)備由以下組件形成中斷指示單元,用于指示其他處理器中斷;中斷狀態(tài)保存單元,用于保存由中斷指示進(jìn)行了中斷的信息;以及中斷取消單元,用于清除中斷,以及所述通信區(qū)域由以下部分形成通信隊(duì)列,用于保存來自通信源處理器的通信理由和要通信的通信數(shù)據(jù);以及互斥控制區(qū)域,用于鎖定通信區(qū)域以確保通信。
14.根據(jù)權(quán)利要求10所述的利用單處理器的操作系統(tǒng)的并行處理系統(tǒng),其特征在于在所述第一處理器側(cè)設(shè)置代理單元,所述代理單元通過處理單元號(hào)與所述第二處理器側(cè)的工作單元關(guān)聯(lián),以進(jìn)行所述第二處理器側(cè)的工作單元和所述單處理器的操作系統(tǒng)之間的各種控制信號(hào)的通知。
15.根據(jù)權(quán)利要求10所述的利用單處理器的操作系統(tǒng)的并行處理系統(tǒng),其特征在于將所述并行處理單元、操作系統(tǒng)服務(wù)單元、控制處理中繼單元和代理單元以模塊的方式被包括在內(nèi)。
16.根據(jù)權(quán)利要求10所述的利用單處理器的操作系統(tǒng)的并行處理系統(tǒng),其特征在于在所述第二處理器側(cè)的所述并行處理單元具有創(chuàng)建由所述第二處理器側(cè)上的其他處理器并行處理的工作單元的功能。
17.根據(jù)權(quán)利要求1所述的利用單處理器的操作系統(tǒng)的并行處理系統(tǒng),其特征在于每一個(gè)所述處理器安裝有具有虛擬存儲(chǔ)器機(jī)制的所述單處理器的操作系統(tǒng),以便能夠?qū)崿F(xiàn)所述一個(gè)處理器和所述其他處理器上的工作單元之間的同步處理和數(shù)據(jù)傳送和接收。
18.根據(jù)權(quán)利要求17所述的利用單處理器的操作系統(tǒng)的并行處理系統(tǒng),其特征在于在每一個(gè)所述處理器上設(shè)置進(jìn)程間通信單元,所述進(jìn)程間通信單元利用信號(hào)量系統(tǒng)和消息隊(duì)列系統(tǒng)來執(zhí)行所述工作單元之間的同步處理和數(shù)據(jù)傳送和接收。
19.根據(jù)權(quán)利要求17所述的利用單處理器的操作系統(tǒng)的并行處理系統(tǒng),其特征在于包括控制處理中繼單元,用于在每一個(gè)所述處理器上的所述工作單元之間的同步處理和數(shù)據(jù)傳送和接收時(shí),進(jìn)行控制信號(hào)和數(shù)據(jù)的傳送和接收。
20.一種利用單處理器的操作系統(tǒng)的并行處理程序,包括以下功能在多處理器上運(yùn)行單處理器的操作系統(tǒng)和應(yīng)用程序,以及將在一個(gè)處理器上運(yùn)行的所述應(yīng)用程序內(nèi)能夠并行化的工作單元控制為其他處理器上的新工作單元,從而針對所述應(yīng)用程序,由所述多處理器進(jìn)行并行處理。
21.一種利用單處理器的操作系統(tǒng)的并行處理程序,包括以下功能在多處理器上運(yùn)行單處理器的操作系統(tǒng)和應(yīng)用程序,以及在將所述多處理器邏輯上劃分為第一處理器側(cè)和第二處理器側(cè)兩組的系統(tǒng)中,將在所述第一處理器側(cè)的處理器上運(yùn)行的所述應(yīng)用程序內(nèi)能夠并行化的工作單元控制為在所述第二處理器側(cè)的處理器上的新工作單元,從而針對所述應(yīng)用程序,由所述多處理器進(jìn)行并行處理。
22.一種利用單處理器的操作系統(tǒng)的并行處理程序,包括以下功能在多處理器上運(yùn)行單處理器的操作系統(tǒng)和應(yīng)用程序,在將所述多處理器邏輯上劃分為第一處理器側(cè)和第二處理器側(cè)兩組的系統(tǒng)中,在所述第一處理器側(cè)的處理器上運(yùn)行所述單處理器的操作系統(tǒng)和所述應(yīng)用程序,以及將在所述應(yīng)用程序內(nèi)能夠并行化的工作單元控制為在所述第二處理器側(cè)的處理器上的新工作單元,從而針對所述應(yīng)用程序,由所述多處理器進(jìn)行并行處理。
23.根據(jù)權(quán)利要求20所述的利用單處理器的操作系統(tǒng)的并行處理程序,其特征在于包括以下功能在所述第二處理器側(cè)的處理器上事先創(chuàng)建在所述應(yīng)用程序內(nèi)能夠并行化的工作單元。
24.根據(jù)權(quán)利要求20所述的利用單處理器的操作系統(tǒng)的并行處理程序,其特征在于包括以下功能將在所述應(yīng)用程序內(nèi)能夠并行化的工作單元?jiǎng)?chuàng)建和激活為在所述第二處理器側(cè)的處理器上的新工作單元。
25.根據(jù)權(quán)利要求20所述的利用單處理器的操作系統(tǒng)的并行處理程序,其特征在于在安裝了具有虛擬存儲(chǔ)器機(jī)制的所述單處理器的操作系統(tǒng)的所述第一處理器側(cè)的處理器上和所述第二處理器側(cè)的每一個(gè)處理器上執(zhí)行所述并行處理程序。
26.根據(jù)權(quán)利要求25所述的利用單處理器的操作系統(tǒng)的并行處理程序,其特征在于包括以下功能與在所述第一處理器側(cè)的處理器上的工作單元同步地或異步地控制在所述第二處理器側(cè)的處理器上的新工作單元。
27.根據(jù)權(quán)利要求25所述的利用單處理器的操作系統(tǒng)的并行處理程序,其特征在于包括以下功能在所述第一處理器側(cè)的處理器上和在所述第二處理器側(cè)的處理器上的工作單元之間能夠?qū)崿F(xiàn)同步處理和數(shù)據(jù)傳送和接收。
28.根據(jù)權(quán)利要求27所述的利用單處理器的操作系統(tǒng)的并行處理程序,其特征在于在所述第一處理器側(cè)的處理器上和在所述第二處理器側(cè)的處理器上執(zhí)行進(jìn)程間通信功能,所述進(jìn)程間通信功能利用信號(hào)量系統(tǒng)和消息隊(duì)列系統(tǒng)來執(zhí)行所述工作單元之間的同步處理和數(shù)據(jù)傳送和接收。
29.根據(jù)權(quán)利要求20所述的利用單處理器的操作系統(tǒng)的并行處理程序,其特征在于所述第一處理器側(cè)和所述第二處理器側(cè)的每一個(gè)具有并行處理功能,用于進(jìn)行包括所述工作單元的創(chuàng)建的、與工作單元有關(guān)的控制;以及操作系統(tǒng)服務(wù)功能,用于向所述工作單元提供所述單處理器的操作系統(tǒng)的服務(wù)。
30.根據(jù)權(quán)利要求20所述的利用單處理器的操作系統(tǒng)的并行處理程序,其特征在于包括控制處理中繼功能,用于進(jìn)行所述第一處理器側(cè)和所述第二處理器側(cè)之間的控制信號(hào)和數(shù)據(jù)的傳送和接收。
31.根據(jù)權(quán)利要求29所述的利用單處理器的操作系統(tǒng)的并行處理程序,其特征在于包括代理功能,在所述第一處理器側(cè),所述代理功能通過處理單元號(hào)與所述第二處理器側(cè)的工作單元關(guān)聯(lián),以進(jìn)行所述第二處理器側(cè)的工作單元和所述單處理器的操作系統(tǒng)之間的各種控制信號(hào)的通知。
32.根據(jù)權(quán)利要求29所述的利用單處理器的操作系統(tǒng)的并行處理程序,其特征在于在所述第二處理器側(cè)的所述并行處理功能創(chuàng)建由所述第二處理器側(cè)上的其他處理器并行處理的工作單元。
33.根據(jù)權(quán)利要求20所述的利用單處理器的操作系統(tǒng)的并行處理程序,其特征在于在每一個(gè)所述處理器上安裝有具有虛擬存儲(chǔ)器機(jī)制的所述單處理器的操作系統(tǒng),在所述一個(gè)處理器和所述其他處理器上的工作單元之間能夠?qū)崿F(xiàn)同步處理和數(shù)據(jù)傳送和接收。
34.根據(jù)權(quán)利要求33所述的利用單處理器的操作系統(tǒng)的并行處理程序,其特征在于在每一個(gè)所述處理器上執(zhí)行進(jìn)程間通信功能,所述進(jìn)程間通信功能利用信號(hào)量系統(tǒng)和消息隊(duì)列系統(tǒng)來執(zhí)行所述工作單元之間的同步處理和數(shù)據(jù)傳送和接收。
35.根據(jù)權(quán)利要求33所述的利用單處理器的操作系統(tǒng)的并行處理程序,其特征在于在每一個(gè)所述處理器上的所述工作單元之間進(jìn)行同步處理和數(shù)據(jù)傳送和接收時(shí),執(zhí)行進(jìn)行控制信號(hào)和數(shù)據(jù)的傳送和接收的控制處理中繼功能。
全文摘要
一種利用單處理器的操作系統(tǒng)的并行處理系統(tǒng)和并行處理程序,在所述并行處理系統(tǒng)中,在多處理器上運(yùn)行單處理器的操作系統(tǒng)和現(xiàn)有的單處理器的應(yīng)用程序,以針對應(yīng)用程序來實(shí)現(xiàn)由多處理器所進(jìn)行的并行處理,將所述多處理器邏輯上劃分為第一處理器側(cè)和第二處理器側(cè)兩組,以及將在所述第一處理器側(cè)的處理器上運(yùn)行的所述應(yīng)用程序內(nèi)能夠并行化的工作單元控制為在所述第二處理器側(cè)的處理器上的新工作單元。
文檔編號(hào)G06F15/177GK1534504SQ20041003193
公開日2004年10月6日 申請日期2004年3月31日 優(yōu)先權(quán)日2003年3月31日
發(fā)明者井上浩明, 伊藤義行, 酒井淳嗣, 枝廣正人, 人, 嗣, 行 申請人:日本電氣株式會(huì)社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
阳春市| 军事| 寿宁县| 东海县| 岳普湖县| 黄平县| 锡林郭勒盟| 水富县| 峨边| 吉安市| 洛川县| 柳河县| 阿克苏市| 临洮县| 内黄县| 杭锦后旗| 阜宁县| 临夏市| 绥芬河市| 大理市| 来凤县| 应用必备| 廉江市| 阳信县| 通海县| 浮梁县| 郸城县| 渝北区| 阿拉善右旗| 清水县| 孝义市| 玛曲县| 大理市| 磐安县| 福泉市| 南通市| 治多县| 柳林县| 宝兴县| 岳池县| 新源县|