[發明專利]高可用集群系統中的線程池任務處理方法在審
| 申請號: | 201711018504.6 | 申請日: | 2017-10-27 |
| 公開(公告)號: | CN107832146A | 公開(公告)日: | 2018-03-23 |
| 發明(設計)人: | 李世巍 | 申請(專利權)人: | 北京計算機技術及應用研究所 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50;G06F9/48 |
| 代理公司: | 中國兵器工業集團公司專利中心11011 | 代理人: | 張然 |
| 地址: | 100854*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 可用 集群 系統 中的 線程 任務 處理 方法 | ||
技術領域
本發明涉及一種計算機任務處理方法,特別涉及一種高可用集群系統中的線程池任務處理方法。
背景技術
在現在計算機技術和互聯網飛速發展的時代,大數據分析、超級計算逐漸成為各個研究團隊的主流研究方向。同樣,作為需要精密計算的國防科工行業,對于計算性能的要求也越來越高。為了提高計算性能以達到滿足作戰需求的程度,應用集群技術,將多個服務器或PC機通過網絡連接來共同處理一個大型的復雜計算任務。
集群系統的優勢在于能夠將復雜的計算任務分散到各個PC機或者服務器中。但是具體的分配方式需要通過了解需要解決的實際問題來提出算法。負載均衡的核心思想是讓系統內的各個單機都分配到適量的任務來執行。實現負載均衡的方法也有多種方式,建立模型時需要考慮到各個方式的優缺點來決定采用哪種方式。本專利所詳述的就是負載均衡算法中的一種名為線程池技術的算法在集群領域的應用。
早在二十世紀七八十年代,Digital equipment公司和Tandem計算機公司就開始了集群系統的研究與開發工作。集群系統采用的操作系統主要有VMS、UNIX、WindowsNT和Linux。
九十年代末期,Linux操作系統不斷走向成熟,它的健壯性不斷增強,并且提供了GNU軟件和標準化的PVM、MPI消息傳遞機制,最重要的是Linux在普通PC機上提供了對高性能網絡的支持,這樣就大大推動了基于Linux的集群系
統的發展。
中國在1989年開始引進模擬集群系統,1990年投入使用。隨著數字通信技術的發展,集群通信系統也開始向第二代的數字技術發展,最主要的特點是采用了TDMA(時分多址)和CDMA(碼分多址)通信方式。但是,中國的集群通信應用主要還停留在模擬技術水平,數字集群的應用較少。
現在,線程池技術是負載均衡技術中的一個研究方向,關于它的研究還在不斷地探索之中。目前,一些著名的大公司都特別看好這項技術,并早已經在他們的產品中應用該技術。比如IBM的WebSphere,IONA的Orbix 2000在SUN的Jini中,Microsoft的MTS(Microsoft Transaction Server 2.0),COM+等。
國內方面,目前還沒有商業化的應用線程池技術的案例。但是仍有很多研究人員參與到以線程池技術為核心的相關研究中。
傳統的多線程技術采用即時創建、即時銷毀的策略,即每當服務器接收到請求之后,服務器會創建一個新的線程,由該線程執行這個請求的任務。當任務執行完畢之后,退出線程。線程相比于操作系統中的進程來說,無論創建或是銷毀都會大幅減小系統的開銷。但是在創建和銷毀一個新的線程的時候,系統仍然要為線程分配堆棧,以及線程的應用上下文等資源。盡管這些消耗的系統資源很小,但是相對于實時并行處理系統來說,這樣的系統開銷不能忽略。如果任務的數量過多而且每個任務的規模很小執行起來很快的話,那么服務器將處于不停的創建線程,銷毀線程的狀態。而且線程在活動的時候也會消耗系統資源,創建過多的線程會導致系統由于消耗過多的內存或由于不停的切換線程而導致系統的效率降低。
發明內容
本發明的目的在于提供一種高可用集群系統中的線程池任務處理方法,用于解決上述現有技術的問題。
本發明一種高可用集群系統中的線程池任務處理方法,其中,包括:線程池主線程隨系統運行后,首先預創建一定數目的空閑的工作線程,空閑的工作線程初始時均處于條件阻塞狀態;接收用戶輸入的工作任務,形成工作任務隊列;線程池主線程依次進入查找工作任務、檢查線程池狀態以及為工作任務分配工作線程的循環,包括:循環開始,從工作任務隊列中頭部取得待處理的工作任務,成功則進入下一步,是否,則保持取工作任務的狀態;如果當前線程池忙碌線程超過總數的一定占比,則這時不處理當前工作任務,并向系統告警并報告當前處理狀態;檢查線程池狀態,當前空閑線程數小于空閑的最低值時,創建一定數目的空閑線程,以維持線程池的平衡狀態;當空閑線程數大于空閑的最高值時,則釋放一定數目的空閑線程;為待執行的工作任務分配一個工作線程,并給工作線程條件信號激活工作線程開始執行工作任務;工作任務隊列頭部指針到下移,繼續循環處理;工作任務隊列中無任務后,主線程的循環停止,釋放掉申請的系統資源。
根據本發明的高可用集群系統中的線程池任務處理方法的一實施例,其中,該一定占比為80%。
根據本發明的高可用集群系統中的線程池任務處理方法的一實施例,其中,創建的空閑工作線程數目取決于程序的規模以及對需要處理的任務復雜程度的預估。.
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京計算機技術及應用研究所,未經北京計算機技術及應用研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201711018504.6/2.html,轉載請聲明來源鉆瓜專利網。





