欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

在事務(wù)處理碼內(nèi)對存儲器分配和解除分配的系統(tǒng)和方法

文檔序號:6374537閱讀:161來源:國知局
專利名稱:在事務(wù)處理碼內(nèi)對存儲器分配和解除分配的系統(tǒng)和方法
在事務(wù)處理碼內(nèi)對存儲器分配和解除分配的系統(tǒng)和方法
背景技術(shù)
為滿足日益增長的用戶需求,計算系統(tǒng)要以越來越快的速率高效地操作,相關(guān)聯(lián)停機(jī)時間不存在或很少。在努力滿足這些需求的過程中,程序員開發(fā)了可包括具有許多指令的多個指令“線程”的程序。這些線程控制在系統(tǒng)上運行的程序(或應(yīng)用)的操作和流程。在一些計算體系結(jié)構(gòu)中,一個處理器可使用單個處理器執(zhí)行多個線程。在其它計算體系結(jié)構(gòu)中,多個線程可由多個處理器執(zhí)行,其中每個處理器可支持不同的線程。結(jié)合多線程程序,程序員使用包括嵌套事務(wù)處理(transaction)的事務(wù)處理編碼來改進(jìn)計算同步和效率。事務(wù)處理是減輕多核體系結(jié)構(gòu)上編程的關(guān)鍵技術(shù)。事務(wù)處理可描述為在線程上執(zhí)行的步驟順序。因為事務(wù)處理一般是提交或中止,因此,事務(wù)處理也被認(rèn)為是“原子”。例如,在線程宣布事務(wù)處理開始,執(zhí)行操作序列并隨后嘗試提交事務(wù)處理時,一個事務(wù)處理模型便開始了。如果提交成功,則事務(wù)處理操作在存儲器(memory)中生效;如果未成功,則操作可被丟棄。事務(wù)處理程序調(diào)用在內(nèi)部使用事務(wù)處理的庫代碼時,嵌套事務(wù)處理會在它們中發(fā)生。潛在沖突限制在大事務(wù)處理的一小部分內(nèi)時,嵌套事務(wù)處理也允許程序員避免昂貴的回滾。常規(guī)計算系統(tǒng)允許程序?qū)Υ鎯ζ鬟M(jìn)行動態(tài)分配和解除分配。但是,為保持語義,這些常規(guī)計算系統(tǒng)不從事務(wù)處理碼組(包括嵌套事務(wù)處理)內(nèi)對存儲器進(jìn)行分配和解除分配。不包括事務(wù)處理的常規(guī)計算系統(tǒng)可在程序調(diào)用存儲器分配例程,如標(biāo)準(zhǔn)Malloc例程時分配存儲器塊。Malloc例程找到可用存儲器塊,將其標(biāo)記為已分配,并且將指針返回到與已分配塊對應(yīng)的程序。程序可使用指針存儲數(shù)據(jù)到該存儲器塊。在不再需要該塊時,程序可例如使用標(biāo)準(zhǔn)釋放例程,釋放該存儲器塊。釋放例程將該存儲器塊標(biāo)記為可用,以便該塊可另行分配。如上所述,由于在使用標(biāo)準(zhǔn)malloc和釋放例程時不可保留與事務(wù)處理碼相關(guān)聯(lián)的語義,因此,目前這些標(biāo)準(zhǔn)或常規(guī)存儲器分配和解除分配技術(shù)未結(jié)合事務(wù)處理碼組使用?!?br>

圖I是根據(jù)實施例,包括具有事務(wù)處理功能的存儲器管理系統(tǒng)的計算裝置方框圖。圖2是根據(jù)實施例,具有事務(wù)處理功能的存儲器管理的方框圖。圖3是在實施例的情況下,在事務(wù)處理中時用于管理存儲器的流程圖。
具體實施例方式方法和系統(tǒng)實施例提供用于在事務(wù)處理碼中,包括在嵌套事務(wù)處理碼中時用于管理存儲器分配和解除分配。通過使用諸如一個或多個序號(sequence number)的一個或多個唯一標(biāo)識符來處理事務(wù)處理中的存儲器管理,各種實施例提供了事務(wù)處理存儲器管理。實施例也保持在事務(wù)處理中止和提交時要執(zhí)行的延遲動作列表。與一個或多個事務(wù)處理相關(guān)聯(lián)的多個存儲器管理例程檢查當(dāng)前事務(wù)處理的事務(wù)處理序號,操控提交和/或撤消日志,以及設(shè)置/使用相關(guān)聯(lián)對象的事務(wù)處理序號,但并不限于此。在事務(wù)處理和其它設(shè)置中處理其它事件時,可應(yīng)用本文所述用于處理在事務(wù)處理中,包括在嵌套事務(wù)處理中的存儲器管理的事務(wù)處理存儲器管理技術(shù)。本文所述事務(wù)處理技術(shù)為減輕在多核和其它體系結(jié)構(gòu)上編程提供了有效和寶貴的工具。事務(wù)處理碼體現(xiàn)了一種功能強(qiáng)大的構(gòu)造,可用于管理并發(fā)以消除死鎖,使編撰原子原語更容易及自動提供細(xì)粒(fine — grained)并發(fā)。事務(wù)處理可以硬件、軟件或其組合的形式實現(xiàn)。軟件實現(xiàn)可能更具程序員友好性,對事務(wù)處理實行有限大小約束并允許嵌套事務(wù)處理。在事務(wù)處理提交時,事務(wù)處理期間所作的更改一般存儲在存儲器中。事務(wù)處理中止時,分配和/或解除分配可能需要撤消或“回滾”。
·
在下面的說明中,介紹了許多特定的細(xì)節(jié)以提供系統(tǒng)和方法實施例的詳盡理解和實現(xiàn)對這些實施例的描述。但相關(guān)領(lǐng)域的技術(shù)人員將認(rèn)識到,這些實施例可在這些特定細(xì)節(jié)一處或多處不存在的情況下實踐,或者可通過其它組件、系統(tǒng)等實踐。在其它情況下,熟知的結(jié)構(gòu)或操作未示出,或者未詳細(xì)描述以避免混淆公開實施例的方面。圖I示出根據(jù)實施例,包括事務(wù)處理存儲器管理系統(tǒng)101的計算裝置100,系統(tǒng)具有相關(guān)聯(lián)存儲器管理器102和事務(wù)處理儲存(transactional 104。如下所述,事務(wù)處理儲存104包括用于管理與事務(wù)處理相關(guān)聯(lián)操作的多個例程或模塊,但并不限于此。如通過如圖2所示事務(wù)處理存儲器管理系統(tǒng)200、存儲器管理器204和存儲器支持庫206所述,事務(wù)處理存儲器管理系統(tǒng)101、存儲器管理器102和事務(wù)處理儲存104在下面進(jìn)行了詳細(xì)描述。存儲器管理器102可以在一個或多個處理器上運行的軟件算法、固件和硬件的任意組合形式實現(xiàn),其中,軟件可存儲在任何適合的計算機(jī)可讀介質(zhì)上,如存儲在半導(dǎo)體芯片中、計算機(jī)可讀磁盤上等的微代碼。雖然存儲器管理器102和計算裝置100可示為處于相同位置,但實施例并不限于此。各種備選實施例的存儲器管理器102可在計算裝置100或其它系統(tǒng)任何數(shù)量和/或類型的組件、模塊和/或電路中分配一個或多個功能。計算裝置100包括任何計算系統(tǒng),如手持式、移動計算系統(tǒng)、臺式計算系統(tǒng)、膝上型計算系統(tǒng)、圖形特定計算系統(tǒng)及其它計算系統(tǒng)。計算裝置100—般包括至少一個處理單元和系統(tǒng)存儲器108。在其它實施例中,計算裝置100可包括多個處理器和其它組件。視計算裝置的配置和類型而定,系統(tǒng)存儲器108可以為易失性(如隨機(jī)存取存儲器(RAM)或其它動態(tài)存儲裝置(storage))、非易失性(如只讀存儲器(ROM)、閃存等)或某一組合。系統(tǒng)存儲器108也可包括實現(xiàn)為軟件、硬件或其組合的事務(wù)處理存儲器功能。系統(tǒng)存儲器108可包括操作系統(tǒng)110和一個或多個應(yīng)用112。計算裝置100可包括另外的計算機(jī)存儲裝置114,如磁性存儲裝置、光存儲裝置等。計算機(jī)存儲裝置包括但不限于RAM、ROM、電可擦除可編程只讀存儲裝置(EEPROM)、閃存或其它存儲器技術(shù)、壓縮盤ROM(CD-ROM)、數(shù)字多功能磁盤(DVD)或其它光存儲裝置、磁帶盒、磁帶、磁存儲裝置或其它磁性存儲裝置或可用于存儲信息的任何其它介質(zhì)。計算裝置100也可包括一個或多個輸入裝置116和一個或多個輸出裝置118。計算裝置100也可包含允許計算裝置100如通過有線和/或無線網(wǎng)絡(luò)或其它網(wǎng)絡(luò)與其它計算裝置122、處理器和/或系統(tǒng)通信的通信連接120。圖2是根據(jù)實施例的事務(wù)處理存儲器管理系統(tǒng)200方框圖。雖然圖2中示出了應(yīng)用202,但事務(wù)處理存儲器管理系統(tǒng)200可與其它客戶端(例如,驅(qū)動程序、裝置等)交互。事務(wù)處理存儲器管理系統(tǒng)200的描述將包括用于說明的“C”編程構(gòu)造(construct),但實施例并不限于此。
如下面進(jìn)一步詳細(xì)所述的一樣,事務(wù)處理存儲器管理系統(tǒng)200能夠在事務(wù)處理碼組中,包括在嵌套事務(wù)處理碼組中時對存儲器進(jìn)行分配和解除分配,但并不限于此。在程序或應(yīng)用中,事務(wù)處理一般指應(yīng)以原子方式執(zhí)行的代碼段。在一些情況下,在執(zhí)行事務(wù)處理碼的同時,只可暫時而非永久性更改存儲器。在完成事務(wù)處理碼后,如果確定執(zhí)行以原子方式發(fā)生,則可通過使存儲器更改變?yōu)橛谰眯詠硖峤皇聞?wù)處理。否則,如果與另一事務(wù)處理有沖突,則事務(wù)處理可能被中止,并且對存儲器所做的暫時更改可能被丟棄。事務(wù)處理存儲器管理系統(tǒng)200包括與軟件事務(wù)處理存儲器(STM)庫206、應(yīng)用202和已分配對象205交互的存儲器管理器204。根據(jù)實施例,已分配對象指與使用事務(wù)處理存儲器管理系統(tǒng)200的分配或解除分配過程相關(guān)聯(lián)的虛擬存儲器塊。例如,應(yīng)用202可使用存儲器管理器204,基于下述各種標(biāo)準(zhǔn)為對象205進(jìn)行分配和/或解除分配。如圖2所示,已分配對象可包括兩個區(qū)域由應(yīng)用202用于存儲數(shù)據(jù)的第一區(qū)域205a和用于存儲“序號”(序號字段)的第二區(qū)域205b。在各種實施例中,序號字段可以為對象頭部的一部分、單獨的表或線程本地存儲裝置(thread — local storage) 208,這取決于特定的實現(xiàn)。如下所述,在確定對象是否是前瞻(speculatively)分配、前瞻釋放、均衡 (balanced)釋放等時可使用序號和其它信息。前瞻分配和解除分配可有助于降低存儲器等待時間,如果相關(guān)聯(lián)操作只有在確定操作是否要進(jìn)行時才發(fā)出,可能產(chǎn)生存儲器等待時間存儲器。雖然圖2示出了事務(wù)處理存儲器管理系統(tǒng)200的一種配置,但可使用其它配置。線程本地存儲裝置(TLS)208提供了存儲裝置,用于存儲與一個或多個軟件線程相關(guān)聯(lián)信息,包括任何相關(guān)聯(lián)事務(wù)處理。在實施例中,每個軟件線程在存儲器中具有唯一的線程本地存儲空間。線程本地存儲裝置208可以為諸如RAM等系統(tǒng)存儲器108的一部分,但并不限于此。線程本地存儲裝置208包括線程狀態(tài)210,該狀態(tài)與包括嵌套事務(wù)處理在內(nèi)的一個或多個事務(wù)處理和其它信息相關(guān)聯(lián)。根據(jù)實施例,線程狀態(tài)210包括順序計數(shù)器210a、事務(wù)處理序號210b、撤消日志210c、提交日志210d、其它事務(wù)處理狀態(tài)210e及用于嵌套事務(wù)處理狀態(tài)210f的堆棧。為在提交和中止點保持正確的語義,可能需要撤消的操作記錄在撤消日志210c和提交日志210d中。撤消日志210c是在事務(wù)處理中止事件時可能需要撤消的所有事務(wù)處理的日志。要撤消分配,可釋放存儲器,但并不限于此。提交日志210d是在以后的提交前未保證執(zhí)行且因此必須延遲的所有解除分配日志。要提交解除分配,可釋放存儲器,但并不限于此。如下進(jìn)一步所述,諸如一個或多個序號等一個或多個指示器可由系統(tǒng)200用于有效地確定何時可安全地釋放存儲器分配。序號可以是線程本地值,該值可增大以在線程上所有事務(wù)處理(包括嵌套事務(wù)處理)之間提供唯一排序。可使用η比特序號(例如,64比特),這可防止序號溢出。在執(zhí)行解除分配時,要解除分配的對象205b的序號與當(dāng)前事務(wù)處理的序號210b進(jìn)行比較。序號之間的關(guān)系確定釋放操作是“均衡釋放”還是“前瞻釋放”。序號之間的關(guān)系也確定分配是否“前瞻”。例如,可能存在如下所示與事務(wù)處理相關(guān)聯(lián)的三種事務(wù)處理狀態(tài)。Il最初,seq(trans)= O在事務(wù)處理之外 X = malloc(size); // seq=0 transaction { // seq(trans) = I y = malloc(size); // seq = I z = mal!oc(size); // seq = I //A點
free(x); //(I >0)為真,因此為前瞻釋放
//B點
free(y); // (I > I)為假,因此為均衡釋放 }//提交時,事務(wù)處理編號彈出-> seq(trans) = O Il撤消日志被取消 Il處理提交日志(包含free(x))
// (O > O)為假,因此free(x)成為均衡釋放 IIC點
free (z); // (O > I )為假,因此為均衡釋放 end在A點,y和z均被認(rèn)為是前瞻分配。也就是說,如果在此點發(fā)生事務(wù)處理中止,y必須解除分配以便將狀態(tài)回滾到事務(wù)處理的開始。在B點,X被認(rèn)為是前瞻釋放。也就是說,如果在此點發(fā)生事務(wù)處理中止,則X指向的存儲器必須保持有效。換而言之,X的解除分配應(yīng)延遲。與此相反,y的解除分配可能不需要延遲,這是因為y的最終狀態(tài)已解除分配而無論是否發(fā)生事務(wù)處理提交或中止。y的此狀態(tài)稱為均衡。也就是說,在達(dá)到釋放操作后,事務(wù)處理將提交或中止。如果事務(wù)處理中止,則由于事務(wù)處理操作回滾,因此,存儲器好象在最初位置從未分配過一樣。如果事務(wù)處理提交,則分配和釋放均將提交,并且存儲器塊仍被釋放。因此,無論事務(wù)處理是否提交,該塊均將空閑。在C點,假設(shè)未遇到中止,由于分配已提交,因此,z不再是前瞻分配。如在各種實施例說明中所使用一樣,但并不限于此I)事務(wù)處理內(nèi)的malloc稱為前瞻分配。2)在seq (對象)〈seq (事務(wù)處理)時釋放事務(wù)處理內(nèi)的對象稱為前瞻釋放。3)在seq (對象)>=seq (事務(wù)處理)時釋放事務(wù)處理內(nèi)的對象稱為均衡釋放。4)事務(wù)處理中止在該事務(wù)處理中前瞻分配的對象(根據(jù)seq (對象)>=seq (事務(wù)處理)檢測到)被釋放(空閑)5)事務(wù)處理提交在該事務(wù)處理中前瞻釋放、在包含的事務(wù)處理上下文中非前瞻釋放的對象(根據(jù)pop (seq(transaction))后seq(對象)>=seq(事務(wù)處理)檢測到)被釋放(空閑)下面提供了各種狀態(tài)的其它示例。
前瞻分配的示例描述如下
權(quán)利要求
1.一種用于管理事務(wù)處理的系統(tǒng),包括 用于執(zhí)行第一線程的至少一個處理器,所述第一線程包括在要并行執(zhí)行的多個線程中,所述第一線程包括原子事務(wù)處理; 事務(wù)處理存儲器庫,用于在所述原子事務(wù)處理執(zhí)行期間將所述原子事務(wù)處理分配的存儲器與標(biāo)識符相關(guān)聯(lián),所述標(biāo)識符用于區(qū)別所述原子事務(wù)處理和與所述第一線程關(guān)聯(lián)的其他事務(wù)處理;以及 存儲器管理器,用于執(zhí)行對所述原子事務(wù)處理分配的存儲器部分解除分配的請求,延遲對所述存儲器部分解除分配,在數(shù)據(jù)結(jié)構(gòu)中記錄與所述解除分配請求相關(guān)聯(lián)的存儲器部分,如果所述原子事務(wù)處理提交,則所述數(shù)據(jù)結(jié)構(gòu)列出要釋放的存儲器對象,響應(yīng)成功提交所述原子事務(wù)處理,至少部分基于所述標(biāo)識符來釋放所述存儲器部分。
2.如權(quán)利要求I所述的系統(tǒng),其中所述至少一個處理器包括多核處理器。
3.如權(quán)利要求I所述的系統(tǒng),其中所述至少一個處理器包括多個處理器。
4.如權(quán)利要求I所述的系統(tǒng),所述事務(wù)處理存儲器庫還在線程本地存儲裝置中存儲所述標(biāo)識符和所述數(shù)據(jù)結(jié)構(gòu)。
5.如權(quán)利要求4所述的系統(tǒng),其中所述原子事務(wù)處理包括嵌套在所述原子事務(wù)處理中的另外的事務(wù)處理,所述事務(wù)處理存儲器庫還在所述線程本地存儲裝置中以堆棧格式存儲與每個相應(yīng)事務(wù)處理有關(guān)的標(biāo)識符和數(shù)據(jù)結(jié)構(gòu)。
6.如權(quán)利要求I所述的系統(tǒng),其中由所述原子事務(wù)處理分配的存儲器包括共享存儲器。
7.如權(quán)利要求I所述的系統(tǒng),其中所述原子事務(wù)處理包括對所述事務(wù)處理存儲器庫的調(diào)用。
8.一種用于管理事務(wù)處理的方法,包括 執(zhí)行第一線程,所述第一線程包括在要經(jīng)由至少一個處理器并行執(zhí)行的多個線程中,所述第一線程包括原子事務(wù)處理; 在所述原子事務(wù)處理執(zhí)行期間將所述原子事務(wù)處理分配的存儲器與標(biāo)識符相關(guān)聯(lián),所述標(biāo)識符用于區(qū)別所述原子事務(wù)處理和與所述第一線程關(guān)聯(lián)的所有其他事務(wù)處理; 執(zhí)行對所述原子事務(wù)處理分配的存儲器部分解除分配的請求; 延遲對所述存儲器部分解除分配; 在數(shù)據(jù)結(jié)構(gòu)中記錄與所述解除分配請求相關(guān)聯(lián)的存儲器部分,如果所述原子事務(wù)處理提交,則所述數(shù)據(jù)結(jié)構(gòu)列出要釋放的存儲器對象; 響應(yīng)成功提交所述原子事務(wù)處理,至少部分基于所述標(biāo)識符來釋放所述存儲器部分。
9.如權(quán)利要求8所述的方法,其中所述至少一個處理器包括多個處理器。
10.如權(quán)利要求8所述的方法,其中所述至少一個處理器包括多核處理器。
11.如權(quán)利要求8所述的方法,還包括在線程本地存儲裝置中存儲所述標(biāo)識符和所述數(shù)據(jù)結(jié)構(gòu)。
12.如權(quán)利要求11所述的方法,其中所述第一線程還包括嵌套在所述第一線程的所述原子事務(wù)處理中的另外的事務(wù)處理,并且其中在線程本地存儲裝置中存儲所述標(biāo)識符和所述數(shù)據(jù)結(jié)構(gòu)包括在所述線程本地存儲裝置中以堆棧格式存儲與每個相應(yīng)事務(wù)處理有關(guān)的標(biāo)識符和數(shù)據(jù)結(jié)構(gòu)。
13.如權(quán)利要求8所述的方法,其中由所述原子事務(wù)處理分配的存儲器包括共享存儲器。
14.如權(quán)利要求8所述的方法,還包括在所述原子事務(wù)處理執(zhí)行期間執(zhí)行對訪問軟件事務(wù)處理存儲器庫的調(diào)用。
15.一種用于管理事務(wù)處理的裝置,包括 用于執(zhí)行第一線程的部件,所述第一線程包括在要經(jīng)由至少一個處理器并行執(zhí)行的多個線程中,所述第一線程包括原子事務(wù)處理; 用于在所述原子事務(wù)處理執(zhí)行期間將所述原子事務(wù)處理分配的存儲器與標(biāo)識符相關(guān)聯(lián)的部件,所述標(biāo)識符用于區(qū)別所述原子事務(wù)處理和與所述第一線程關(guān)聯(lián)的所有其他事務(wù)處理; 執(zhí)行對所述原子事務(wù)處理分配的存儲器部分解除分配的請求的部件; 延遲對所述存儲器部分解除分配的部件; 在數(shù)據(jù)結(jié)構(gòu)中記錄與所述解除分配請求相關(guān)聯(lián)的存儲器部分的部件,如果所述原子事務(wù)處理提交,則所述數(shù)據(jù)結(jié)構(gòu)列出要釋放的存儲器對象; 響應(yīng)成功提交所述原子事務(wù)處理,至少部分基于所述標(biāo)識符來釋放所述存儲器部分的部件。
16.如權(quán)利要求15所述的裝置,其中所述至少一個處理器包括多個處理器。
17.如權(quán)利要求15所述的裝置,其中所述至少一個處理器包括多核處理器。
18.如權(quán)利要求15所述的裝置,還包括在線程本地存儲裝置中存儲所述標(biāo)識符和所述數(shù)據(jù)結(jié)構(gòu)的部件。
19.如權(quán)利要求18所述的裝置,其中所述第一線程還包括嵌套在所述第一線程的所述原子事務(wù)處理中的另外的事務(wù)處理,并且其中在線程本地存儲裝置中存儲所述標(biāo)識符和所述數(shù)據(jù)結(jié)構(gòu)包括在所述線程本地存儲裝置中以堆棧格式存儲與每個相應(yīng)事務(wù)處理有關(guān)的標(biāo)識符和數(shù)據(jù)結(jié)構(gòu)。
20.如權(quán)利要求15所述的裝置,其中由所述原子事務(wù)處理分配的存儲器包括共享存儲器。
21.如權(quán)利要求15所述的裝置,還包括在所述原子事務(wù)處理執(zhí)行期間執(zhí)行對訪問軟件事務(wù)處理存儲器庫的調(diào)用的部件。
全文摘要
方法和系統(tǒng)提供用于在事務(wù)處理碼中,包括在嵌套事務(wù)處理碼中時管理存儲器分配和解除分配。方法和系統(tǒng)通過使用諸如序號等標(biāo)識符管理事務(wù)處理存儲器操作以處理事務(wù)處理中的存儲器管理。方法和系統(tǒng)也保持在事務(wù)處理中止和提交時要執(zhí)行的延遲動作列表。與一個或多個事務(wù)處理相關(guān)聯(lián)的多個存儲器管理例程檢查當(dāng)前事務(wù)處理的事務(wù)處理序號,操控提交和/或撤消日志,以及設(shè)置/使用相關(guān)聯(lián)對象的事務(wù)處理序號,但并不限于此。方法和系統(tǒng)在保留事務(wù)處理語義的同時,提供用于事務(wù)處理碼內(nèi)的存儲器分配和解除分配。本文也描述和聲明了其他實施例。
文檔編號G06F12/02GK102929785SQ20121027772
公開日2013年2月13日 申請日期2007年5月1日 優(yōu)先權(quán)日2006年5月2日
發(fā)明者B.赫奇伯格, B.薩哈, A.-R.阿迪-塔巴塔拜 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
临漳县| 福海县| 宾川县| 大关县| 山阴县| 绥中县| 芦溪县| 花莲市| 瓦房店市| 无棣县| 惠州市| 张家港市| 佛坪县| 平凉市| 潢川县| 绥芬河市| 剑阁县| 景洪市| 科技| 环江| 莫力| 通江县| 仙游县| 阜城县| 交城县| 屏山县| 宝坻区| 陆河县| 中山市| 邵阳县| 临高县| 姚安县| 北京市| 芜湖市| 沽源县| 延吉市| 盐池县| 鄂托克旗| 贵溪市| 泽库县| 阳城县|