TWI574158B - 具應用程式資訊感知的資料處理方法以及系統 - Google Patents
具應用程式資訊感知的資料處理方法以及系統 Download PDFInfo
- Publication number
- TWI574158B TWI574158B TW104112793A TW104112793A TWI574158B TW I574158 B TWI574158 B TW I574158B TW 104112793 A TW104112793 A TW 104112793A TW 104112793 A TW104112793 A TW 104112793A TW I574158 B TWI574158 B TW I574158B
- Authority
- TW
- Taiwan
- Prior art keywords
- application
- application layer
- layer information
- scheduler
- data path
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
Description
本發明是有關於一種資料處理方法以及相關的系統,且特別是有關於一種具應用程式資訊感知的資料處理方法以及相關的系統。
現代的電子裝置通常會同時執行多個應用程式。當運行於作業系統,這些應用程式可發送輸入/輸出(Input/Output,I/O)要求以存取儲存裝置。
然而,在傳統的系統中,I/O排程器(scheduler)通常使用自身的優先次序(priority)排程方案來決定I/O要求的服務順序。在對此些要求進行排程時,I/O排程器並不會感知應用程式層資訊。
舉例來說,當兩個應用程式同時要存取儲存裝置,來自這兩個應用程式的I/O要求可能會以錯開的順序抵達I/O排程器,而這些I/O要求將會按照其抵達的順序而被服務。在此情況下,這兩個工作都會被減緩,進而使整體的系統產量降低。
因此,如何提供一種具應用程式資訊感知的資料處理方法以及相關的系統,使得I/O排程器可基於應用程式資訊來排程要求,乃目前業界所致力的課題之一。
本發明係有關於一種具應用程式資訊感知的資料處理方法以及相關的系統。
依據本發明之一實施例,係提供一種資料處理系統。資料處理系統包括儲存裝置、介面模組以及排程器。介面模組由耦接至儲存裝置的處理器所實現,其經由第一資料路徑發送非優先次序化要求,並經由第二資料路徑傳遞應用程式的應用程式層資訊。排程器耦接至第一及第二資料路徑,其分別依據從該第一及第二資料路徑所接收到的非優先次序化要求以及應用程式層資訊致能對儲存裝置的存取。
依據本發明之另一實施例,係提供一種資料處理系統。資料處理系統包括處理器、第一記憶體以及第二記憶體。該處理器透過第一資料路徑發送非優先次序化要求,並透過第二資料路徑傳遞應用程式的應用程式層資訊。第一記憶體耦接至該處理器,其儲存由該處理器所發送的應用程式層資訊。第二記憶體耦接至該處理器,其中該處理器依據儲存於第一記憶體中的應用程式層資訊,對該非優先次序化要求進行排程。
依據本發明之又一實施例,提供一種由處理器實現的資料處理方法,其包括以下步驟:經由第一資料路徑發送非優
先次序化要求;經由第二資料路徑傳遞應用程式的應用程式層資訊;依據接收自第一資料路徑的非優先次序化要求以及接收自第二資料路徑的應用程式層資訊,致能對儲存裝置的存取。
為了對本發明之上述及其它方面有更佳的瞭解,下文特舉較佳實施例,並配合所附圖式,作詳細說明如下:
100、200、300‧‧‧資料處理系統
102‧‧‧介面模組
104‧‧‧排程器
106‧‧‧儲存裝置
108‧‧‧虛擬檔案系統
110‧‧‧檔案系統
112‧‧‧裝置驅動器
114‧‧‧分享記憶體
116‧‧‧虛擬檔案
118‧‧‧特定驅動器
202、202’、302‧‧‧虛擬機器
204‧‧‧超管理器
500、800‧‧‧流程圖
502、504、506、508、510、512、514、516、802、804、806、808、810、812、814、816、818、820、822、824‧‧‧步驟
V21‧‧‧介面模組
V22‧‧‧訪客虛擬檔案系統
V23‧‧‧訪客檔案系統
V24‧‧‧訪客排程器
V25‧‧‧訪客裝置驅動器
V26‧‧‧虛擬化儲存裝置
V27‧‧‧服務驅動器
V31‧‧‧介面模組
V32‧‧‧應用程式框架
V33‧‧‧資源管理器
V34‧‧‧程式庫與執行期模組
APP‧‧‧應用程式
PA1、PA1’、PA1”‧‧‧第一資料路徑
PA2、PA2’、PA2”‧‧‧第二資料路徑
PU‧‧‧處理器
Req1~Req7‧‧‧要求
PID‧‧‧程序辨識碼
AP-ID‧‧‧應用程式辨識碼
VM-ID‧‧‧虛擬機器辨識碼
VM-Batch1、VM-Batch2‧‧‧虛擬機器批次單元
AP-Batch1~AP-Batch3‧‧‧應用程式批次單元
P-Batch1~P-Batch4‧‧‧程序批次單元
TB1、TB2‧‧‧映射表
第1圖係依據本發明之一實施例之資料處理系統之例示I/O要求流。
第2A圖繪示依據本發明之一實施例之資料處理系統之例示I/O要求流。
第2B圖繪示依據本發明之另一實施例之虛擬機器之例示I/O要求流。
第3圖繪示依據本發明之一實施例之資料處理系統之例示I/O要求流。
第4圖繪示依據本發明之一實施例之例示要求批次程序。
第5圖繪示依據本發明之一實施例之要求批次程序的流程圖。
第6圖繪示依據本發明之一實施例之內排程程序的示意圖。
第7圖繪示依據本發明之一實施例之跨排程程序之示意圖。
第8圖繪示依據本發明之一實施例之排程程序的流程圖。
以下係提出實施例進行詳細說明,實施例僅用以作
為範例說明,並不會限縮本揭露欲保護之範圍。此外,實施例中之圖式係省略不必要之元件,以清楚顯示本揭露之技術特點。
第1圖係依據本發明之一實施例之資料處理系統100之例示I/O要求流。資料處理系統100的I/O基本架構主要包括介面模組102、排程器104以及儲存裝置106。
介面模組102可以應用程式/程式模組的方式來實現,或實現於堆疊在系統100中應用程式層下方的一層。排程器104可以軟體、韌體或硬體(例如邏輯電路)的方式來實現。在一實施例中,排程器104亦可由處理器PU來實現。需注意第1圖中排程器104係實現於介面模組102以及裝置驅動器112之間,但本發明並不限於此。在一實施例中,排程器104亦可實現於裝置驅動器112以及儲存裝置106之間。儲存裝置106可透過大多的非揮發性記憶體來實現,例如NOR/NAND快閃記憶體、相變化記憶體(PCM)、可變電阻式記憶體(ReRAM)、自旋磁性記憶體(STT-MRAM)等等。
介面模組102可經由兩獨立的資料路徑PA1及PA2發送應用程式相關的資料。一方面,介面模組102可回應於應用程式APP所發送的I/O要求,發送一或多個非優先次序化(non-prioritized)要求。此些非優先次序化要求係透過第一資料路徑PA1來傳遞。另一方面,介面模組102可監視應用程式APP以收集對應的應用程式層資訊,並透過第二資料路徑PA2傳遞此應用程式層資訊。在一實施例中,應用程式層資訊可來自虛擬機
器、作業系統、應用程式設計者等等,或者由介面模組102估計而得。應用程式層資訊可包括一或多個應用程式的優先次序等級以及一或多個應用程式的操作狀態至少其中之一。在一實施例中,應用程式層資訊可包括用以指示I/O要求來源的虛擬機器辨識碼、應用程式辨識碼以及程序辨識碼。
當應用程式APP在操作系統上執行,其可發送優先次序化(prioritized)的I/O要求。優先次序化的I/O要求例如是一種被分派對應優先次序等級的I/O要求,例如高優先次序、中優先次序或低優先次序。此優先次序等級決定了I/O要求在系統中的被服務順序。優先次序方案可依據任一應用程式形式來決定,像是前景/背景、I/O強化(intensive)/非I/O強化等等、或者由應用程式設計者來定義。一般而言,一旦優先次序化的I/O要求被服務過,其優先次序資訊會變成不可見(invisible)。如第1圖所示,當應用程式APP所發送的優先次序化I/O要求經過介面模組102,其即變成非優先次序化的I/O要求(也就是不具有優先次序資訊)。
如前所述,第一資料路徑PA1可用來傳遞非優先次序化的I/O要求。在一實施例中,第一資料路徑PA1可包括I/O基礎架構,像是虛擬檔案系統108以及檔案系統110。虛擬檔案系統108可以是檔案系統110上方的抽象層(abstraction layer)。檔案系統110可用來控制資料如何被存入至或取出自儲存裝置106。可以理解的是,本發明並不限於此。第一資料路徑PA1可
依據實際的設計或需求而具有各式的I/O基礎架構。
耦接至第一及第二資料路徑PA1及PA2的排程器104可依據接收自第一資料路徑PA1的一或多個非優先次序化要求以及接收自第二資料路徑PA2的應用程式層資訊,致能對儲存裝置106的存取。舉例來說,排程器104可發送重新形成的優先次序化的I/O要求至系統100的裝置驅動器112,以致能儲存裝置106的硬體功能。
上述資料處理系統100中的I/O基本架構的各層可以不同的方式來實現。在一實施例中,上述資料處理系統100中的I/O基本架構的各層,除了底層的儲存裝置106以外,皆可透過處理器PU來實現。在另一實施例中,I/O基本架構中的各層可分別由對應的邏輯電路或硬體模組來實現。又一實施例中,I/O基本架構中的部份層可由處理器PU來實現,其它層則可以由電路/硬體模組來實現。
第二資料路徑PA2可使應用程式層資訊的傳遞獨立於第一資料路徑PA1。因此,應用程式層資訊可在不修改原始I/O要求格式的情況下被傳遞至排程器104。
如第1圖所示,第二資料路徑PA2繞過第一資料路徑PA1中的虛擬檔案系統108以及檔案系統110,並直接耦接至排程器104。因此,即便資料處理系統100包括可能會抹除優先次序資訊的I/O基礎架構,此優先次序資訊仍可被傳遞至系統100的較低層(例如排程器104)以進行I/O要求的排程。
透過第二資料路徑PA2傳遞應用程式層資訊可以各種方式來實現。舉例來說,第二資料路徑PA2可包括分享記憶體114以儲存取得自介面模組102的應用程式層資訊,使得排程器104可從分享記憶體114取得應用程式層資訊。分享記憶體114可以是儲存裝置106的一部份,或是獨立於儲存裝置106的記憶體空間。在一實施例中,分享記憶體114包括揮發性記憶體,例如動態隨機存記憶體(DRAM)。
在另一例子中,第二資料路徑PA2可包括虛擬檔案116以記錄取得自介面模組102的應用程式層資訊,使得排程器104可從虛擬檔案116取得應用程式層資訊。舉例來說,在監視應用程式APP的過程中,介面模組102可建立虛擬檔案116以記錄所收集到的應用程式層資訊。排程器104可透過存取虛擬檔案116以取得應用程式層資訊。
又一例子中,第二資料路徑PA2可包括特定驅動器118以直接地將所收集到的應用程式層資訊發送至排程器104。可以理解的是,本發明並不限於上述的例子。用以傳遞應用程式層資訊的第二資料路徑PA2可依據實際的需求而以其它方式來實現。舉例來說,第二資料路徑亦可以額外的應用程式或其它軟體方法來實現。
第2A圖繪示依據本發明之一實施例之資料處理系統200之例示I/O要求流。資料處理系統200與資料處理系統100間的主要差異在於,資料處理系統200更包括多個虛擬機器202
以及超管理器204(hypervisor)。虛擬機器202可以是一個模擬的電腦系統,並具有對應的作業系統。應用程式APP係於作業系統上獨立地運作。超管理器204用以管理此些虛擬機器202。也就是說,超管理器204可視為虛擬機器的管理者,其允許多個操作系統同時地運行於資料處理系統200。
在第2A圖的例子中,各個虛擬機器202包括類似於第1圖的虛擬化I/O基礎架構。如第2A圖所示,各虛擬機器202有其對應的介面模組V21、訪客虛擬檔案系統V22、訪客檔案系統V23、訪客排程器V24、訪客裝置驅動器V25以及虛擬化儲存裝置V26。類似於先前的實施例,非優先次序化要求可透過穿過虛擬機器202中虛擬化I/O基礎架構的第一資料路徑PA1進行傳遞,而虛擬機器202中的介面模組V21則可透過第二資料路徑PA2傳遞關於應用程式APP的應用程式層資訊。
第2B圖繪示依據本發明之另一實施例之虛擬機器202’之例示I/O要求流。虛擬機器202’與第2A圖所示的虛擬機器202的主要差別在於,虛擬機器202’更包括服務驅動器V27以傳遞應用程式層資訊至內部的訪客排程器V24。在此情況下,虛擬機器202’中的虛擬化儲存裝置V26亦可感知來自應用程式層的資訊。需注意的是,由於優先次序的資訊係終止於虛擬化儲存裝置V26,故虛擬化儲存裝置V26的輸出仍會變回非優先次序化要求。因此,應用程式層資訊仍係透過第二資料路徑PA2’來傳遞,如第2B圖所示。
第3圖繪示依據本發明之一實施例之資料處理系統300之例示I/O要求流。資料處理系統300與資料處理系統200的主要差別在於,資料處理系統300包括不具訪客作業系統的虛擬機器302。此虛擬系統可例如實現於Android/iOS的智慧型手機。
在第3圖的例子中,虛擬機器302包括介面模組V31、應用程式框架(framework)V32、資源管理器V33以及程式庫與執行期(library & runtime)模組V34。類似於先前的實施例,非優先次序化要求可透過穿過虛擬機器302中虛擬化I/O基礎架構的第一資料路徑PA1”進行傳遞,而虛擬機器302中的介面模組V31則可透過第二資料路徑PA2”傳遞關於應用程式APP的應用程式層資訊。
如前所述,排程器104可依據非優先次序化要求以及應用程式層資訊致能對儲存裝置106的存取。舉例來說,若應用程式層資訊包含優先次序等級資訊,排程器104可利用此優先次序等級資訊來執行要求的批次(batching)及排程(scheduling)程序,以管理對儲存裝置106的存取。
第4圖繪示依據本發明之一實施例之例示要求批次程序。在此實施例中,排程器104係將要求形成為批次單元(batch)。如第4圖所示,程序批次單元P-BATCH1包含要求Req1及Req4,其具有相同的程序辨識碼PID:1;程序批次單元P-BATCH2包含要求Req2,其具有程序辨識碼PID:2;程序批
次單元P-BATCH3包含要求Req2及Req6,其具有相同的程序辨識碼PID:3;程序批次單元P-BATCH4包含要求Req3及Req5,其具有相同的程序辨識碼PID:4。由於排程器104可從第二資料路徑PA2取得應用程式層資訊,排程器104係知悉各程序所對應的應用程式辨識碼(AP-ID)及/或虛擬機器辨識碼(VM-ID)。也就是說,排程器104可辨識出哪個程序係來自哪個應用程式及虛擬機器(若有的話)。
以三級的批次單元階層為例(虛擬機器層、應用程式層、程序層),在排程器104依據應用程式層資訊辨識出各個非優先次序化要求所對應的虛擬機器/應用程式後,排程器104可將來自相同虛擬機器的非優先次序化要求組成一個虛擬機器層批次單元。在此虛擬機器層批次單元中,排程器104進一步將來自相同應用程式的要求組成一個應用程式層批次單元。在此應用程式層批次單元中,排程器104將來自相同程序的要求組成一個程序批次單元。
如第4圖所示,對應相同應用程式辨識碼AP-ID:1及虛擬機器辨識碼VM-ID:1的程序批次單元P-BATCH1及P-BATCH2,係被分配至相同的應用程式批次單元AP-BATCH1以及相同的虛擬機器批次單元VM-Batch1;而具有AP-ID:2及VM-ID:1的程序批次單元P-BATCH3,係被分配至同一虛擬機器批次單元VM-Batch1中的另一應用程式批次單元AP-BATCH2。基於相同的要求批次程序策略,具有AP-ID:3及
VM-ID:2的程序批次單元P-BATCH4,係被分配至虛擬機器批次單元VM-Batch2中的應用程式批次單元AP-BATCH3。
第5圖繪示依據本發明之一實施例之要求批次程序的流程圖500。要求批次程序例如起始於排程器104自應用程式APP接收到新要求之時。接著,在步驟502,排程器104可查閱映射表以依據新要求的程序辨識碼取得虛擬機器辨識碼以及應用程式辨識碼。映射表的一例係如第4圖中的表TB1所示,當中紀錄各個程序辨識碼(PID)所對應的應用程式辨識碼(AP-ID)以及虛擬機器辨識碼(VM-ID)。可以理解的是,本發明並不以此為限。映射表可以各種不同的方式來實現,像是列表、查閱表、或其它可記錄各個程序/要求所對應的應用程式辨識碼及虛擬機器辨識碼(若有的話)的資料形式。
在步驟504,排程器104判斷具有VM-ID的虛擬機器批次單元是否存在。若否,則在步驟506,具有VM-ID的新虛擬機器批次單元係被創建。若是,程序接續至步驟508,排程器104判斷具有AP-ID的應用程式批次單元是否存在。若步驟508的判斷結果是否定的,則在步驟510創建具有AP-ID的新應用程式批次單元。若步驟508的判斷結果是肯定的,則程序進行至步驟510。排程器104接著在步驟512判斷具有PID的程序批次單元是否存在。若不存在這樣的程序批次單元,則在步驟514創建具有P-ID的新程序批次單元,而此新要求係被添加至對應的虛擬機器批次單元、應用程式批次單元以及程序批次單元,如步驟516
所示。
在要求被組成為批次單元後,排程器104可執行內排程(intra scheduling)策略及/或跨排程(inter scheduling)策略以安排批次單元的服務順序。在一實施例中,內排程策略用以處理一虛擬機器批次單元(或具有最高階層等級的批次單元)中批次單元的服務順序。在一實施例中,跨排程策略用以處理多個優先次序化的批次單元間的服務順序。
第6圖繪示依據本發明之一實施例之內排程程序的示意圖。在一實施例中,內排程程序係依循以下之規則:1.虛擬機器批次單元中的要求係連續地被排程;2.在虛擬機器批次單元中,應用程式批次單元中的要求係連續地被排程;3.在應用程式批次單元中,程序批次單元中的要求係連續地被排程;以及4.在程序批次單元中的要求係以I/O位址順序被排程。
基於上述規則,要求Req1、Req2、Req4、Req6及Req7的服務順序依序為Req1→Req4→Req7→Req2→Req6,如第6圖所示。
第7圖繪示依據本發明之一實施例之跨排程程序之示意圖。在一實施例中,跨排程程序係依循以下之規則:1.優先次序化各批次單元;以及
2.以特定方式對批次單元進行排程,例如輪替制(round-robin)、權重輪替制或基於服務質量(quality-of-service,QoS)的排程策略等等,以確保公平性以及服務質量。
在第7圖的例子中,排程器104係依據優先次序映射表TB2安排不同階層等級的批次單元的服務順序。如第7圖所示,首先,具有最高優先次序的虛擬機器批次單元VM-Batch2係被選擇。由於虛擬機器批次單元VM-Batch2僅包括只含有程序批次單元P-Batch4的應用程式批次單元AP-Batch3,故程序批次單元P-Batch4中的要求Req3及Req5係被服務。接著,具有較低優先次序的虛擬機器批次單元VM-Batch1被選擇。在虛擬機器批次單元VM-Batch1當中,具有較高優先次序的應用程式批次單元AP-Batch1被選擇。應用程式批次單元AP-Batch1包括程序批次單元P-Batch1以及程序批次單元P-Batch2,當中前者具有較高的優先次序。因此,程序批次單元P-Batch1中的要求Req1及Req4被選擇服務。接著,程序批次單元P-batch2中的要求Req7被選擇服務。最後,僅包括程序批次單元P-batch 3的應用程式批次單元AP-batch2被選擇,而程序批次單元P-Batch3中的要求Req2及Req6係接著被選擇服務。
第8圖繪示依據本發明之一實施例之排程程序的流程圖800。在第8圖的例子中,排程器104可依據應用程式層資訊中的對應優先次序等級來優先次序化各虛擬機器層批次單元、各應用程式層批次單元以及各程序層批次單元。
此程序例如於I/O排程器中存有至少一批次單元時起始。在步驟802,具有最高優先次序的虛擬機器批次單元係被選擇。在步驟804,排程器104於虛擬機器批次單元中選擇具有最高優先次序的應用程式批次單元。在步驟806,在所選的應用程式批次單元中,排程器104選擇具有最高優先次序的程序批次單元。在步驟808,排程器104發送所選程序批次單元中的要求,並以I/O位址順序存取儲存裝置。在步驟810,被發送的要求係自程序批次單元中移除。
在步驟812,排程器104檢查所選的程序批次單元是否是空的(empty)。若是,則在步驟814移除空的程序批次單元。若否,則接續步驟808。
再一次地,在步驟816,排程器104檢查所選的應用程式批次單元是否是空的。若是,則在步驟818移除空的應用程式批次單元。若否,則程序回到步驟806。
接著,在步驟820,排程器104檢查所選的虛擬機器批次單元是否是空的。若是,則在步驟822移除空的虛擬機器批次單元。若否,則程序回到步驟804。在步驟824,排程器104判斷是否還有任何虛擬機器批次單元。若有,則程序重回到步驟802。
總而言之,本發明提供介面模組以監視應用程式的狀態並收集應用程式層資訊。收集到的應用程式層資訊可透過所提出的介面模組,經由獨立的資料路徑而被傳遞至I/O排程器,
使得I/O要求可依據應用程式層資訊而被排程。
綜上所述,雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100‧‧‧資料處理系統
102‧‧‧介面模組
104‧‧‧排程器
106‧‧‧儲存裝置
108‧‧‧虛擬檔案系統
110‧‧‧檔案系統
112‧‧‧裝置驅動器
114‧‧‧分享記憶體
116‧‧‧虛擬檔案
118‧‧‧特定驅動器
PA1‧‧‧第一資料路徑
PA2‧‧‧第二資料路徑
APP‧‧‧應用程式
Claims (12)
- 一種資料處理系統,包括:一儲存裝置;一介面模組,由耦接至該儲存裝置的一處理器所實現,該介面模組經由一第一資料路徑發送一非優先次序化要求,並經由一第二資料路徑傳遞一應用程式層資訊;以及一排程器,耦接至該第一資料路徑及該第二資料路徑,該排程器分別依據從該第一資料路徑及該第二資料路徑所接收到的該非優先次序化要求以及該應用程式層資訊致能對該儲存裝置的存取,其中該第一資料路徑包括一虛擬檔案系統以及一檔案系統。
- 如申請專利範圍第1項所述之資料處理系統,其中該介面模組監視一應用程式以收集該應用程式層資訊,該應用程式層資訊包括該應用程式的一優先次序等級以及該應用程式的一操作狀態至少其中之一。
- 如申請專利範圍第1項所述之資料處理系統,其中該第二資料路徑包括一分享記憶體以儲存從該介面模組所取得的該應用程式層資訊,其中該分享記憶體所儲存的該應用程式層資訊係被提供至該排程器以執行要求排程程序。
- 如申請專利範圍第1項所述之資料處理系統,其中該第二資料路徑包括一虛擬檔案以紀錄從該介面模組所取得的該應用程式層資訊,其中該虛擬檔案所記錄的該應用程式層資訊係被 提供至該排程器以執行要求排程程序。
- 如申請專利範圍第1項所述之資料處理系統,其中該第二資料路徑包括一服務驅動器以發送從該介面模組所取得的該應用程式層資訊至該排程器。
- 如申請專利範圍第1項所述之資料處理系統,其中該排程器執行要求批次程序,該要求批次程序包括:依據該應用程式層資訊辨識該非優先次序化要求所對應的虛擬機器以及所對應的應用程式;群組化來自同一個虛擬機器的要求,以形成一虛擬機器層批次單元;群組化來自同一個應用程式的要求,以形成一應用程式層批次單元;以及群組化來自同一個程序的要求,以形成一程序層批次單元。
- 如申請專利範圍第6項所述之資料處理系統,其中該虛擬機器層批次單元中的該些要求被連續地被排程;該虛擬機器層批次單元中的該些要求被連續地被排程;該程序層批次單元中的該些要求係以一輸入輸出位址順序進行排程;該排程器依據該應用程式層資訊中的一優先次序等級對該虛擬機器層批次單元、該應用程式層批次單元以及該程序層批次單元排列優先次序。
- 如申請專利範圍第1項所述之資料處理系統,該第二資料路徑繞過該第一資料路徑的該虛擬檔案系統以及該檔案系統,並直接地耦接至該排程器,該資料處理系統更包括: 一虛擬機器,由該處理器所實現,其中該虛擬機器包括:一虛擬儲存器;以及一訪客排程器,依據接收自該介面模組的該非優先次序化要求以及該應用程式層資訊,致能對該虛擬儲存器的存取。
- 一種資料處理系統,包括:一處理器,透過一第一資料路徑發送一非優先次序化要求,並透過一第二資料路徑傳遞一應用程式的應用程式層資訊;一第一記憶體,耦接至該處理器,該第一記憶體儲存由該處理器所發送的該應用程式層資訊;以及一第二記憶體,耦接至該處理器,其中該處理器依據儲存於該第一記憶體中的該應用程式層資訊,對該非優先次序化要求進行排程。
- 一種由處理器實現的資料處理方法,包括:經由一第一資料路徑發送一非優先次序化要求;經由一第二資料路徑傳遞一應用程式的應用程式層資訊;以及依據接收自該第一資料路徑的該非優先次序化要求以及接收自該第二資料路徑的該應用程式層資訊,致能對一儲存裝置的存取,其中該第一資料路徑包括一虛擬檔案系統以及一檔案系統。
- 如申請專利範圍第10項所述之由處理器實現的資料處理方法,更包括: 以該非優先次序化要求形成一批次單元;以及依據該應用程式層資訊排程該批次單元的服務順序;其中該應用程式層資訊包括該應用程式的一優先次序等級以及該應用程式的一操作狀態至少其中之一。
- 如申請專利範圍第10項所述之由處理器實現的資料處理方法,更包括:依據該應用程式層資訊辨識該非優先次序化要求所對應的虛擬機器以及所對應的應用程式;群組化來自同一個虛擬機器的要求,以形成一虛擬機器層批次單元;群組化來自同一個應用程式的要求,以形成一應用程式層批次單元;以及群組化來自同一個程序的要求,以形成一程序層批次單元。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462086167P | 2014-12-01 | 2014-12-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201621675A TW201621675A (zh) | 2016-06-16 |
TWI574158B true TWI574158B (zh) | 2017-03-11 |
Family
ID=56079273
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104112793A TWI574158B (zh) | 2014-12-01 | 2015-04-22 | 具應用程式資訊感知的資料處理方法以及系統 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9672067B2 (zh) |
CN (1) | CN106201664B (zh) |
TW (1) | TWI574158B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107526529B (zh) * | 2016-06-21 | 2020-08-07 | 伊姆西Ip控股有限责任公司 | 用于虚拟机的方法和装置 |
US10656966B1 (en) * | 2018-01-02 | 2020-05-19 | Amazon Technologies, Inc. | Deep-inspection weighted round robin of multiple virtualized resources |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200400764A (en) * | 1999-10-22 | 2004-01-01 | Activesky Inc | An object oriented video system |
US20100205303A1 (en) * | 2009-02-10 | 2010-08-12 | Pradeep Kumar Chaturvedi | Virtual machine software license management |
US20100217916A1 (en) * | 2009-02-26 | 2010-08-26 | International Business Machines Corporation | Method and apparatus for facilitating communication between virtual machines |
US20130290953A1 (en) * | 2012-04-26 | 2013-10-31 | International Business Machines Corporation | Efficient execution of jobs in a shared pool of resources |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100489783C (zh) * | 2004-06-28 | 2009-05-20 | 李晓波 | 在单计算机上可在同一时刻执行多道程序的方法及系统 |
CN100557566C (zh) * | 2006-11-10 | 2009-11-04 | 威盛电子股份有限公司 | 指令存取及排程的方法及其装置 |
US8892780B2 (en) * | 2007-03-08 | 2014-11-18 | Oracle International Corporation | Management of shared storage I/O resources |
US8839255B2 (en) * | 2009-07-23 | 2014-09-16 | Empire Technology Development Llc | Scheduling of threads by batch scheduling |
JP2012079272A (ja) * | 2010-10-06 | 2012-04-19 | Sony Corp | 録画再生装置、i/oスケジューリング方法、及びプログラム |
US20130290601A1 (en) * | 2012-04-26 | 2013-10-31 | Lsi Corporation | Linux i/o scheduler for solid-state drives |
US9262198B2 (en) * | 2013-08-26 | 2016-02-16 | Vmware, Inc. | CPU scheduler configured to support latency sensitive virtual machines |
US9772959B2 (en) * | 2014-05-30 | 2017-09-26 | Apple Inc. | I/O scheduling |
-
2015
- 2015-04-22 TW TW104112793A patent/TWI574158B/zh active
- 2015-04-27 US US14/696,657 patent/US9672067B2/en active Active
- 2015-05-14 CN CN201510245391.8A patent/CN106201664B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200400764A (en) * | 1999-10-22 | 2004-01-01 | Activesky Inc | An object oriented video system |
US20100205303A1 (en) * | 2009-02-10 | 2010-08-12 | Pradeep Kumar Chaturvedi | Virtual machine software license management |
US20100217916A1 (en) * | 2009-02-26 | 2010-08-26 | International Business Machines Corporation | Method and apparatus for facilitating communication between virtual machines |
US20130290953A1 (en) * | 2012-04-26 | 2013-10-31 | International Business Machines Corporation | Efficient execution of jobs in a shared pool of resources |
Also Published As
Publication number | Publication date |
---|---|
CN106201664B (zh) | 2019-05-14 |
TW201621675A (zh) | 2016-06-16 |
CN106201664A (zh) | 2016-12-07 |
US9672067B2 (en) | 2017-06-06 |
US20160154674A1 (en) | 2016-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10866910B2 (en) | Systems, methods, and computer-readable media for managing instruction fetch in virtual computing environments | |
US11768698B2 (en) | Mechanism to dynamically allocate physical storage device resources in virtualized environments | |
US10873521B2 (en) | Methods and apparatus for SDI support for fast startup | |
US9792051B2 (en) | System and method of application aware efficient IO scheduler | |
US8155134B2 (en) | System-on-chip communication manager | |
US11586392B2 (en) | Multi-stream SSD QoS management | |
EP3251021B1 (en) | Memory network to prioritize processing of a memory access request | |
US10275558B2 (en) | Technologies for providing FPGA infrastructure-as-a-service computing capabilities | |
US20150134884A1 (en) | Method and system for communicating with non-volatile memory | |
US8213461B2 (en) | Method of designating slots in a transmission frame for controlling transmission of data over an interconnect coupling a plurality of master units with a plurality of slave units | |
US20180039523A1 (en) | Information processing system that determines a memory to store program data for a task carried out by a processing core | |
CN111176829B (zh) | 虚拟化处理系统中的物理功能和虚拟功能的灵活资源分配 | |
US20190303308A1 (en) | Distributed storage system and method for managing storage access bandwidth for multiple clients | |
US9390033B2 (en) | Method and system for communicating with non-volatile memory via multiple data paths | |
US20130042252A1 (en) | Processing resource allocation within an integrated circuit | |
KR20190108038A (ko) | 가상 환경에서의 물리적 스토리지 장치 자원을 동적으로 할당하는 메커니즘 | |
TWI574158B (zh) | 具應用程式資訊感知的資料處理方法以及系統 | |
US10515038B2 (en) | Input/output command rebalancing in a virtualized computer system | |
US9377968B2 (en) | Method and system for using templates to communicate with non-volatile memory | |
US10705985B1 (en) | Integrated circuit with rate limiting | |
US11520700B2 (en) | Techniques to support a holistic view of cache class of service for a processor cache | |
KR102063281B1 (ko) | 파일에 접근하기 위한 방법과 장치, 및 저장 시스템 | |
US9535859B2 (en) | Sharing message-signaled interrupts between peripheral component interconnect (PCI) I/O devices | |
Kim et al. | Supporting the priorities in the multi-queue block i/o layer for nvme ssds | |
WO2017133421A1 (zh) | 一种多租户资源共享的方法及装置 |