[發明專利]一種CFQ調度方法在審
| 申請號: | 201410744683.1 | 申請日: | 2014-12-09 |
| 公開(公告)號: | CN104360965A | 公開(公告)日: | 2015-02-18 |
| 發明(設計)人: | 鄧宇羽 | 申請(專利權)人: | 浪潮電子信息產業股份有限公司 |
| 主分類號: | G06F13/20 | 分類號: | G06F13/20 |
| 代理公司: | 濟南信達專利事務所有限公司 37100 | 代理人: | 姜明 |
| 地址: | 250101 山東*** | 國省代碼: | 山東;37 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 cfq 調度 方法 | ||
技術領域
本發明涉及linux內核I/O調度領域,尤其涉及一種CFQ調度方法。???
背景技術
隨著linux操作系統的發展,應用程序對高性能IO的要求越來越高。自2.6內核以后,linux內核的IO調度算法增加至4種,其中CFQ(completely?fair?queueing)調度算法應用最為廣泛。該算法在多進程環境下能夠保證各個進程有公平的調度機會,以及IO設備的QoS。但是在I/O密集型請求到來時,該算法的I/O性能會下降。首先,由于CFQ算法將設備分為不同的組,組間調度采用基于權重---時間片的方式,而對于I/O密集型請求,往往是針對單一設備,這時CFQ算法仍然有可能發生組間調度,導致對于某一設備的I/O密集型請求等待。其次,由于CFQ算法對于同組的I/O請求按照進程號分為不同的隊列,而對于密集型I/O請求,不同的進程訪問的I/O地址有一定的連續性,導致CFQ算法為了保證電梯調度的順序而在不同隊列中切換。最后,由于CFQ算法對于同一隊列的I/O請求按照電梯調度,而電梯調度算法對于上下兩個邊界附近的I/O效率較高,中間的效率較低,影響整個隊列的I/O效率。以上為提高linux內核的I/O調度效率,適應日益增加的應用程序需求均帶了很大的挑戰,影響了系統I/O吞吐量,進而影響應用程序運行的速度。?
發明內容
本發明的目的在于提供一種CFQ調度方法,該方法可以克服密集型I/O請求發生時,舊的CFQ算法的I/O性能下降的難題。
為了達到上述目的,本發明采用的技術方案為:
一種CFQ調度方法,包括如下步驟:
(1)首先進行組間調度:對于進程提出的I/O請求按照所操作的設備類型分組,各組選擇對應設備類型的I/O操作,各組有對應的權重。每組設置特殊操作標志Intense,若該標志置1,則該組權重升為最高直至I/O操作結束。
(2)然后進行組內調度:對于組內的I/O請求,根據特殊操作標志Continue按照兩種不同的方式操作。若Continue=0,那么組內I/O請求按照進程號分為不同的隊列;若Continue=1,那么組內I/O請求按照I/O訪問的地址區域分為不同的隊列。當Continue=0時,head?=?tail?=0。各隊列有對應的優先級。
(3)最后進行隊列內調度:對于同一隊列中的I/O請求,采用電梯調度算法。當特殊操作標志Continue為1時,電梯調度算法的邊界修改為head和tail。head?到tail為電梯算法的一個方向,剩下的區域組成另一個方向。
上述調度方法中,被調度的I/O請求處于內核態,為了能夠適應密集型I/O操作,對于組間調度和組內調度都設置特殊操作標志,應用程序需要進行密集型I/O操作時,向內核提出請求,內核修改相關標志,切換組間調度和組內調度方式,同時將隊列內調度時采用的電梯算法界限修改為一個頻繁訪問的區域。其特點在于當某組的Intense標志置1時,該組對應的設備優先級最高,減少了組間調度;當某組的Continue標志置1時,該組的隊列按照I/O請求的區域分為不同隊列,使得I/O密集型請求能夠盡可能地在一個隊列中完成,減少了組內調度;當某組的Continue標志置1時,隊列內電梯調度算法的運行界限改為head和tail,保證了密集型I/O請求被集中訪問,減少了電梯調度往返的次數。
上述調度方法步驟(1)的具體步驟為:
步驟a、對于進程提出的I/O請求按照所操作的設備類型分組,各組選擇對應設備類型的I/O操作;
步驟b、組間調度按照權重---時間片方式,每次優先調度時間片最小的組,高權重的組獲得的時間片小;
步驟c、每組設置特殊操作標志Intense,若該標志置1,則該組權重升為最高直至I/O操作結束。
上述調度方法步驟(2)的具體步驟為:
步驟a、根據特殊操作標志Continue按照兩種不同的方式將組內I/O請求分成不同的隊列
步驟b、若Continue=0,那么組內I/O請求按照進程號分為不同的隊列,隊列基于進程的優先級,映射為相應時間片調度,高優先級時間片小,每次選擇時間片小的優先調度。此時head?=?tail?=0;
步驟c、若Continue=1,那么組內I/O請求按照I/O訪問的地址區域分為不同的隊列。含有I/O請求數目最多的區域為訪問熱區,head和tail對應該區域上下界。
上述調度方法步驟(3)的具體步驟為:
步驟a、隊列內調度采用電梯調度算法;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于浪潮電子信息產業股份有限公司,未經浪潮電子信息產業股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410744683.1/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種通信系統、通信方法及相關通信設備
- 下一篇:一種軟件測試系統及方法





