本發(fā)明實(shí)施例涉及計(jì)算機(jī)技術(shù),尤其涉及一種資源管理方法及裝置。
背景技術(shù):
目前通用的操作系統(tǒng)中,應(yīng)用無法感知和/或控制物理資源,即當(dāng)任意所述應(yīng)用需要訪問資源時,都需要陷入所述操作系統(tǒng)的內(nèi)核,通過所述內(nèi)核訪問資源。因此,當(dāng)所述操作系統(tǒng)的多個應(yīng)用都需要訪問資源時,會引起內(nèi)核資源爭用,導(dǎo)致系統(tǒng)性能下降。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種資源管理方法及裝置,提升了系統(tǒng)性能。
第一方面,本發(fā)明實(shí)施例提供一種資源管理方法,包括:
獲取物理資源使用信息,所述物理資源使用信息用于指示應(yīng)用運(yùn)行所需要的物理資源;
根據(jù)所述物理資源使用信息為所述應(yīng)用分配獨(dú)立的物理資源,并為所述應(yīng)用分配用于直接訪問所述物理資源的接口,以使所述應(yīng)用直接訪問所述物理資源。
結(jié)合第一方面,在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述獲取物理資源使用信息,包括:
獲取預(yù)設(shè)的所述物理資源使用信息;或者,
根據(jù)所述應(yīng)用發(fā)送的硬件控制數(shù)據(jù)結(jié)構(gòu)獲取所述物理資源使用信息;其中,所述硬件控制數(shù)據(jù)結(jié)構(gòu)包括所述物理資源使用信息。
結(jié)合第一方面或第一方面的第一種可能的實(shí)現(xiàn)方式,在第一方面的第二種可能的實(shí)現(xiàn)方式中,所述為所述應(yīng)用分配用于直接訪問所述物理資源的接口,包括:
為所述應(yīng)用建立用戶空間系統(tǒng)服務(wù)功能庫,并將所述應(yīng)用所需的內(nèi)核的 管理數(shù)據(jù)結(jié)構(gòu)復(fù)制到所述用戶空間系統(tǒng)服務(wù)功能庫中,其中,所述管理數(shù)據(jù)結(jié)構(gòu)用于直接訪問所述物理資源。
結(jié)合第一方面的第二種可能的實(shí)現(xiàn)方式,在第一方面的第三種可能的實(shí)現(xiàn)方式中,還包括:為所述應(yīng)用分配用于管理所述物理資源的管理策略;其中,所述用戶空間系統(tǒng)服務(wù)功能庫包括:所述管理策略。
結(jié)合第一方面、第一方面的第一種至第三種任一種可能的實(shí)現(xiàn)方式,在第一方面的第四種可能的實(shí)現(xiàn)方式中,所述根據(jù)所述物理資源使用信息為所述應(yīng)用分配獨(dú)立的物理資源,并為所述應(yīng)用分配用于直接訪問所述物理資源的接口之后,還包括:
動態(tài)更新所述獨(dú)立的物理資源,并同步更新操作系統(tǒng)內(nèi)核和所述用戶空間系統(tǒng)服務(wù)功能庫中的內(nèi)核管理數(shù)據(jù)結(jié)構(gòu)。
結(jié)合第一方面、第一方面的第一種至第四種任一種可能的實(shí)現(xiàn)方式,在第一方面的第五種可能的實(shí)現(xiàn)方式中,所述根據(jù)所述物理資源使用信息為所述應(yīng)用分配獨(dú)立的物理資源,并為所述應(yīng)用分配用于直接訪問所述物理資源的接口之后,還包括:
設(shè)置異常處理函數(shù),所述異常處理函數(shù)用于當(dāng)所述應(yīng)用觸發(fā)異常時,所述應(yīng)用根據(jù)所述異常處理函數(shù)進(jìn)行異常處理。
結(jié)合第一方面、第一方面的第一種至第五種任一種可能的實(shí)現(xiàn)方式,在第一方面的第六種可能的實(shí)現(xiàn)方式中,所述物理資源使用信息包括以下至少一種:物理內(nèi)存信息、中央處理器CPU信息、寄存器訪問控制權(quán)限、輸入/輸出設(shè)備讀寫權(quán)限及特權(quán)指令執(zhí)行權(quán)限。
第二方面,本發(fā)明實(shí)施例提供一種資源管理裝置,包括:
獲取模塊,用于獲取物理資源使用信息,所述物理資源使用信息用于指示應(yīng)用運(yùn)行所需要的物理資源;
分配模塊,用于根據(jù)所述物理資源使用信息為所述應(yīng)用分配獨(dú)立的物理資源,并為所述應(yīng)用分配用于直接訪問所述物理資源的接口,以使所述應(yīng)用直接訪問所述物理資源。
結(jié)合第二方面,在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述獲取模塊具體用于:
獲取預(yù)設(shè)的所述物理資源使用信息;或者,
根據(jù)所述應(yīng)用發(fā)送的硬件控制數(shù)據(jù)結(jié)構(gòu)獲取所述物理資源使用信息;其中,所述硬件控制數(shù)據(jù)結(jié)構(gòu)包括所述物理資源使用信息。
結(jié)合第二方面或第二方面的第一種可能的實(shí)現(xiàn)方式,在第二方面的第二種可能的實(shí)現(xiàn)方式中,所述分配模塊具體用于:
為所述應(yīng)用建立用戶空間系統(tǒng)服務(wù)功能庫,并將所述應(yīng)用所需的內(nèi)核的管理數(shù)據(jù)結(jié)構(gòu)復(fù)制到所述用戶空間系統(tǒng)服務(wù)功能庫中,其中,所述管理數(shù)據(jù)結(jié)構(gòu)用于直接訪問所述物理資源。
結(jié)合第二方面的第二種可能的實(shí)現(xiàn)方式,在第二方面的第三種可能的實(shí)現(xiàn)方式中,所述分配模塊還用于:為所述應(yīng)用分配用于管理所述物理資源的管理策略;其中,所述用戶空間系統(tǒng)服務(wù)功能庫包括:所述管理策略。
結(jié)合第二方面、第二方面的第一種至第三種任一種可能的實(shí)現(xiàn)方式,在第二方面的第四種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
更新模塊,用于動態(tài)更新所述獨(dú)立的物理資源,并同步更新操作系統(tǒng)內(nèi)核和所述用戶空間系統(tǒng)服務(wù)功能庫中的內(nèi)核管理數(shù)據(jù)結(jié)構(gòu)。
結(jié)合第二方面、第二方面的第一種至第四種任一種可能的實(shí)現(xiàn)方式,在第二方面的第五種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
異常處理模塊,用于設(shè)置異常處理函數(shù),所述異常處理函數(shù)用于當(dāng)所述應(yīng)用觸發(fā)異常時,所述應(yīng)用根據(jù)所述異常處理函數(shù)進(jìn)行異常處理。
結(jié)合第二方面、第二方面的第一種至第五種任一種可能的實(shí)現(xiàn)方式,在第二方面的第六種可能的實(shí)現(xiàn)方式中,所述物理資源使用信息包括以下至少一種:物理內(nèi)存信息、中央處理器CPU信息、寄存器訪問控制權(quán)限、輸入/輸出設(shè)備讀寫權(quán)限及特權(quán)指令執(zhí)行權(quán)限。
本發(fā)明中,通過獲取物理資源使用信息,所述物理資源使用信息用于指示應(yīng)用運(yùn)行所需要的物理資源;進(jìn)一步地,根據(jù)所述物理資源使用信息為所述應(yīng)用分配獨(dú)立的物理資源,并為所述應(yīng)用分配用于直接訪問所述物理資源的接口,以使所述應(yīng)用直接訪問所述物理資源;從而減少了不同應(yīng)用對操作系統(tǒng)內(nèi)核的資源爭用,提升了系統(tǒng)性能。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí) 施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1A為本發(fā)明資源管理方法的操作系統(tǒng)架構(gòu)圖一;
圖1B為本發(fā)明資源管理方法實(shí)施例一的流程示意圖;
圖2A為本發(fā)明資源管理方法的操作系統(tǒng)架構(gòu)圖二;
圖2B為本發(fā)明資源管理方法實(shí)施例三的示意圖;
圖2C為本發(fā)明資源管理方法實(shí)施例四的示意圖;
圖3為本發(fā)明資源管理裝置實(shí)施例一的結(jié)構(gòu)示意圖;
圖4為本發(fā)明資源管理裝置實(shí)施例二的結(jié)構(gòu)示意圖;
圖5為本發(fā)明資源管理裝置實(shí)施例三的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
圖1A為本發(fā)明資源管理方法的操作系統(tǒng)架構(gòu)圖一,圖1B為本發(fā)明資源管理方法實(shí)施例一的流程示意圖。本實(shí)施例的執(zhí)行主體為配置在操作系統(tǒng)內(nèi)核中的資源管理裝置,該裝置可以通過軟件和/或硬件實(shí)現(xiàn)。本實(shí)施例的方案應(yīng)用于通用的操作系統(tǒng)中,實(shí)現(xiàn)了用戶態(tài)應(yīng)用可以繞過操作系統(tǒng)內(nèi)核直接訪問和管理為所述應(yīng)用分配的物理資源。如圖1B所示,本實(shí)施例的方法可以包括:
S101、獲取物理資源使用信息,所述物理資源使用信息用于指示應(yīng)用運(yùn)行所需要的物理資源。
如圖1A所示,操作系統(tǒng)至少包括:硬件資源、操作系統(tǒng)內(nèi)核和應(yīng)用;其中,所述操作系統(tǒng)內(nèi)核中設(shè)置有資源管理裝置。本發(fā)明實(shí)施例中,獲取用于指示應(yīng)用運(yùn)行所需要的物理資源的物理資源使用信息;可選地,所述物理資源使用信息包括以下至少一種:物理內(nèi)存信息、中央處理器CPU信息、寄 存器訪問控制權(quán)限、輸入/輸出設(shè)備讀寫權(quán)限及特權(quán)指令執(zhí)行權(quán)限;可選地,所述物理資源使用信息還可包括其它物理資源信息,本發(fā)明對此并不作限制。
可選地,步驟S101包括:獲取預(yù)設(shè)的所述物理資源使用信息;或者,根據(jù)所述應(yīng)用發(fā)送的硬件控制數(shù)據(jù)結(jié)構(gòu)獲取所述物理資源使用信息;其中,所述硬件控制數(shù)據(jù)結(jié)構(gòu)包括所述物理資源使用信息。
本發(fā)明實(shí)施例中,所述物理資源使用信息可為預(yù)設(shè)的物理資源使用信息,或者為根據(jù)所述應(yīng)用發(fā)送的包括所述物理資源使用信息的硬件控制數(shù)據(jù)結(jié)構(gòu)獲取所述物理資源使用信息。
S102、根據(jù)所述物理資源使用信息為所述應(yīng)用分配獨(dú)立的物理資源,并為所述應(yīng)用分配用于直接訪問所述物理資源的接口,以使所述應(yīng)用直接訪問所述物理資源。
本發(fā)明實(shí)施例中,在獲取到用于指示應(yīng)用運(yùn)行所需要的物理資源的物理資源使用信息后,根據(jù)所述物理資源使用信息為所述應(yīng)用分配獨(dú)立的物理資源(即其它應(yīng)用不可使用的物理資源)(如CPU、物理內(nèi)存、I/O設(shè)備及特權(quán)指令執(zhí)行權(quán)限等),并為所述應(yīng)用分配用于直接訪問所述物理資源的接口,以使所述應(yīng)用通過所述接口直接訪問所述物理資源,即所述應(yīng)用升級為可繞過操作系統(tǒng)內(nèi)核直接訪問所述物理資源(如直接執(zhí)行特權(quán)指令、直接管理CPU、直接管理物理內(nèi)存和直接訪問I/O設(shè)備等)的提權(quán)應(yīng)用;從而減少了不同應(yīng)用對操作系統(tǒng)內(nèi)核的資源爭用,提升了系統(tǒng)性能。
可選地,為所述應(yīng)用分配用于直接訪問所述物理資源的接口包括:為所述應(yīng)用建立用戶空間系統(tǒng)服務(wù)功能庫,并將所述應(yīng)用所需的內(nèi)核的管理數(shù)據(jù)結(jié)構(gòu)復(fù)制到所述用戶空間系統(tǒng)服務(wù)功能庫中,其中,所述管理數(shù)據(jù)結(jié)構(gòu)用于直接訪問所述物理資源。
本發(fā)明實(shí)施例中為了保證營養(yǎng)兼容性,通過為所述應(yīng)用建立用戶空間系統(tǒng)服務(wù)功能庫,并將所述應(yīng)用所需的內(nèi)核的管理數(shù)據(jù)結(jié)構(gòu)復(fù)制到所述用戶空間系統(tǒng)服務(wù)功能庫中的方式為所述應(yīng)用提供用于直接訪問所述物理資源的接口;可選地,根據(jù)所述物理資源初始化處理器虛擬化硬件,并由用戶空間系統(tǒng)服務(wù)功能庫初始化所述獨(dú)立的物理資源,以便于通過所述用戶空間系統(tǒng)服務(wù)功能庫向所述應(yīng)用提供接口(可選地,所述用戶空間系統(tǒng)服務(wù)功能庫中包括所述獨(dú)立的物理資源對應(yīng)的服務(wù)管理函數(shù)例程,所述應(yīng)用執(zhí)行時直接調(diào)用 所述用戶空間系統(tǒng)服務(wù)功能庫中的服務(wù)管理函數(shù)例程即可訪問或管理所述物理資源,無需陷入操作系統(tǒng)內(nèi)核);即提權(quán)后的應(yīng)用可直接通過管理、更新所述用戶空間系統(tǒng)服務(wù)功能庫中的所述管理數(shù)據(jù)結(jié)構(gòu)的操作來維持應(yīng)用的正常運(yùn)行。
可選地,本發(fā)明資源管理方法還包括:為所述應(yīng)用分配用于管理所述物理資源的管理策略;其中,所述用戶空間系統(tǒng)服務(wù)功能庫包括:所述管理策略;以便于所述應(yīng)用通過所述用戶空間系統(tǒng)服務(wù)功能庫中的接口和/或管理策略直接訪問或管理所述物理資源。
在本發(fā)明實(shí)施方式中,所述操作系統(tǒng)可以是開源的Linux操作系統(tǒng),Microsoft公司開發(fā)的Windows操作系統(tǒng),Google公司的Android系統(tǒng)、或Apple公司開發(fā)的iOS系統(tǒng)等操作系統(tǒng),或者是Vxworks這類的嵌入式操作系統(tǒng)。所述操作系統(tǒng)包括用于控制和管理常規(guī)系統(tǒng)任務(wù),例如內(nèi)存管理、存儲設(shè)備控制、電源管理等,以及有助于各種軟硬件之間通信的各種組件和/或驅(qū)動器。
本發(fā)明實(shí)施例中,通過獲取物理資源使用信息,所述物理資源使用信息用于指示應(yīng)用運(yùn)行所需要的物理資源;進(jìn)一步地,根據(jù)所述物理資源使用信息為所述應(yīng)用分配獨(dú)立的物理資源,并為所述應(yīng)用分配用于直接訪問所述物理資源的接口,以使所述應(yīng)用直接訪問所述物理資源;即所述應(yīng)用可繞過操作系統(tǒng)內(nèi)核直接訪問所述物理資源,從而減少了不同應(yīng)用對操作系統(tǒng)內(nèi)核的資源爭用,提升了系統(tǒng)性能。
當(dāng)所述I/O設(shè)備為共享設(shè)備時,為了保證所述應(yīng)用訪問I/O設(shè)備的安全性,可選地,通過消息式系統(tǒng)調(diào)用與其它應(yīng)用共享所述I/O設(shè)備,如通過所述應(yīng)用對應(yīng)的用戶空間系統(tǒng)服務(wù)功能庫提供的接口,向操作系統(tǒng)內(nèi)核發(fā)送請求所述I/O設(shè)備的消息。
可選地,步驟S102之后還包括:動態(tài)更新所述獨(dú)立的物理資源,并同步更新操作系統(tǒng)內(nèi)核和所述用戶空間系統(tǒng)服務(wù)功能庫中的內(nèi)核管理數(shù)據(jù)結(jié)構(gòu)。
本發(fā)明實(shí)施例中,可選地,當(dāng)所述提權(quán)應(yīng)用在運(yùn)行過程中需要更改物理資源(如更改控制權(quán)限或者申請物理內(nèi)存、CPU、I/O設(shè)備等)時,所述提權(quán)應(yīng)用可通過調(diào)用所述用戶空間系統(tǒng)服務(wù)功能庫中包含的用于與操作系統(tǒng)內(nèi)核交互的接口,向所述操作系統(tǒng)內(nèi)核中的所述資源管理裝置發(fā)送請求消息(所 述請求消息中包含所述提權(quán)應(yīng)用需要更新的物理資源信息),以使所述資源管理裝置根據(jù)所述請求消息動態(tài)更新所述獨(dú)立的物理資源;可選地,根據(jù)所述需要更新的物理資源信息更新用戶空間系統(tǒng)服務(wù)功能庫(即用戶態(tài)指定內(nèi)存)和操作系統(tǒng)內(nèi)核中的管理數(shù)據(jù)結(jié)構(gòu)。
可選地,當(dāng)所述提權(quán)應(yīng)用在運(yùn)行過程中需要更改物理資源(如釋放物理內(nèi)存、CPU、I/O設(shè)備等)時,所述提權(quán)應(yīng)用可直接通過所述用戶空間系統(tǒng)服務(wù)功能庫動態(tài)更新獨(dú)立的物理資源,進(jìn)一步地,可通過所述用戶空間系統(tǒng)服務(wù)功能庫更新用戶空間系統(tǒng)服務(wù)功能庫(即用戶態(tài)指定內(nèi)存)中的管理數(shù)據(jù)結(jié)構(gòu),并將修改信息發(fā)送給所述操作系統(tǒng)內(nèi)核中的所述資源管理裝置,以使所述資源管理裝置同步更新操作系統(tǒng)內(nèi)核中的內(nèi)核管理數(shù)據(jù)結(jié)構(gòu)。
可選地,動態(tài)更新所述獨(dú)立的物理資源還包含以下三種情景:
情景1:當(dāng)所述應(yīng)用(即提權(quán)應(yīng)用)每次訪問所述資源管理裝置時,所述資源管理裝置根據(jù)預(yù)設(shè)的資源分配策略和調(diào)用參數(shù)(可選地,所述調(diào)用參數(shù)可包括所述獨(dú)立的物理資源的資源類型和資源大小等參數(shù))判斷是否需要更新為所述應(yīng)用分配的獨(dú)立的物理資源;
情景2:當(dāng)所述應(yīng)用(即提權(quán)應(yīng)用)因觸發(fā)異常陷入到操作系統(tǒng)內(nèi)核態(tài)時,操作系統(tǒng)內(nèi)核判斷是否需要更新為所述應(yīng)用分配的獨(dú)立的物理資源;
情景3:操作系統(tǒng)內(nèi)核周期性地判斷是否需要更新為所述應(yīng)用分配的獨(dú)立的物理資源;若硬件支持,則直接修改任務(wù)權(quán)限,直接更新設(shè)置CPU及寄存器,并動態(tài)調(diào)整其執(zhí)行權(quán)限,如通過設(shè)置虛擬機(jī)控制塊(Virtual machine control block,簡稱VMCS)提供的數(shù)據(jù)結(jié)構(gòu)來改變其對CPU硬件的部分訪問管理權(quán)限;若硬件不支持,則觸發(fā)中斷使所述應(yīng)用(提權(quán)應(yīng)用)陷入內(nèi)核態(tài),并更新為所述應(yīng)用分配的獨(dú)立的物理資源。
可選地,步驟S102之后還包括:設(shè)置異常處理函數(shù),所述異常處理函數(shù)用于當(dāng)所述應(yīng)用觸發(fā)異常時,所述應(yīng)用根據(jù)所述異常處理函數(shù)進(jìn)行異常處理。
本發(fā)明實(shí)施例中,通過設(shè)置異常處理函數(shù),以便當(dāng)所述應(yīng)用(即提權(quán)應(yīng)用)觸發(fā)異常時,所述應(yīng)用根據(jù)所述異常處理函數(shù)進(jìn)行異常處理??蛇x地,異常處理過程分為兩類:第一類為所述用戶空間系統(tǒng)服務(wù)功能庫中包含已定制的異常處理函數(shù),第二類為需要通過操作系統(tǒng)內(nèi)核的處理過程;當(dāng)所述應(yīng)用中發(fā)生除零異常、頁缺失異?;蛘邿o效操作碼(invalid opcode)等時,所 述應(yīng)用通過所述用戶空間系統(tǒng)服務(wù)功能庫中的異常處理函數(shù)進(jìn)行異常處理;當(dāng)所述應(yīng)用在執(zhí)行過程中違反了所述應(yīng)用對應(yīng)的所述物理資源權(quán)限范圍信息時,如讀寫了無讀寫權(quán)限的寄存器、硬件觸發(fā)異?;蛘郀顟B(tài)切換,則所述應(yīng)用保存當(dāng)前的執(zhí)行環(huán)境,加載操作系統(tǒng)內(nèi)核的執(zhí)行環(huán)境,并根據(jù)所述異常處理函數(shù)進(jìn)行異常處理;可選地,當(dāng)所述異常處理完成后,所述資源管理裝置再次將所述應(yīng)用恢復(fù)為提權(quán)應(yīng)用(即重新執(zhí)行步驟S101和步驟S102的過程),以使得所述提權(quán)應(yīng)用繼續(xù)正常執(zhí)行。
結(jié)合圖1A所示,本發(fā)明資源管理方法實(shí)施例二中可以包括如下步驟:
1)應(yīng)用通過操作系統(tǒng)內(nèi)核提供的接口,將用于指示所述應(yīng)用運(yùn)行所需要的物理資源的物理資源使用信息發(fā)送給所述資源管理裝置,可選地,通過硬件控制數(shù)據(jù)結(jié)構(gòu)的形式發(fā)送給所述資源管理裝置;可選地,所述物理資源使用信息包括以下至少一種:物理內(nèi)存信息、中央處理器CPU信息、寄存器訪問控制權(quán)限、輸入/輸出設(shè)備讀寫權(quán)限、特權(quán)指令執(zhí)行權(quán)限及中斷指向。
2)所述操作系統(tǒng)內(nèi)核的資源管理裝置根據(jù)所述應(yīng)用發(fā)送的所述物理資源使用信息為所述應(yīng)用分配獨(dú)立的物理資源,并為所述應(yīng)用分配用于直接訪問所述物理資源的接口,如對所述應(yīng)用的物理內(nèi)存進(jìn)行初始化、對所述應(yīng)用所需的CPU上的寄存器進(jìn)行保存和初始化及構(gòu)建新的中斷向量表等數(shù)據(jù)結(jié)構(gòu);可選地,根據(jù)為所述應(yīng)用分配的所述物理資源初始化處理器虛擬化硬件,并由用戶空間系統(tǒng)服務(wù)功能庫初始化所述物理資源,以便于通過所述用戶空間系統(tǒng)服務(wù)功能庫向所述應(yīng)用提供用于直接訪問所述物理資源的接口。
3)所述資源管理裝置保存所述應(yīng)用當(dāng)前的執(zhí)行環(huán)境,如寄存器值、寄存器狀態(tài)及段寄存器等;并加載所述應(yīng)用升級后的特權(quán)應(yīng)用對應(yīng)的執(zhí)行上下文(即為所述應(yīng)用分配的獨(dú)立的物理資源,如物理內(nèi)存信息、中央處理器CPU信息及CPU寄存器設(shè)置等),以使所述特權(quán)應(yīng)用根據(jù)所述用戶空間系統(tǒng)服務(wù)功能庫,直接訪問或管理所述物理資源;其中,所述用戶空間系統(tǒng)服務(wù)功能庫用于為所述特權(quán)應(yīng)用提供管理所述物理資源的管理策略和用于直接訪問所述物理資源的接口。
4)所述資源管理裝置設(shè)置執(zhí)行入口點(diǎn),并設(shè)置異常處理函數(shù);當(dāng)所述提權(quán)應(yīng)用在執(zhí)行過程中觸發(fā)異常時,保存上下文(如CPU寄存器信息等),切換到下一個進(jìn)程,并根據(jù)所述異常處理函數(shù)進(jìn)行異常處理。
綜上所述,本實(shí)施例中,通過為所述應(yīng)用分配獨(dú)立的物理資源,并為所述應(yīng)用分配用于直接訪問所述物理資源的接口,以使所述應(yīng)用根據(jù)用戶空間系統(tǒng)服務(wù)功能庫直接管理或訪問所述物理資源,而無需通過操作系統(tǒng)內(nèi)核管理物理資源,從而減少了不同應(yīng)用對操作系統(tǒng)內(nèi)核的資源爭用,提升了系統(tǒng)性能。
圖2A為本發(fā)明資源管理方法的操作系統(tǒng)架構(gòu)圖二。如圖2A所示,管理核(core)用于設(shè)置應(yīng)用核(core)的指令執(zhí)行權(quán)限、寄存器讀寫權(quán)限及I/O設(shè)備等;提權(quán)應(yīng)用通過定制的用戶空間系統(tǒng)服務(wù)功能庫(LibXOS)直接訪問或管理所述提權(quán)應(yīng)用對應(yīng)的獨(dú)立的物理資源;所述資源管理裝置用于進(jìn)程提權(quán)(即將普通應(yīng)用升級為提權(quán)應(yīng)用,具體地,通過管理核來設(shè)置應(yīng)用核上執(zhí)行進(jìn)程的資源權(quán)限范圍;其中,普通應(yīng)用每次需要通過操作系統(tǒng)內(nèi)核訪問或操作物理資源,提權(quán)應(yīng)用可直接根據(jù)其對應(yīng)的用戶空間系統(tǒng)服務(wù)功能庫直接訪問或操作其對應(yīng)的物理資源);所述所述資源管理裝置還用于對所述提權(quán)應(yīng)用超出執(zhí)行權(quán)限時的異常處理;用戶空間系統(tǒng)服務(wù)功能庫通過消息式系統(tǒng)調(diào)用來獲取遠(yuǎn)端的I/O服務(wù);另外,當(dāng)提權(quán)應(yīng)用不能通過用戶空間系統(tǒng)服務(wù)功能庫實(shí)現(xiàn)的某內(nèi)核功能時,可通過請求隊(duì)列寫到指定內(nèi)存,并由服務(wù)線程讀取響應(yīng)。
圖2B為本發(fā)明資源管理方法實(shí)施例三的示意圖,如圖2B所示,具體地描述了在用戶態(tài)空間進(jìn)行頁表管理的方法??蛇x地,在對普通應(yīng)用進(jìn)行提權(quán)時,將所述普通應(yīng)用在操作系統(tǒng)內(nèi)核中的頁表數(shù)據(jù)結(jié)構(gòu)拷貝到指定物理內(nèi)存中,并由用戶態(tài)空間系統(tǒng)服務(wù)功能庫里的頁表管理模塊進(jìn)行管理,包括對頁表的讀寫和/或更新等操作。當(dāng)所述應(yīng)用從非根(non-root)模式陷入到根(root)模式時,即因?yàn)橹鲃踊虮粍?如異常)等原因陷入操作系統(tǒng)內(nèi)核時,需要將所述頁表數(shù)據(jù)結(jié)構(gòu)同步到原來內(nèi)核管理的頁表結(jié)構(gòu)。由于頁表里面是對虛擬內(nèi)存和物理內(nèi)存進(jìn)行離散的映射,因此,在拷貝頁表數(shù)據(jù)結(jié)構(gòu)的時,對于已經(jīng)映射在內(nèi)核頁表里的物理內(nèi)存,需要在內(nèi)核里進(jìn)行鎖定,不讓換出;而對于頁表里面還未填充的項(xiàng),則是由用戶態(tài)系統(tǒng)服務(wù)功能庫根據(jù)應(yīng)用請求、執(zhí)行過程狀態(tài)和預(yù)留物理內(nèi)存等信息來進(jìn)行管理的。
圖2C為本發(fā)明資源管理方法實(shí)施例四的示意圖。如圖2C所示,具體描述了通過用戶空間系統(tǒng)服務(wù)功能庫(LibXOS)進(jìn)行管理、申請、分配和釋放 內(nèi)存的內(nèi)容。LibXOS中的內(nèi)存管理主要提供兩部分功能,其中,1)第一部分功能為:對于應(yīng)用所需的申請和釋放內(nèi)存的函數(shù)例程,LibXOS只管理在對應(yīng)用提權(quán)時資源管理裝置分配的物理內(nèi)存,因此所有申請和釋放操作都只針對預(yù)留的所述物理內(nèi)存;但當(dāng)所述物理內(nèi)存耗盡時,就需要通過主動與操作系統(tǒng)內(nèi)核交互的方式向操作系統(tǒng)內(nèi)核申請新的物理內(nèi)存,以增加為所述應(yīng)用預(yù)留的物理內(nèi)存,申請新的物理內(nèi)存的過程即為主動陷入操作系統(tǒng)方式,即通過vmcall陷入操作系統(tǒng)內(nèi)核,然后根據(jù)傳遞的參數(shù),由操作系統(tǒng)內(nèi)核中的異常處理函數(shù)來響應(yīng),并分配物理內(nèi)存,最后返回;2)第二部分功能為:用戶態(tài)缺頁異常處理,其中,缺頁異常是指頁表中的映射項(xiàng)不存在時,訪問該虛擬地址所觸發(fā)的硬件異常;現(xiàn)有Linux和大部分其它操作系統(tǒng)都通過內(nèi)核的異常處理函數(shù)來完成的,但本發(fā)明實(shí)施例中在對普通應(yīng)用提權(quán)時更新初始化了現(xiàn)有硬件異常處理函數(shù),并設(shè)置了VMCS數(shù)據(jù)結(jié)構(gòu),使得在發(fā)生缺頁異常時,硬件會將缺頁異常拋到用戶態(tài),并由用戶空間系統(tǒng)服務(wù)功能庫中的用戶態(tài)缺頁異常處理函數(shù)進(jìn)行處理,具體地,可按照現(xiàn)有操作系統(tǒng)中按需調(diào)頁的方式來編寫用戶態(tài)缺頁異常處理函數(shù),也可采用提前調(diào)頁的方式來編寫用戶態(tài)缺頁異常處理函數(shù),因此,提升了不同內(nèi)存使用需求的應(yīng)用的系統(tǒng)性能。
圖3為本發(fā)明資源管理裝置實(shí)施例一的結(jié)構(gòu)示意圖,如圖3所示,本實(shí)施例提供的資源管理裝置30可以包括:獲取模塊301及分配模塊302。
其中,獲取模塊301用于獲取物理資源使用信息,所述物理資源使用信息用于指示應(yīng)用運(yùn)行所需要的物理資源;
分配模塊302用于根據(jù)所述物理資源使用信息為所述應(yīng)用分配獨(dú)立的物理資源,并為所述應(yīng)用分配用于直接訪問所述物理資源的接口,以使所述應(yīng)用直接訪問所述物理資源。
本實(shí)施例的資源管理裝置可以用于執(zhí)行本發(fā)明上述資源管理方法實(shí)施例一中的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
可選地,作為一種可實(shí)施的方式,在圖3所示的實(shí)施方式的基礎(chǔ)上,所述獲取模塊301具體用于:
獲取預(yù)設(shè)的所述物理資源使用信息;或者,
根據(jù)所述應(yīng)用發(fā)送的硬件控制數(shù)據(jù)結(jié)構(gòu)獲取所述物理資源使用信息;其中,所述硬件控制數(shù)據(jù)結(jié)構(gòu)包括所述物理資源使用信息。
可選地,作為另一種可實(shí)施的方式,在圖3所示的實(shí)施方式的基礎(chǔ)上,所述分配模塊302具體用于:為所述應(yīng)用建立用戶空間系統(tǒng)服務(wù)功能庫,并將所述應(yīng)用所需的內(nèi)核的管理數(shù)據(jù)結(jié)構(gòu)復(fù)制到所述用戶空間系統(tǒng)服務(wù)功能庫中,其中,所述管理數(shù)據(jù)結(jié)構(gòu)用于直接訪問所述物理資源。
可選地,所述分配模塊還用于:為所述應(yīng)用分配用于管理所述物理資源的管理策略;其中,所述用戶空間系統(tǒng)服務(wù)功能庫包括:所述管理策略。
可選地,作為另一種可實(shí)施的方式,如圖4所示,圖4為本發(fā)明資源管理裝置實(shí)施例二的結(jié)構(gòu)示意圖,在圖3所示的實(shí)施方式的基礎(chǔ)上,資源管理裝置30還包括:更新模塊303用于動態(tài)更新所述獨(dú)立的物理資源,并同步更新操作系統(tǒng)內(nèi)核和所述用戶空間系統(tǒng)服務(wù)功能庫中的內(nèi)核管理數(shù)據(jù)結(jié)構(gòu);
可選地,還包括:異常處理模塊304用于設(shè)置異常處理函數(shù),所述異常處理函數(shù)用于當(dāng)所述應(yīng)用觸發(fā)異常時,所述應(yīng)用根據(jù)所述異常處理函數(shù)進(jìn)行異常處理。
可選地,所述物理資源使用信息包括以下至少一種:物理內(nèi)存信息、中央處理器CPU信息、寄存器訪問控制權(quán)限、輸入/輸出設(shè)備讀寫權(quán)限及特權(quán)指令執(zhí)行權(quán)限。
本實(shí)施例的資源管理裝置可以用于執(zhí)行本發(fā)明上述資源管理方法實(shí)施例中的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
圖5為本發(fā)明資源管理裝置實(shí)施例三的結(jié)構(gòu)示意圖,如圖5所示,本實(shí)施例提供的資源管理裝置50可以包括處理器501和存儲器502。資源管理裝置50還可以包括數(shù)據(jù)接口單元503,該數(shù)據(jù)接口單元503可以和處理器501相連。其中,數(shù)據(jù)接口單元503用于輸入/輸出數(shù)據(jù)信息,存儲器502用于存儲執(zhí)行指令。當(dāng)資源管理裝置50運(yùn)行時,處理器501與存儲器502之間通信,處理器501調(diào)用存儲器502中的執(zhí)行指令,用以執(zhí)行上述資源管理方法實(shí)施例中的操作。
本實(shí)施例的資源管理裝置可以用于執(zhí)行本發(fā)明上述資源管理方法實(shí)施例中的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
在本發(fā)明所提供的幾個實(shí)施例中,應(yīng)該理解到,所揭露的裝置和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時可以有另外 的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個實(shí)施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨(dú)物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。
上述以軟件功能單元的形式實(shí)現(xiàn)的集成的單元,可以存儲在一個計(jì)算機(jī)可讀取存儲介質(zhì)中。上述軟件功能單元存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備(可以是個人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本發(fā)明各個實(shí)施例所述方法的部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(Read-Only Memory,ROM)、隨機(jī)存取存儲器(Random Access Memory,RAM)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
本領(lǐng)域技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,僅以上述各功能模塊的劃分進(jìn)行舉例說明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。上述描述的裝置的具體工作過程,可以參考前述方法實(shí)施例中的對應(yīng)過程,在此不再贅述。
本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述各方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計(jì)算機(jī)可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實(shí)施例的步驟;而前述的存儲介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
最后應(yīng)說明的是:以上各實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對 其限制;盡管參照前述各實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。