亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種進程加載方法、裝置及系統(tǒng)的制作方法

文檔序號:8258155閱讀:184來源:國知局
一種進程加載方法、裝置及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及操作系統(tǒng)領(lǐng)域,尤其涉及一種進程加載方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002] 眾核處理器一般采用具有一定系統(tǒng)差異性,如具有異構(gòu)特性、NUMA (Non Uniform Memory Access Achitecture,非統(tǒng)一內(nèi)存訪問)特性的系統(tǒng)結(jié)構(gòu),其中,具有NUMA特性的系 統(tǒng)結(jié)構(gòu)具有使眾多服務(wù)器像單一系統(tǒng)一樣工作,同時保留小系統(tǒng)便于編程和管理的優(yōu)點。 但是,系統(tǒng)結(jié)構(gòu)的異構(gòu)特性會導致處理器的異構(gòu)性,在以消息通信為基礎(chǔ)的適用于眾核處 理器的分布式操作系統(tǒng)中,異構(gòu)性會導致進程在不同核上的執(zhí)行性能有差別,因此在進程 加載時,需要通過親和性調(diào)度來降低處理器的異構(gòu)性對性能產(chǎn)生的影響。
[0003] 現(xiàn)有技術(shù)中,在操作系統(tǒng)中進程加載和選擇進程加載目標核的過程為串行化的在 一個線程內(nèi)完成的過程。在運用單核處理器的系統(tǒng)運行平臺上,由于核的數(shù)量比較少,因此 系統(tǒng)選擇進程加載目標核的過程不會耗費太多的時間,但是在運用眾核處理器的系統(tǒng)運行 平臺上,隨著核的數(shù)量的不斷增加,系統(tǒng)選擇進程加載目標核的過程將會耗費越來越多的 時間。這樣,進程加載和選擇進程加載目標核所耗費的時間就會變長,進而影響了進程在眾 核處理器的系統(tǒng)運行平臺上的加載速度。同時,為了降低處理器的異構(gòu)性對性能產(chǎn)生的影 響,系統(tǒng)需要實現(xiàn)親和性調(diào)度。然而,使用現(xiàn)有技術(shù)在操作系統(tǒng)中實現(xiàn)親和性調(diào)度的過程也 是一個串行化過程,在眾核處理器的系統(tǒng)運行平臺上實現(xiàn)親和性調(diào)度的過程也會減緩進程 的加載速度。而且,實現(xiàn)親和性調(diào)度的過程并沒有系統(tǒng)信息庫等數(shù)據(jù)庫的支持。

【發(fā)明內(nèi)容】

[0004] 本發(fā)明的實施例提供一種進程加載的方法、裝置及系統(tǒng),通過在進程加載的過程 中,將選擇進程加載目標核Core的過程分離,加快了進程的加載時間,提高了用戶體驗感。
[0005] 為達到上述目的,本發(fā)明的實施例采用如下技術(shù)方案:
[0006] 第一方面,本發(fā)明實施例提供一種進程加載方法,進程包括第一線程和第二線程, 所述第一線程和所述第二線程之間存在通信關(guān)系,所述方法包括:
[0007] 第一線程加載裝置獲取所述進程加載信息,所述進程加載信息用于指示開始加載 所述第一線程;
[0008] 在所述第一線程加載裝置獲取到所述進程加載信息后,確認所述第一線程的文件 頭部是否合法;
[0009] 若所述第一線程的文件頭部合法,所述第一線程加載裝置則執(zhí)行第一線程中的任 務(wù);
[0010] 所述第一線程加載裝置接收第二線程加載裝置發(fā)送的第二線程加載目標核 Core ;
[0011] 在所述第一線程加載裝置接收到所述第二線程加載目標核Core后,填寫所述第 二線程加載目標核Core信息,并將所述第一線程加入指定的執(zhí)行隊列,從而完成進程加 載。
[0012] 在第一種可能的實現(xiàn)方式中,根據(jù)第一方面,若所述第一線程的文件頭部不合法, 所述第一線程加載裝置則發(fā)送第二線程加載終止信息至所述第二線程加載裝置,以使得所 述第二線程加載裝置終止所述第二線程的加載。
[0013] 在第二種可能的實現(xiàn)方式中,結(jié)合第一方面或第一種可能的實現(xiàn)方式,在所述若 所述第一線程的文件頭部合法,所述第一線程加載裝置則執(zhí)行第一線程中的任務(wù)之后,所 述第一線程加載裝置接收第二線程加載裝置發(fā)送的第二線程加載目標核Core之前,所述 方法還包括:
[0014] 所述第一線程加載裝置獲取加載所述進程的系統(tǒng)的類型;
[0015] 所述第一線程加載裝置根據(jù)所述系統(tǒng)的類型,確認是否需要配置動態(tài)鏈接庫;
[0016] 若需要配置動態(tài)鏈接庫,所述第一線程加載裝置則填寫動態(tài)鏈接庫信息。
[0017] 在第三種可能的實現(xiàn)方式中,結(jié)合第一方面或第一種可能的實現(xiàn)方式或第二種可 能的實現(xiàn)方式,在所述若所述第一線程的文件頭部合法,所述第一線程加載裝置則執(zhí)行第 一線程中的任務(wù)之后,所述第一線程加載裝置接收第二線程加載裝置發(fā)送的第二線程加載 目標核Core之前,所述方法還包括:
[0018] 所述第一線程加載裝置檢測所述第二線程加載裝置是否完成了所述第二線程加 載目標核Core的選擇;
[0019] 若所述第二線程加載裝置未完成所述第二線程加載目標核Core的選擇,所述第 一線程加載裝置則觸發(fā)等待模式,所述等待模式用于指示等待所述第二線程加載裝置完成 所述第二線程加載目標核Core的選擇。
[0020] 在第四種可能的實現(xiàn)方式中,結(jié)合第一方面或第一種可能的實現(xiàn)方式至第三種可 能的實現(xiàn)方式,所述第一線程加載裝置執(zhí)行第一線程中的任務(wù),具體包括執(zhí)行物理頁申請, 填充參數(shù),建立進程控制塊PCB,以及建立虛擬地址映射;所述第一線程的文件頭部,具體 為所述第一線程的二進制文件頭部。
[0021] 第二方面,本發(fā)明實施例提供一種進程加載方法,進程包括第一線程和第二線程, 所述第一線程和所述第二線程之間存在通信關(guān)系,所述方法包括:
[0022] 第二線程加載裝置獲取所述進程加載信息,所述進程加載信息用于指示開始加載 所述第二線程;
[0023] 在所述第二線程加載裝置獲取到所述進程加載信息后,獲取當前時刻加載所述進 程的系統(tǒng)的動態(tài)負載信息,并結(jié)合系統(tǒng)知識庫選擇第二線程加載目標核Core ;
[0024] 所述第二線程加載裝置發(fā)送所述第二線程加載目標核Core至所述第一線程加載 裝置,以使得所述第一線程加載裝置在接收到所述第二線程加載目標核Core后,填寫所述 第二線程加載目標核Core信息,并將所述第一線程加入指定的執(zhí)行隊列,從而完成進程加 載。
[0025] 在第一種可能的實現(xiàn)方式中,根據(jù)第二方面,在所述第二線程加載裝置獲取當前 時刻加載所述進程的系統(tǒng)的動態(tài)負載信息,并結(jié)合系統(tǒng)知識庫選擇第二線程加載目標核 Core之前,所述方法還包括:
[0026] 所述第二線程加載裝置讀取親和性配置信息,其中,所述親和性配置信息為選擇 所述第二線程加載目標核Core提供親和性運算參數(shù)。
[0027] 在第二種可能的實現(xiàn)方式中,結(jié)合第二方面或第一種可能的實現(xiàn)方式,所述親和 性配置信息包括預(yù)編譯信息、編譯器解析、手動配置、操作系統(tǒng)反饋中任意一種或多種的組 合。
[0028] 在第三種可能的實現(xiàn)方式中,結(jié)合第二方面或第一種可能的實現(xiàn)方式或第二種可 能的實現(xiàn)方式,在所述第二線程加載裝置獲取當前時刻加載所述進程的系統(tǒng)的動態(tài)負載信 息,并結(jié)合系統(tǒng)知識庫選擇第二線程加載目標核Core之后,所述第二線程加載裝置發(fā)送所 述第二線程加載目標核Core至所述第一線程加載裝置之前,所述方法還包括:
[0029] 所述第二線程加載裝置檢測所述第一線程加載裝置是否完成了第一線程中的任 務(wù)的執(zhí)行;
[0030] 若所述第一線程加載裝置未完成所述第一線程中的任務(wù)的執(zhí)行,所述第二線程加 載裝置則存儲所述第二線程加載目標核Core,以等待所述第一線程加載裝置完成所述第一 線程中的任務(wù)的執(zhí)行。
[0031] 在第四種可能的實現(xiàn)方式中,結(jié)合第二方面或第一種可能的實現(xiàn)方式至第三種可 能的實現(xiàn)方式,所述系統(tǒng)知識庫為選擇所述第二線程加載目標核Core提供相應(yīng)的運算參 數(shù);所述系統(tǒng)知識庫包括系統(tǒng)的硬件拓撲信息、資源信息和系統(tǒng)服務(wù)運行位置信息。
[0032] 第三方面,本發(fā)明實施例提供一種第一線程加載裝置,包括:
[0033] 獲取模塊,用于獲取所述進程加載信息,所述進程加載信息用于指示開始加載所 述第一線程;
[0034] 確認模塊,用于在所述獲取模塊獲取到所述進程加載信息后,確認所述第一線程 的文件頭部是否合法;
[0035] 執(zhí)行模塊,用于若所述第一線程的文件頭部合法,則執(zhí)行第一線程中的任務(wù);
[0036] 接收模塊,用于接收第二線程加載裝置發(fā)送的第二線程加載目標核Core;
[0037] 處理模塊,用于在所述接收模塊接收到所述第二線程加載目標核Core后,填寫所 述第二線程加載目標核Core信息,并將所述第一線程加入指定的執(zhí)行隊列,從而完成進程 加載。
[0038] 在第一種可能的實現(xiàn)方式中,根據(jù)第三方面,所述第一線程加載裝置還包括:
[0039] 發(fā)送模塊,用于若所述第一線程的文件頭部不合法,則發(fā)送第二線程加載終止信 息至所述第二線程加載裝置,以使得所述第二線程加載裝置終止所述第二線程的加載。
[0040] 在第二種可能的實現(xiàn)方式中,結(jié)合第三方面或第一種可能的實現(xiàn)方式,若所述第 一線程的文件頭部合法,在所述執(zhí)行模塊執(zhí)行第一線程中的任務(wù)之后,所述接收模塊接收 第二線程加載裝置發(fā)送的第二線程加載目標核Core之前,
[0041] 所述獲取模塊,還用于獲取加載所述進程的系統(tǒng)的類型;
[0042] 所述確認模塊,還用于根據(jù)所述系統(tǒng)的類型,確認是否需要配置動態(tài)鏈接庫;
[0043] 所述處理模塊,還用于若需要配置動態(tài)鏈接庫,則填寫動態(tài)鏈接庫信息。
[0044] 在第三種可能的實現(xiàn)方式中,結(jié)合第三方面或第一種可能的實現(xiàn)方式或第二種可 能的實現(xiàn)方式,所述第一線程加載裝置還包括:
[0045] 檢測模塊,用于在所述執(zhí)行模塊執(zhí)行第一線程中的任務(wù)之后,所述接收模塊接收 第二線程加載裝置發(fā)送的第二線程加載目標核Core之前,檢測所述第二線程加載裝置是 否完成了所述第二線程加載目標核Core的選擇;
[0046] 觸發(fā)模塊,用于若所述第二線程加載裝置未完成所述第二線程加載目標核Core 的選擇,則觸發(fā)等待模式,所述等待模式用于指示等待所述第二線程加載裝置完成所述第 二線程加載目標核Core的選擇。
[0047] 在第四種可能的實現(xiàn)方式中,結(jié)合第三方面或第一種可能的實現(xiàn)方式至第三種可 能的實現(xiàn)方式,所述第一線程加載裝置執(zhí)行第一線程中的任務(wù),具體包括執(zhí)行物理頁申請, 填充參數(shù),建立
當前第1頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1