新四季網

防止多處理器計算機中各處理器間進程發生衝突的方法

2023-04-26 10:54:51 2

專利名稱:防止多處理器計算機中各處理器間進程發生衝突的方法
按,在現有電腦作業系統(Operating System)的技術中,DOS作業系統是屬一種單進程且獨佔資源的單工系統,該系統在其運行上只能有一個進程(process),故在單一處理器的環境下,DOS作業系統中不可能有一個以上的進程同時執行。若有多個進程提交該系統進行處理,即需依靠排班隊列(Scheduling Queues)的方式,依序執行各進程。
傳統上,在對一臺具有多處理器計算機中的處理器數目進行測量時,一般是令每個處理器均執行一進程(process),同時分別在存儲器中寫入一個標記,以表示該處理器的存在。但在此種傳統量測過程中,如何能令該等處理器均能正確地執行每個進程,令其在分別執行所屬進程時,不致發生衝突,且在所有進程被執行完畢後,仍能保證DOS作業系統的正常運行,則是目前在DOS作業系統下,對多處理器計算機中的處理器數目進行測量時,尚無法有效解決的問題。
有鑑於傳統上對多處理器計算機中多處理器數目進行量測時,易發生多處理器進程衝突的諸多缺點,發明人乃進一步研究改良,研發出本發明,本發明主要是藉由一整數變量(semaphore),以其作為鎖定標誌,標識出目前是否有處理器正在佔用系統資源,若無處理器佔用系統資源,即可將該鎖定標誌置入後,再令一處理器執行其中斷服務例程;在執行完畢後,再釋放該鎖定標誌,使其他處理器能夠依序使用系統資源,執行其中斷服務例程。
本發明的主要目的,是透過設置一整數變量,作為鎖定標誌,以保證一電腦中的多個處理器,可依序執行其所屬進程,令各該進程間不致發生衝突,當一處理器進程結束後,即釋放該鎖定標誌,並回復到中斷前的狀態,使其他處理器能夠依序使用系統資源,執行其中斷服務例程,並確保多處理器模塊執行完畢後,DOS作業系統仍能維持正常運行。
本發明的另一目的,是將該整數變量標誌設置於各該多處理器所屬的進程控制表的代碼段內,因各該代碼段是不隨進程的執行而改變,故各該處理器在執行該中斷服務例程前,可將其數據段和堆棧段內的數據先予以保存,並將保存的地址儲存在該代碼段內,以確保各該處理器在完成中斷處理後,能正確地查找到該等數據,並回復到中斷前的狀態。
為了實現上述目的,本發明提供一種防止多處理器計算機中各處理器間進程發生衝突的方法,該方法是以一整數變量作為鎖定標誌,設置於一多處理器計算機中各處理器所屬的進程控制表的代碼段內,以標識出目前是否已有處理器正在佔用系統資源,若無處理器佔用系統資源,即可在將該鎖定標誌置入後,令一處理器執行其中斷處理程序,在執行完畢後,再釋放該鎖定標誌,使其他處理器能夠使用系統資源,依序於接收到中斷信號時,正常執行其中斷處理程序。


圖1所示乃本發明的整體流程示意圖;圖2所示乃本發明中主處理器的處理流程示意圖;圖3所示乃本發明中各輔處理器的處理流程示意圖;圖4所示乃本發明中各輔處理器對其中斷服務例程的入口進行設定的處理流程示意圖。
在符合Intel架構的多處理器主機板上,一般均安裝有一個含有局部高級可編程中斷控制器(local APIC)的主處理器,該主處理器主要是於該多處理器系統間負責傳遞通信訊息及命令,當該主處理器接收到由其他處理器透過系統總線所發出的中斷信號時,會將該中斷信號傳遞至所指定的輔處理器,使各該輔處理器對中斷進行處理。當該種多處理器主機板上的DOS作業系統接收到一特殊的中斷啟始(start-up)信號時,其上的該主處理器將會觸發該特殊的中斷,令各該輔處理器能依序執行一中斷服務例程(serviceroutine),使該服務例程去檢查該中斷信號,並呼叫特定的中斷處理程序,對該中斷進行處理,且將其目前的狀態儲存至一存儲器中。由於在DOS作業系統下,同一時刻僅允許一處理器執行該服務例程,本發明即藉由設置一整數變量,作為一鎖定標誌的方法,利用該鎖定標誌標識出目前是否已有處理器正在佔用系統資源,執行該中斷處理程序,若無處理器佔用系統資源,即可將該鎖定標誌置入後,令一處理器執行該中斷服務例程;在執行完畢後,再釋放該鎖定標誌,使其他處理器能夠依序使用系統資源,執行其中斷服務例程。
在本發明中,由於該多處理器主機板上的各處理器,均有其各別應執行的進程(process),各該進程於存儲器中,均對應者一進程控制表(processcontrol block),各該進程控制表的數據段及堆棧(Stack)段互不相同,故若該整數變量標誌是被設計置放於該數據段內,由於該數據段內的數據,將因進程的執行而改變,令其它處理器找不到該標誌,而導致系統崩潰。因此,本發明是將該整數變量標誌設計置放於各該進程控制表的代碼段內,該代碼段是不隨進程的執行而改變。如此,各該處理器在執行該中斷服務例程前,可將該數據段和堆棧段內的數據先予以保存,並將保存的地址儲存在該代碼段內,以確保各該處理器在完成中斷處理後,能正確地查找到該等數據,並回復到中斷前的狀態。
本發明中,當該多處理器主機板被開機,並完成DOS作業系統的啟始(boot-up)程序後,參閱第1圖所示,系統是先對主處理器完成初始化狀態設定(101);並由該主處理器設定各該輔處理器進行中斷的入口地址(102);然後,再對各該輔處理器依序發出中斷信號(103);各該輔處理器在接收到一中斷信號時,將調用存儲器中(位於40∶67)的一中斷向量(interrupt vector),以依據該中斷向量內所提供的中斷服務例程(Service Routine)的地址,執行相應的中斷程序(104),故,各輔處理器所執行的對應中斷服務例程的地址,必須置放於位於存儲器中40∶67地址的該中斷向量(interrupt vector)內,使各該輔處理器均能透過該中斷向量,找到對應的中斷服務例程,並予執行,以完成對該中斷的處理;各該輔處理器是利用本發明所設計的鎖定標誌,標識出目前已佔用系統資源,處於正在執行該中斷處理程序的狀態,在執行完畢後,再釋放該鎖定標誌(105),並等待下一次的中斷請求(106),如此,即可令其他輔處理器依序使用系統資源,執行該中斷服務例程。
在本發明中,復參閱第1圖所示,在各該輔處理器接收到一中斷信號時,需將其目前的狀態儲存至一暫存存儲器中(107),使在各該處理器完成對該中斷的處理,並釋放該鎖定標誌後,該主處理器可根據保存於該暫存存儲器中的數據(108),正確地查找到各該輔處理器中斷前的狀態數據,以確保各該輔處理器在完成中斷處理後,仍能回復到中斷前的狀態(109)。
在本發明的前述處理程序中,參見第2圖所示,該主處理器是依下列步驟,進行處理首先,判斷該主處理器當前的模式,是否屬實模式(real mode)(201),若當前模式為保護模式(protection mode),結束處理;否則,判斷該主處理器的識別號(ID),是否為Pentium以上的處理器(202),若否,則結束處理;若為Pentium以上的處理器,則將當前的操作模式切換到保護模式(203),並搜索浮點指針(float pointer),找到本地的高級可編程中斷控制器(local APIC)的基地址(base address)(204);然後,再於該地址處分別設置任務優先級寄存器(register)、偽向量寄存器、目的寄存器及目的格式寄存器(205);並為每個待處理的輔處理器設定一對應的變量,並將該變量值設為0,同時保存其數據段(206);再為每個處理器申請數據使用空間及4K頁空間,其中的4K頁空間是支持每個處理器運行時所需的存儲器空間(207);然後再判斷是否申請成功(208)?若否,結束處理,否則,設定中斷服務例程的入口地址模塊(209),發出中斷啟始(start up)信號,令各該輔處理器開始執行中斷服務例程(211);在中斷服務例程被執行完畢,再恢復中斷前的系統環境,並釋放存儲器空間,且切換回實模式(212),等待下一次被調用。
在本發明中,參見第3圖所示,各該輔處理器在利用本發明所設計的鎖定標誌,標識出目前佔用系統資源的狀態時,主要是依下列步驟,進行處理首先,偵測鎖定標誌值(301),並判斷該標誌是否已經被鎖定(302),若已被鎖定,則返回(301),繼續偵測鎖定標誌值;否則,對該標誌值進行鎖定(303);將數據段及堆棧段改為申請的段空間(304)後,再向暫存存儲器中寫入對應段空間的存在標誌(305),使該主處理器可自該暫存存儲器中,正確地讀取各該輔處理器中斷前的狀態數據;在完成執行該中斷處理程序,再釋放該標誌值的鎖定(306),且將該標誌設定為空閒狀態(307),令其他輔處理器能夠使用系統資源,依序執行該中斷服務例程。
在本發明中,參見第4圖所示,該中斷服務例程的入口地址模塊主要是依下列步驟,進行設定首先,判斷0X70的入口是否為可寫狀態(401)?若否,則結束處理;否則,向0X70的入口寫入0X7F值(402);判斷0X71的入口是否為可寫狀態(403)?若是,向0X70的入口寫入0X0A值(402),並將中斷服務例程的地址寫入存儲器地址40∶67中(405)。
本發明在該代碼段中,是藉設定一整數變量(semaphore),以作為是否鎖定的標誌,使各該處理器在執行中斷服務程序的過程中,可先循環檢測該整數變量的鎖定標誌是否被鎖定,若是,則令其處於等待狀態,並繼續循環檢查該鎖定標誌,否則,鎖定該標誌,並執行中斷服務程序,在中斷服務例程被執行完畢,即釋放該鎖定標誌,以令其他處理器可依序執行其中斷服務程序。
如此,在對一臺具有多處理器計算機中的處理器數目進行測量時,各該處理器在依序接收到中斷信號時,均能正常執行其中斷處理程序,並可有效防止各處理器間進程發生衝突的情事,確保多處理器模塊執行完畢後,DOS作業系統仍能維持正常運行。
以上所述,僅是本發明的較佳實施例,惟,本發明所主張的權利範圍,並不局限於此,按凡熟悉該項技藝人士,依據本發明所揭露的技術內容,可輕易思及的等效變化,均應屬不脫離本發明的保護範疇。
權利要求
1.一種防止多處理器計算機中各處理器間進程發生衝突的方法,該方法是以一整數變量作為鎖定標誌,設置於一多處理器計算機中各處理器所屬的進程控制表的代碼段內,以標識出目前是否已有處理器正在佔用系統資源,若無處理器佔用系統資源,即可在將該鎖定標誌置入後,令一處理器執行其中斷處理程序,在執行完畢後,再釋放該鎖定標誌,使其他處理器能夠使用系統資源,依序於接收到中斷信號時,正常執行其中斷處理程序。
2.如權利要求1所述的一種防止多處理器計算機中各處理器間進程發生衝突的方法,該方法是先對該等多處理器中一含有局部高級可編程中斷控制器的主處理器,進行初始化狀態設定,並由該主處理器設定各該輔處理器進行中斷的入口地址;然後,再對各該輔處理器依序發出中斷信號。
3.如權利要求2所述的一種防止多處理器計算機中各處理器間進程發生衝突的方法,其中各該輔處理器在接收到一中斷信號時,將調用存儲器中的一中斷向量,以依據該中斷向量內所提供的中斷服務例程的地址,執行相應的中斷程序,以完成對該中斷的處理。
4.如權利要求3所述的一種防止多處理器計算機中各處理器間進程發生衝突的方法,其中各該輔處理器是利用該鎖定標誌,標識出目前已佔用系統資源,處於正在執行該中斷處理程序的狀態,在執行完畢後,再釋放該鎖定標誌,並等待下一次的中斷請求。
5.如權利要求2所述的一種防止多處理器計算機中各處理器間進程發生衝突的方法,其中在各該輔處理器接收到一中斷信號時,需將其目前的狀態儲存至一暫存存儲器中,使在各該處理器完成對該中斷的處理,並釋放該鎖定標誌後,該主處理器可根據保存於該暫存存儲器中的數據,正確地查找到各該輔處理器中斷前的狀態數據,以確保各該輔處理器在完成中斷處理後,仍能回復到中斷前的狀態。
6.如權利要求2所述的一種防止多處理器計算機中各處理器間進程發生衝突的方法,其中當該主處理器當前的模式是屬實模式時,判斷該主處理器的識別號是否符合規定;若符合規定,即將當前的操作模式切換到保護模式,並搜索浮點指針,找到本地的高級可編程中斷控制器的基地址;然後,再於該地址處分別設置任務優先級寄存器、偽向量寄存器、目的寄存器及目的格式寄存器;並為每個待處理的輔處理器設定一對應的變量,並將該變量值設為零,同時保存其數據段;再為每個處理器申請數據使用空間及運行空間;然後再判斷是否申請成功?若是,則設定中斷服務例程的入口地址模塊,發出中斷啟始信號。
7.如權利要求6所述的一種防止多處理器計算機中各處理器間進程發生衝突的方法,其中在中斷服務例程被執行完畢後,再恢復中斷前的系統環境,並釋放存儲器空間,且切換回實模式,等待下一次被調用。
8.如權利要求2所述的一種防止多處理器計算機中各處理器間進程發生衝突的方法,其中各該輔處理器在利用該鎖定標誌,標識出目前佔用系統資源的狀態時,主要是依下列步驟,進行處理首先,偵測鎖定標誌值,並判斷該標誌是否已經被鎖定,若已被鎖定,繼續偵測鎖定標誌值;否則,對該標誌值進行鎖定;將數據段及堆棧段改為申請的段空間後,再向暫存存儲器中寫入對應段空間的存在標誌,使該主處理器可自該暫存存儲器中,正確地讀取各該輔處理器中斷前的狀態數據;在完成執行該中斷處理程序,再釋放該標誌值的鎖定,且將該標誌設定為空閒狀態,令其他輔處理器能夠使用系統資源,依序執行該中斷服務例程。
全文摘要
本發明以整數變量作為鎖定標誌,設置於一多處理器計算機中各處理器所屬的進程控制表的代碼段內,以標識出目前是否已有處理器正在佔用系統資源,若無,即可在將該鎖定標誌置入後,令一處理器執行其中斷處理程序,在執行完畢後,再釋放該鎖定標誌,使其他處理器能夠使用系統資源,依序於接收到中斷信號時,正常執行其中斷處理程序,使在對一多處理器計算機中各處理器數目進行量測時,可有效防止各處理器間進程發生衝突。
文檔編號G06F9/48GK1367432SQ01101588
公開日2002年9月4日 申請日期2001年1月23日 優先權日2001年1月23日
發明者陳玄同, 林光信 申請人:英業達股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀