• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      么移動(dòng)中間件線程池并發(fā)機(jī)制優(yōu)化改進(jìn)

      2010-01-08 07:28:38黃文偉何加銘曾興斌
      關(guān)鍵詞:追隨者令牌中間件

      黃文偉,何加銘,曾興斌

      (寧波大學(xué)通信技術(shù)研究所,浙江寧波315211)

      么移動(dòng)中間件線程池并發(fā)機(jī)制優(yōu)化改進(jìn)

      黃文偉,何加銘,曾興斌

      (寧波大學(xué)通信技術(shù)研究所,浙江寧波315211)

      實(shí)時(shí)性和資源利用率是移動(dòng)中間件系統(tǒng)的兩個(gè)重要指標(biāo)。該文提出了一種改善線程池并發(fā)機(jī)制的線程池環(huán)式組織模型,該模型用以提高領(lǐng)導(dǎo)者/追隨者線程模型中領(lǐng)導(dǎo)者選擇機(jī)制公平性,以提高嵌入式系統(tǒng)資源利用率。實(shí)驗(yàn)證明該模型對(duì)提高移動(dòng)中間件系統(tǒng)的資源利用率有較好效果。

      中間件,線程管理,線程池,實(shí)時(shí)性

      0 引 言

      線程池預(yù)先創(chuàng)建一定數(shù)量的線程。線程池在還沒(méi)有任務(wù)到來(lái)之前,創(chuàng)建一定數(shù)量的線程,放入空閑隊(duì)列中。當(dāng)任務(wù)到來(lái)后,緩沖池給此任務(wù)分配一個(gè)空閑線程,把任務(wù)傳入此線程中運(yùn)行。目前,一些著名的大公司都特別看好線程池技術(shù),應(yīng)用此項(xiàng)技術(shù)。ISAP工擴(kuò)展DLL將它接收的每個(gè)請(qǐng)求添加到請(qǐng)求隊(duì)列[1]。這確保了應(yīng)用程序能夠隨著更多的客戶(hù)端向服務(wù)器發(fā)出請(qǐng)求而進(jìn)行縮放。添加到隊(duì)列的請(qǐng)求按接收到它們的相同順序得到服務(wù)。但是,使用CThreadPool創(chuàng)建的線程池不自動(dòng)調(diào)整自身的大小。SUN公司在研究線程池方面也不示弱,在其推出的消息服務(wù)中,廣泛使用線程池機(jī)制。消息驅(qū)動(dòng)型Bean池也是一個(gè)線程池,池中的每個(gè)消息驅(qū)動(dòng)型Bean實(shí)例都與一個(gè)服務(wù)器會(huì)話(huà)關(guān)聯(lián),而每個(gè)服務(wù)器會(huì)話(huà)又與一個(gè)線程關(guān)聯(lián)[2]。但是,線程池大小越大,線程數(shù)量越多,會(huì)影響性能和服務(wù)器資源。微軟公司和SUN公司的線程池技術(shù)各有特色,在實(shí)現(xiàn)機(jī)制方面也不相同。但是,它們的線程池機(jī)制都是和系統(tǒng)資源緊密結(jié)合在一起。線程池中線程數(shù)量合適時(shí),才可以更好的發(fā)揮系統(tǒng)性能。該文在研究并比較線程池兩種并發(fā)機(jī)制的基礎(chǔ)上,提出了領(lǐng)導(dǎo)者/跟隨者中,用于提高線程公平性的緩釋線程組織模型。

      1 多線程機(jī)制

      服務(wù)器的多線程并發(fā)通信一般用多線程技術(shù)來(lái)實(shí)現(xiàn)。實(shí)現(xiàn)多線程并發(fā)通信有二種方式:(1)為每個(gè)客戶(hù)分配一個(gè)線程;(2)創(chuàng)建一個(gè)線程池,由其中的工作線程來(lái)為客戶(hù)服務(wù)。

      1.1 基于阻塞模式的多線程并發(fā)原理

      多線程機(jī)制允許在程序中并發(fā)執(zhí)行多個(gè)指令流,每個(gè)指令流都稱(chēng)為一個(gè)線程,彼此間互相獨(dú)立。多個(gè)線程的執(zhí)行是并發(fā)的,也就是在邏輯上“同時(shí)”,而不管是否是物理上“同時(shí)”。阻塞指的是暫停一個(gè)線程的執(zhí)行以等待某個(gè)條件的發(fā)生[3],所有處于阻塞狀態(tài)線程的共同特點(diǎn)是:放棄CPU,暫停運(yùn)行,只有等到導(dǎo)致阻塞的原因消除,才能恢復(fù)運(yùn)行。阻塞通信比較適合于同步通信,并且通信雙方是交換小批量的數(shù)據(jù)信息而不需要長(zhǎng)時(shí)間等待對(duì)方的回應(yīng)。

      1.2 線程池資源調(diào)度模型

      嵌入式實(shí)時(shí)中間件通過(guò)實(shí)現(xiàn)線程池的方式來(lái)對(duì)處理器資源進(jìn)行預(yù)留管理,線程池是構(gòu)造嵌入式實(shí)時(shí)中間件多線程的通用結(jié)構(gòu)。在嵌入式實(shí)時(shí)中間件核心內(nèi)部預(yù)先分配的一組線程同時(shí)處理多個(gè)請(qǐng)求,當(dāng)請(qǐng)求數(shù)超過(guò)了線程池中的線程數(shù),如果線程池中的線程數(shù)已經(jīng)達(dá)到了線程池預(yù)設(shè)的最大線程數(shù),則將請(qǐng)求放進(jìn)等待隊(duì)列直到有空閑線程;如果線程池中的線程數(shù)未到預(yù)設(shè)的最大線程數(shù),則動(dòng)態(tài)增加線程。嵌入式實(shí)時(shí)中間件利用多線程,可以區(qū)分不同優(yōu)先級(jí)的服務(wù)[4],支持線程搶先占有,實(shí)現(xiàn)可變或長(zhǎng)時(shí)間運(yùn)行的復(fù)雜對(duì)象。服務(wù)程序使用線程池策略時(shí),可以定義用來(lái)處理客戶(hù)請(qǐng)求的最大線程數(shù)目,為每個(gè)客戶(hù)請(qǐng)求指派一個(gè)工作線程。當(dāng)請(qǐng)求完成時(shí),將該工作線程收回到線程池中,以便重新分配去處理其他請(qǐng)求。如果線程池中的空閑線程太多,應(yīng)采取相應(yīng)的回收策略,以降低內(nèi)存利用率。線程回收策略動(dòng)態(tài)回收空閑線程,如果線程池中的線程過(guò)少,則降低了系統(tǒng)的并發(fā)性,線程過(guò)多,占用大量?jī)?nèi)存。本文采取在每個(gè)線程中附設(shè)一個(gè)定時(shí)器,記錄線程空閑時(shí)間,并根據(jù)系統(tǒng)當(dāng)時(shí)的負(fù)載情況,確定線程池的最佳線程數(shù)目,根據(jù)線程空閑時(shí)間從大到小回收線程,使線程池中始終保持最佳線程數(shù)目。

      嵌入式中間件系統(tǒng)線程池有兩種類(lèi)型[5],一種是無(wú)通道的線程池,線程池中的所有線程具有相同的優(yōu)先級(jí);另一種是有通道的線程池,池中各通道具有不同的優(yōu)先級(jí),同一通道中各個(gè)線程的優(yōu)先級(jí)相同。

      2 線程池并發(fā)機(jī)制分析

      嵌入式實(shí)時(shí)中間件線程池并發(fā)機(jī)制主要有兩種:半同步/半異步線程,領(lǐng)導(dǎo)者/追隨者線程模型。兩種模型的主要區(qū)別在于處理線程的選擇不同,半同步/半異步將任務(wù)分配給線程池中的線程處理,領(lǐng)導(dǎo)者/追隨者線程模型將任務(wù)交給監(jiān)聽(tīng)線程處理(領(lǐng)導(dǎo)者線程)。

      2.1 半同步/半異步模型

      半同步/半異步線程[6]模型的主要思想:由一個(gè)I/O線程負(fù)責(zé)接收用戶(hù)請(qǐng)求,并將接收到的請(qǐng)求分派給其他線程,由該線程負(fù)責(zé)完成用戶(hù)請(qǐng)求,并將請(qǐng)求結(jié)果返回給客戶(hù)端。其算法描述如下:首先由監(jiān)聽(tīng)線程監(jiān)聽(tīng)客戶(hù)端的任務(wù)請(qǐng)求,若接收到任務(wù)請(qǐng)求,則將請(qǐng)求分派給線程池中的定時(shí)器值最大的工作者線程,任務(wù)分派機(jī)制采取生產(chǎn)者-消費(fèi)者模型,如果接收到請(qǐng)求,則馬上通知工作者線程來(lái)接收;若無(wú)任務(wù)達(dá)到,則阻塞線程池中的工作者線程??梢钥闯?該模型有兩個(gè)不足之處:(1)線程切換帶來(lái)額外開(kāi)銷(xiāo):當(dāng)請(qǐng)求從I/O線程分派到工作線程時(shí),需要切換線程上下文;(2)從線程池中選擇工作者線程時(shí),應(yīng)采取一定的算法,選擇對(duì)應(yīng)優(yōu)先級(jí)的線程,這必將增加系統(tǒng)對(duì)請(qǐng)求的響應(yīng)時(shí)間。為此,提出了領(lǐng)導(dǎo)者/追隨者線程模型。

      2.2 領(lǐng)導(dǎo)者/追隨者線程模型

      領(lǐng)導(dǎo)者/追隨者線程模型的思想是在系統(tǒng)初始化的時(shí)候,隨機(jī)選擇一個(gè)線程作為領(lǐng)導(dǎo)者線程,用于監(jiān)聽(tīng)客戶(hù)請(qǐng)求。當(dāng)有請(qǐng)求達(dá)到時(shí),領(lǐng)導(dǎo)者線程降級(jí)為處理線程,處理用戶(hù)請(qǐng)求,并從追隨者中挑選出一個(gè)線程作為領(lǐng)導(dǎo)者,繼續(xù)監(jiān)聽(tīng)客戶(hù)端請(qǐng)求。該算法描述如下:首先,領(lǐng)導(dǎo)者線程等待接收任務(wù)請(qǐng)求,若接收到任務(wù)請(qǐng)求,則自動(dòng)降級(jí)為處理線程,開(kāi)始處理用戶(hù)請(qǐng)求,同時(shí),根據(jù)一定算法從線程中挑選一線程成為領(lǐng)導(dǎo)者線程,繼續(xù)監(jiān)聽(tīng)用戶(hù)請(qǐng)求,當(dāng)處理線程處理完用戶(hù)請(qǐng)求后,自動(dòng)加入到線程池中,等待下一次成為領(lǐng)導(dǎo)者線程??梢钥闯?領(lǐng)導(dǎo)者/追隨者線程模型不需要線程切換。

      3 環(huán)式線程組織模型

      為了最大限度得利用線程,避免線程的長(zhǎng)時(shí)間空閑,應(yīng)該使線程有相等的機(jī)會(huì)成為領(lǐng)導(dǎo)者線程,為此,本文設(shè)計(jì)了一種環(huán)式線程組織模型,即將線程池中的線程以鏈?zhǔn)浇Y(jié)構(gòu)組成一個(gè)環(huán),在環(huán)上設(shè)置一令牌,令牌以一定速率在環(huán)上環(huán)繞,當(dāng)領(lǐng)導(dǎo)者向線程池中的追隨者發(fā)出領(lǐng)導(dǎo)者邀請(qǐng)時(shí),環(huán)上的所有線程試圖抓住令牌,抓住令牌的線程即成為領(lǐng)導(dǎo)者線程。在此模型中,需要解決3個(gè)關(guān)鍵問(wèn)題:(1)令牌維護(hù),即由誰(shuí)產(chǎn)生令牌,令牌丟失時(shí)如何檢測(cè);(2)線程如何入環(huán);(3)當(dāng)線程被刪除時(shí),如何自動(dòng)構(gòu)成閉合環(huán)。為了兼顧公平性,由領(lǐng)導(dǎo)者產(chǎn)生令牌,當(dāng)一個(gè)線程從跟隨者升級(jí)為領(lǐng)導(dǎo)者時(shí),自動(dòng)產(chǎn)生一個(gè)令牌。系統(tǒng)在創(chuàng)建線程時(shí),為每個(gè)線程分配一個(gè)定時(shí)器,初值為0,令牌第一次經(jīng)過(guò)該線程時(shí),自動(dòng)啟動(dòng)定時(shí)器,將令牌繞環(huán)一圈的時(shí)間記為最大定時(shí)時(shí)間(MTT),當(dāng)某個(gè)線程的定時(shí)器時(shí)間大于MTT時(shí),則判定令牌丟失,立即通知領(lǐng)導(dǎo)者線程重新生成令牌,由于令牌按時(shí)間順序到達(dá)各個(gè)線程,因此,線程中的定時(shí)器時(shí)間各不相同,不會(huì)產(chǎn)生重復(fù)申請(qǐng)令牌的動(dòng)作。當(dāng)任務(wù)數(shù)大于線程池中的線程數(shù)時(shí),應(yīng)自動(dòng)創(chuàng)建線程,并將線程放入線程池中,如何將線程入環(huán)呢(將線程插入環(huán)中哪個(gè)位置)。由于剛創(chuàng)建線程的定時(shí)器時(shí)間被初始化為0,為了保持環(huán)中線程時(shí)間的按順序遞增性,應(yīng)將線程加入到定時(shí)器時(shí)間最小的線程后面(成為該線程的后繼線程),記環(huán)的結(jié)構(gòu)如圖1所示,若將新創(chuàng)建的s8加入環(huán),并假設(shè)插入到s4后面,只需修改s4的后繼指針,s4->next->=s8,s8->next=s5。欲將s4刪除,只需要修改s3和s4的指針,即s4->next=NULL,s3->next=s5即可。由于環(huán)中的線程是以鏈?zhǔn)浇Y(jié)構(gòu)組織,所以,不管是加入還是刪除,只需一次查找,所產(chǎn)生的時(shí)延幾乎可以忽略。

      圖1 線程池環(huán)式組織結(jié)構(gòu)

      4 實(shí)驗(yàn)仿真

      表1 兩種線程組織模式利用率對(duì)比

      5 結(jié)束語(yǔ)

      本文首先分析了傳統(tǒng)線程調(diào)度模型,就其中的缺陷提出了線程池調(diào)度模型,并加以詳述。為了提高系統(tǒng)資源的利用率,文本采用了定時(shí)器機(jī)制,及時(shí)回收系統(tǒng)的空閑資源。接著介紹線程池并發(fā)的兩種機(jī)制,并且針對(duì)處理器資源管理現(xiàn)有的半同步/半異步模型的研究現(xiàn)狀及缺陷提出了領(lǐng)導(dǎo)者-追隨者模型,設(shè)計(jì)了環(huán)式線程組織方式。該模型不僅可以嵌入式系統(tǒng)的響應(yīng)實(shí)時(shí)性,而且能有效提高資源利用率。

      圖2 仿真結(jié)果

      [1]Visual C++概念添加功能線程池.http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/vccore/htm l/vcconatlserverserverthreadpooldefined.asp.

      [2]使用消息驅(qū)動(dòng)型Bean.http://www.huihoo.com/middleware/application-server/sunone/app?-ejb/demdb.htm l#33083.

      [3]劉云聲,王振宇,段愛(ài)群.基于阻塞模式的多線程并發(fā)通信技術(shù)研究[J].計(jì)算機(jī)工程與科學(xué),2008,29(2):58-61.

      [4]郭長(zhǎng)國(guó).基于優(yōu)先級(jí)的實(shí)時(shí)中間件的研究與實(shí)現(xiàn)[D].北京:國(guó)防科技大學(xué),2002.

      [5]王振宇.嵌入式實(shí)時(shí)中間件資源管理策略的研究及實(shí)現(xiàn)[D].武漢:華中科技大學(xué),2007.

      [6]山海豐.基于CORBA/e的嵌入式中間件的研究[D].哈爾濱:哈爾濱工程大學(xué),2008.

      The Optimization and Im provement of Concurrence Mechanism in Thread-poolwith M obile M iddleware HUANGWen-wei,HE Jia-ming,ZENG Xing-bin

      (Instituteof Communication,Ningbo University,Ningbo Zhejiang315211,China)

      The real-timeand theutility of resource are the two important index ofmobilemiddleware system.This paper puts forward a ringmodel to form threads in the threadpool in order to improve the intercurrencemechanism of threadpool.Themodel aim is the justice in terms of selecting the leading thread in the leading/following thread model,so as to increase the utility of resource in the embedded system.The test demonstrates that thismodel indeed hasgood effect in the aspect of enhancing the utility of resource in themobilemiddleware system.

      middleware;thread-management;threadpool;real-time

      TP391

      A

      1001-9146(2010)05-0097-04

      2010-07-20

      科技部公共服務(wù)平臺(tái)創(chuàng)新基金資助項(xiàng)目(C26243314159),浙江省科技計(jì)劃項(xiàng)目資助項(xiàng)目(C31107),國(guó)際科技合作項(xiàng)目資助項(xiàng)目(DFA12120)

      黃文偉(1985-),男,浙江溫州人,在讀研究生,數(shù)字無(wú)線.

      猜你喜歡
      追隨者令牌中間件
      做一名紅色記憶的追隨者
      井岡教育(2022年2期)2022-10-14 03:11:52
      牛的“追隨者”
      幼兒100(2022年23期)2022-06-10 03:33:30
      稱(chēng)金塊
      基于路由和QoS令牌桶的集中式限速網(wǎng)關(guān)
      RFID中間件技術(shù)及其應(yīng)用研究
      電子制作(2018年14期)2018-08-21 01:38:10
      動(dòng)態(tài)令牌分配的TCSN多級(jí)令牌桶流量監(jiān)管算法
      基于VanConnect中間件的設(shè)計(jì)與開(kāi)發(fā)
      追隨者
      愛(ài)你(2014年13期)2014-08-09 09:58:48
      中間件在高速公路領(lǐng)域的應(yīng)用
      《簡(jiǎn)約領(lǐng)導(dǎo)》
      決策(2013年4期)2013-12-19 23:51:07
      青浦区| 宁河县| 青冈县| 甘孜县| 伊金霍洛旗| 青冈县| 阿拉善右旗| 彭泽县| 龙门县| 防城港市| 晋宁县| 灌云县| 石狮市| 永顺县| 濮阳市| 博爱县| 周至县| 闽侯县| 息烽县| 高安市| 永德县| 建平县| 湖北省| 武安市| 宜春市| 伊宁县| 鄂托克前旗| 三江| 剑川县| 炉霍县| 广州市| 张家口市| 平舆县| 乳山市| 乌兰县| 新余市| 上栗县| 修文县| 密云县| 墨竹工卡县| 若尔盖县|