Ⅰ 最常用的多路復用技術主要有哪三個
最常用的多路復用技術指的是:頻分多路復用和時分多路復用兩類
頻分多路復用:電話帶帆系統和鏈弊有線電視.
時分多路復用:計算蠢喚雹機通信
Ⅱ 多路復用的多路復用分類
(FDM) 頻分復用按頻譜劃分信道,多路基帶信號被調制在不同的頻譜上。因此它們在頻譜上不會重疊,即在頻率上正交,但在時間上是重疊的,可以同時在一個信道內傳輸。在頻分復用系統中,發送端的各路信號m1(t),m2(t),…,mn(t)經各自的低通濾波器分別對各路載波f1(t),f2(t),…,fn(t)進行調制,再由各路帶通濾波器濾出相應的邊帶(載波電話通常採用單邊帶調制),相加後便形成頻分多路信號。在接收端,各路的帶通濾波器將各路信號分開,並分別與各路的載波f1(t),f2(t),…,fn(t)相乘,實現相干解調,便可恢復各路信號,實現頻分多路通信。
為了構造大容量的頻分復用設備,現代大容量載波系列的頻譜是按模塊結構由各種基礎群組合而成。根據國際電報電話咨詢委員會(CCITT)建議,基礎群分為前群、基群、超群和主群。
①前群,又稱3路群。它由3個話路經變頻後組成。各話路變頻的載頻分別為12,16,20千赫。取上邊帶,得到頻譜為12~24千赫的前群信號。
②基群,又稱12路群。它由4個前群經變頻後組成。各前群變頻的載頻分別為84,96,108,120千赫。取下邊帶,得到頻譜為 60~108千赫的基群信號。基群也可由12個話路經一次變頻後組成。
③超群,又稱60路群。它由5個基群經變頻後組成。各基群變頻的載頻分別為420,468,516,564,612千赫。取下邊帶,得到頻譜為312~552千赫的超群信號。
④主群,又稱300路群。它由5個超群經變頻後組成。各超群變頻的載頻分別為1364,1612,1860,2108,2356千赫。取下邊帶,得到頻譜為812~2044千赫的主群信號。3個主群可組成 900路的超主群。4個超主群可組成3600路的巨群。
頻分復用的優點是信道復用率高,允許復用路數多,分路也很方便。
因此,頻分復用已成為現代模擬通信中最主要的一種復用方式,在模擬式遙測、有線通信、微波接力通信和衛星通信中得到廣泛應用。 若媒體能達到的位傳輸速率超培雹過傳輸數據所需的數據傳輸速率,則可採用時分多路復用TDM技術,也即將一條物理信道按時間分成若干個時間片輪流地分配給多個信號使用。每一時間片由復用的一個信號佔用,而不像FDM那樣,同一時間同時發送多路信號。這樣,利用每個信號在時間上的交叉,就可以在一條物理信道上傳輸多個數字信號。這種交叉可以是胡中滑位一級的,也可以是由位元組組成的塊或更大的信息組進行交叉。如圖2.12(b)中的多路復用器有8個輸入,每個輸入的數據速率假設為9.616ps,那麼一條容量達76.8kbps的線路就可容納8個信號源。該圖描述的時分多路復用四M方案,也稱同步(Synchronous)時分多路復用TDM,它的時間片是預先分配好的,而且是固定不變褲臘的,因此各種信號源的傳輸定時是同步的。與此相反,非同步時分多路復用1DM允許動態地分配傳輸媒體的時間片。
時分多路復用TDM不僅僅局限於傳輸數字信號,也可以同時交叉傳輸模擬信號。另外,對於模擬信號,有時可以把時分多路復用和頻分多路復用技術結合起來使用。一個傳輸系統,可以頻分成許多條子通道,每條子通道再利用時分多路復用技術來細分。在寬頻區域網絡中可以使用這種混合技術。 碼分多址通信原理:
碼分多址(CDMA,Code-DivisionMultiple Access)通信系統中,用戶傳輸信息所用的信號不是靠頻率或時隙的不同來區分,而是用各自不同的編碼序列來區分,或者說,靠信號的不同波形來區分。如果從頻域或時域來觀察,多個CDMA信號是互相重疊的。接收機用相關器可以在多個CDMA信號中選出其中使用預定碼型的信號。其它使用不同碼型的信號因為和接收機本地產生的碼型不同而不能被解調。它們的存在類似於在信道中引入了雜訊和干擾,通常稱之為多址干擾。
在CDMA蜂窩通信系統中,用戶之間的信息傳輸是由基站進行轉發和控制的。為了實現雙工通信,正向傳輸和反向傳輸各使用一個頻率,即通常所謂的頻分雙工。無論正向傳輸或反向傳輸,除去傳輸業務信息外,還必須傳送相應的控制信息。為了傳送不同的信息,需要設置相應的信道。但是,CDMA通信系統既不分頻道又不分時隙,無論傳送何種信息的信道都靠採用不同的碼型來區分。 類似的信道屬於邏輯信道,這些邏輯信道無論從頻域或者時域來看都是相互重疊的,或者說它們均佔用相同的頻段和時間。
更為詳細的、更為系統的介紹
CDMA是碼分多址(Code Division Multiple Access)技術的縮寫,是近年來在數字移動通信進程中出現的一種先進的無線擴頻通信技術,它能夠滿足市場對移動通信容量和品質的高要求,具有頻譜利用率高、話音質量好、保密性強、掉話率低、電磁輻射小、容量大、覆蓋廣等特點,可以大量減少投資和降低運營成本。
CDMA最早由美國高通公司推出,近幾年由於技術和市場等多種因素作用得以迅速發展,目前全球用戶已突破5000萬,我國也在北京、上海等城市開通了CDMA電話網。 空分多址空分多址(SDMA),也稱為多光束頻率復用。它通過標記不同方位的相同頻率的天線光束來進行頻率的復用。
SDMA系統可使系統容量成倍增加,使得系統在有限的頻譜內可以支持更多的用戶,從而成倍的提高頻譜使用效率。
Ⅲ 什麼是多路復用有幾種常用的多路復用技術
數據通信系統或計算機網路系統中,傳輸媒體的帶寬或容量往往超過傳輸單一信號的需求,為了有效地利用通信線路,希望一個敬敬信道同時傳輸多路信號,這就是所謂的多路復用隱稿盯技術(MultiplexiI1g)。採用多路復用技術能把多個信號組合起來在一條物理信道上進行傳輸,在遠距離傳輸時可大大節省電纜的安裝和維護費用。頻分灶和多路復用FDM (Frequency Division Multiplexing)和時分多路復用TDM (Time Di-vision MultiplexiIIg)是兩種最常用的多路復用技術。
Ⅳ 信道復用方式有哪幾種
頻分復用
1頻分復用
頻分復用(FDM,Frequency Division Multiplexing)就是將用於傳輸信道的總帶寬劃分成若干個子頻帶(或稱子信道),每一個子信道傳輸1路信號。頻分復用要求總頻率寬度大於各個子信道頻率之和,同時為了保證各子信道中所傳輸的信號互不幹擾,應在各子信道之間設立隔離帶,這樣就保證了各路信號互不幹擾(條件之一)。頻分復用技術的特點是所有子信道傳輸的信號以並行的方式工作,每一路信號傳輸時可不考慮傳輸時延,因而頻分復用技術取得了非常廣泛的應用。頻分復用技術除傳統意義上的頻分復用(FDM)外,還有一種是正交頻分復用(OFDM)。
1.1傳統的頻分復用
傳統的頻分復用典型的應用莫過於廣電HFC網路電視信號的傳輸了,不管是模擬電視信號還是數字電視信號都是如此,因為對於數字電視信號而言,盡管在每一個頻道(8 MHz)以內是時分復用傳輸的,但各個頻道之間仍然是以頻分復用的方式傳輸的。
1.2正交頻分復用
OFDM(Orthogonal Frequency Division Multiplexing)實際是一種多載波數字調制技術。OFDM全部載波頻率有相等的頻率間隔,它們是一個基本振盪頻率的整數倍,正交指各個載波的信號頻譜是正交的。
OFDM系統比FDM系統要求的帶寬要小得多。由於OFDM使用無干擾正交載波技術,單個載波間無需保護頻帶,這樣使得可用頻譜的使用效率更高。另外,OFDM技術可動態分配在子信道中的數據,為獲得最大的數據吞吐量,多載波調制器可以智能地分配更多的數據到雜訊小的子信道上。目前OFDM技術已被廣泛應用於廣播式的音頻和視頻領域以及民用通信系統中,主要的應用包括:非對稱的數字用戶環線(ADSL)、數字視頻廣播(DVB)、高清晰度電視(HDTV)、無線區域網(WLAN)和第4代(4G)移動通信系統等。
時分復用
2時分復用
時分復用(TDM,Time Division Multiplexing)就是將提供給整個信道傳輸信息的時間劃分成若干時間片(簡稱時隙),並將這些時隙分配給每一個信號源使用,每一路信號在自己的時隙內獨占信道進行數據傳輸。時分復用技術的特點是時隙事先規劃分配好且固定不變,所以有時也叫同步時分復用。其優點是時隙分配固定,便於調節控制,適於數字信息的傳輸;缺點是當某信號源沒有數據傳輸時,它所對應的信道會出現空閑,而其他繁忙的信道無法佔用這個空閑的信道,因此會降低線路的利用率。時分復用技術與頻分復用技術一樣,有著非常廣泛的應用,電話就是其中最經典的例子,此外時分復用技術在廣電也同樣取得了廣泛地應用,如SDH,ATM,IP和HFC網路中CM與CMTS的通信都是利用了時分復用的技術。
波分復用
3波分復用
光通信是由光來運載信號進行傳輸的方式。在光通信領域,人們習慣按波長而不是按頻率來命名。因此,所謂的波分復用(WDM,Wavelength Division Multiplexing)其本質上也是頻分復用而已。WDM是在1根光纖上承載多個波長(信道)系統,將1根光纖轉換為多條「虛擬」纖,當然每條虛擬纖獨立工作在不同波長上,這樣極大地提高了光纖的傳輸容量。由於WDM系統技術的經濟性與有效性,使之成為當前光纖通信網路擴容的主要手段。波分復用技術作為一種系統概念,通常有3種復用方式,即1 310 nm和1 550 nm波長的波分復用、粗波分復用(CWDM,Coarse Wavelength Division Multiplexing)和密集波分復用(DWDM,Dense Wavelength Division Multiplexing)。
(1)1 310 nm和1 550 nm波長的波分復用
這種復用技術在20世紀70年代初時僅用兩個波長:1 310 nm窗口一個波長,1 550 nm窗口一個波長,利用WDM技術實現單纖雙窗口傳輸,這是最初的波分復用的使用情況。
(2)粗波分復用
繼在骨幹網及長途網路中應用後,波分復用技術也開始在城域網中得到使用,主要指的是粗波分復用技術。CWDM使用1 200~1 700 nm的寬窗口,目前主要應用波長在1 550 nm的系統中,當然1 310 nm波長的波分復用器也在研製之中。粗波分復用(大波長間隔)器相鄰信道的間距一般≥20 nm,它的波長數目一般為4波或8波,最多16波。當復用的信道數為16或者更少時,由於CWDM系統採用的DFB激光器不需要冷卻,在成本、功耗要求和設備尺寸方面,CWDM系統比DWDM系統更有優勢,CWDM越來越廣泛地被業界所接受。CWDM無需選擇成本昂貴的密集波分解復用器和「光放」EDFA,只需採用便宜的多通道激光收發器作為中繼,因而成本大大下降。如今,不少廠家已經能夠提供具有2~8個波長的商用CWDM系統,它適合在地理范圍不是特別大、數據業務發展不是非常快的城市使用。
(3)密集波分復用
密集波分復用技術(DWDM)可以承載8~160個波長,而且隨著DWDM技術的不斷發展,其分波波數的上限值仍在不斷地增長,間隔一般≤1.6 nm,主要應用於長距離傳輸系統。在所有的DWDM系統中都需要色散補償技術(克服多波長系統中的非線性失真——四波混頻現象)。在16波DWDM系統中,一般採用常規色散補償光纖來進行補償,而在40波DWDM系統中,必須採用色散斜率補償光纖補償。DWDM能夠在同一根光纖中把不同的波長同時進行組合和傳輸,為了保證有效傳輸,一根光纖轉換為多根虛擬光纖。目前,採用DWDM技術,單根光纖可以傳輸的數據流量高達400 Gbit/s,隨著廠商在每根光纖中加入更多信道,每秒太位的傳輸速度指日可待。
碼分復用
4碼分復用
碼分復用(CDM,Code Division Multiplexing)是靠不同的編碼來區分各路原始信號的一種復用方式,主要和各種多址技術結合產生了各種接入技術,包括無線和有線接入。例如在多址蜂窩系統中是以信道來區分通信對象的,一個信道只容納1個用戶進行通話,許多同時通話的用戶,互相以信道來區分,這就是多址。移動通信系統是一個多信道同時工作的系統,具有廣播和大面積覆蓋的特點。在移動通信環境的電波覆蓋區內,建立用戶之間的無線信道連接,是無線多址接入方式,屬於多址接入技術。聯通CDMA(Code Division Multiple Access)就是碼分復用的一種方式,稱為碼分多址,此外還有頻分多址(FDMA)、時分多址(TDMA)和同步碼分多址(SCDMA)。
(1)FDMA
FDMA頻分多址採用調頻的多址技術,業務信道在不同的頻段分配給不同的用戶。FDMA適合大量連續非突發性數據的接入,單純採用FDMA作為多址接入方式已經很少見。目前中國聯通、中國移動所使用的GSM行動電話網就是採用FDMA和TDMA兩種方式的結合。
(2)TDMA時分多址
TDMA時分多址採用了時分的多址技術,將業務信道在不同的時間段分配給不同的用戶。TDMA的優點是頻譜利用率高,適合支持多個突發性或低速率數據用戶的接入。除中國聯通、中國移動所使用的GSM行動電話網採用FDMA和TDMA兩種方式的結合外,廣電HFC網中的CM與CMTS的通信中也採用了時分多址的接入方式(基於DOCSIS1.0或1.1和Eruo DOCSIS1.0或1.1)。
(3)CDMA碼分多址
CDMA是採用數字技術的分支——擴頻通信技術發展起來的一種嶄新而成熟的無線通信技術,它是在FDM和TDM的基礎上發展起來的。FDM的特點是信道不獨占,而時間資源共享,每一子信道使用的頻帶互不重疊;TDM的特點是獨占時隙,而信道資源共享,每一個子信道使用的時隙不重疊;CDMA的特點是所有子信道在同一時間可以使用整個信道進行數據傳輸,它在信道與時間資源上均為共享,因此,信道的效率高,系統的容量大。CDMA的技術原理是基於擴頻技術,即將需傳送的具有一定信號帶寬的信息數據用一個帶寬遠大於信號帶寬的高速偽隨機碼(PN)進行調制,使原數據信號的帶寬被擴展,再經載波調制並發送出去;接收端使用完全相同的偽隨機碼,與接收的帶寬信號作相關處理,把寬頻信號換成原信息數據的窄帶信號即解擴,以實現信息通信。CDMA碼分多址技術完全適合現代移動通信網所要求的大容量、高質量、綜合業務、軟切換等,正受到越來越多的運營商和用戶的青睞。
(4)同步碼分多址技術
同步碼分多址(SCDMA,Synchrnous Code Division Multiplexing Access)指偽隨機碼之間是同步正交的,既可以無線接入也可以有線接入,應用較廣泛。廣電HFC網中的CM與CMTS的通信中就用到該項技術,例如美國泰立洋公司(Terayon)和北京凱視通電纜電視寬頻接入,結合ATDM(高級時分多址)和SCDMA上行信道通信(基於DOCSIS2.0或Eruo DOCSIS2.0)。
中國第3代移動通信系統也採用同步碼分多址技術,它意味著代表所有用戶的偽隨機碼在到達基站時是同步的,由於偽隨機碼之間的同步正交性,可以有效地消除碼間干擾,系統容量方面將得到極大的改善,它的系統容量是其他第3代移動通信標準的4~5倍。
空分復用
5空分復用
空分復用(SDM,Space Division Multiplexing)即多對電線或光纖共用1條纜的復用方式。比如5類線就是4對雙絞線共用1條纜,還有市話電纜(幾十對)也是如此。能夠實現空分復用的前提條件是光纖或電線的直徑很小,可以將多條光纖或多對電線做在一條纜內,既節省外護套的材料又便於使用。
統計復用
6統計復用
統計復用(SDM,Statistical Division Multiplexing)有時也稱為標記復用、統計時分多路復用或智能時分多路復用,實際上就是所謂的帶寬動態分配。統計復用從本質上講是非同步時分復用,它能動態地將時隙按需分配,而不採用時分復用使用的固定時隙分配的形式,根據信號源是否需要發送數據信號和信號本身對帶寬的需求情況來分配時隙,主要應用場合有數字電視節目復用器和分組交換網等,下面就以這兩種主要應用分別敘述。
6.1數字電視節目復用器
數字電視節目復用器主要完成對MPEG-2傳輸流(TS)的再復用功能,形成多節目傳送流(MPTS),用於數字電視節目的傳輸任務。所謂統計復用是指被復用的各個節目傳送的碼率不是恆定的,各個節目之間實行按圖像復雜程度分配碼率的原則。因為每個頻道(標准或增補)能傳多個節目,各個節目在同一時刻圖像復雜程度不一樣(一樣的概率很小),所以我們可以在同一頻道內各個節目之間按圖像復雜程度分配碼率,實現統計復用。
實現統計復用的關鍵因素:一是如何對圖像序列隨時進行復雜程度評估,有主觀評估和客觀評估兩種方法;二是如何適時地進行視頻業務的帶寬動態分配。使用統計復用技術可以提高壓縮效率,改進圖像質量,便於在1個頻道中傳輸多套節目,節約傳輸成本。
6.2分組交換網
分組交換網是繼電路交換網和報文交換網之後的一種新型交換網路,它主要用於數據通信,如X.25,幀中繼,DPT,SDH,GE和ATM都是分組交換的例子。分組交換是一種存儲轉發的交換方式,它將用戶的報文劃分成一定長度的分組(可以定長和不定長),以分組為存儲轉發。因此,它比電路交換的利用率高,比報文交換的時延小,具有實時通信的能力。分組交換利用統計時分復用原理,將1條數據鏈路復用成多個邏輯信道,最終構成1條主叫、被叫用戶之間的信息傳送通路,稱之為虛電路(即VC,兩個用戶終端設備在開始互相發送和接收數據之前需要通過網路建立邏輯上的連接),實現數據的分組傳送。分組交換網中有的支持統計復用,有的不支持統計復用,例如SDH就不支持統計復用,其帶寬是固定不變的,支持統計復用技術的主要有幀中繼、ATM和IP,下面作分別介紹。
(1)幀中繼
幀中繼是在X.25分組交換技術基礎上發展起來的一種快速分組交換傳輸技術,用戶信息以幀(可變長)為單位進行傳輸,並對用戶信息流進行統計復用。
(2)ATM
ATM支持面向連接(非物理的邏輯連接)的業務,具有很大的靈活性,可按照多媒體業務實際需要動態分配通信資源,對於特定業務,傳送速率隨信息到達的速率而變化,因此,ATM具有統計復用的能力,能夠適應任何類型的業務。
(3)DPT
DPT(Dynamic Packet Transport)是Sisco公司獨創的新一代優化動態分組的傳輸技術,吸收了SDH的優點而克服其缺點,將IP路由技術對寬頻的高效利用以及豐富的業務融合能力,和光纖環路的高帶寬及可靠的自愈功能緊密結合,由於所有節點都具有公平機制且支持帶寬統計復用,可成倍提高網路可用帶寬。
(4)吉位乙太網
GE(Gigabit Ethernet)是乙太網技術的延伸,是第3代乙太網,它主要處理數據業務,是目前廣電寬頻城域骨幹網採用的主流技術。乙太網交換機埠(RJ45)所帶的用戶信道使用率通常是不相同的,經常會出現有的信道很忙,有的信道處於空閑狀態,即便是乙太網交換機所有的埠都處於通信狀態下,還會涉及到帶寬的不同需求問題,而數據交換的特性在於突發性,只有通過統計復用,即帶寬動態分配才能降低忙閑不一的現象,從而最大限度地利用網路帶寬。
位元組間插復用
7位元組間插復用
在SDH(Synchronous Digital Hierarchy)中復用是指將低階通道層信號適配進高階通道,或將多個高階通道層信號適配進復用段的過程。我們知道SDH復用有標准化的復用結構,但每個國家或地區僅有一種復用路線圖,由硬體和軟體結合來實現,靈活方便。而位元組間插復用(BIDM,Byte Intertexture Division Multiplexing)是SDH中低級別的同步傳送模塊(STM, Synchronous Transport Mole)向高級別同步傳送模塊復用的一種方式,高級別的STM是低級別STM的4倍。如圖1所示的4個STM-1位元組間插復用進STM-4的示意圖,當然4個STM-4位元組間插復用進STM-16也一樣,其餘等級的同步傳送模塊以此類推。這里的位元組間插是指有規律地分別從4個STM-1中抽出1個位元組放進STM-4中。進行位元組間插復用,一是體現了SDH同步復用的設計思想;二是由AU-PTR(管理單元指針)的值,再通過位元組間插的規律性,就可以定位低速信號在高速信號中的位置,使低速信號可以方便地分出或插入高速信號,這也是SDH與PDH相比較的優勢之一,由於PDH低速信號在高速信號中位置的無規律性,從而高速信號插/分低速信號要一級一級進行復用/解復用,因為復用/解復用會增加信號的損傷,不利於大容量傳輸。
極化波復用
8極化波復用
極化波復用(Polarization Wavelength Division Multiplexing)是衛星系統中採用的復用技術,即一個饋源能同時接收兩種極化方式的波束,如垂直極化和水平極化,左旋圓極化和右旋圓極化。衛星系統中通常採用兩種辦法來實現頻率復用:一種是同一頻帶採用不同極化,如垂直極化和水平極化,左旋圓極化和右旋圓極化等;另一種是不同波束內重復使用同一頻帶,此辦法廣泛使用於多波束系統中。
Ⅳ IO多路復用的三種機制Select,Poll,Epoll
select、poll 和 epoll 都是 Linux API 提供的 IO 復用方式。
相信大家都了解了Unix五種IO模型,不了解的可以 => 查看這里
[1] blocking IO - 阻塞IO
[2] nonblocking IO - 非阻塞IO
[3] IO multiplexing - IO多路復用
[4] signal driven IO - 信號驅動IO
[5] asynchronous IO - 非同步IO
其中前面4種IO都可以歸類為synchronous IO - 同步IO,而select、poll、epoll本質上也都是同步I/O,因為他們都需要在讀寫事件就緒後自己負責進行讀寫,也就是說這個讀寫過程是阻塞的。
與多進程和多線程技術相比,I/O多路復用技術的最大優勢是系統開銷小,系統不必創建進程/線程,也不必維護這些進程/線程,從而大大減小了系統的開銷。
在介紹select、poll、epoll之前,首先介紹一下Linux操作系統中 基礎的概念 :
我們先分析一下select函數
int select(int maxfdp1,fd_set *readset,fd_set *writeset,fd_set *exceptset,const struct timeval *timeout);
【參數說明】
int maxfdp1 指定待測試的文件描述字個數,它的值是待測試的最大描述字加1。
fd_set *readset , fd_set *writeset , fd_set *exceptset
fd_set 可以理解為一個集合,這個集合中存放的是文件描述符(file descriptor),即文件句柄。中間的三個參數指定我們要讓內核測試讀、寫和異茄攜常條件的文件描述符集合。如果對某一個的條件不感興趣,就可以把它設為空指針。
const struct timeval *timeout timeout 告知內核等待所指定文件描述符集合中的任何一個就緒可花多少時間。其timeval結構用於指定這段時間的秒數和微秒數。
【返回值】
int 若有就緒描述符返回其數目,若超時則為0,若出錯則為-1
select()的機制中提供一種 fd_set 的數據結構,實際上是一個long類型的數組,每一個數組元素都能與一打開的文件句柄(不管是Socket句柄,還是其他文件或命名管道或設備句柄)建立聯系,建顫褲伏立聯系的工作由程序員完成,當調用select()時,由內核根據IO狀態修改fd_set的內容,由此來通知執行了select()的進程哪一Socket或文件可讀。
從純前流程上來看,使用select函數進行IO請求和同步阻塞模型沒有太大的區別,甚至還多了添加監視socket,以及調用select函數的額外操作,效率更差。但是,使用select以後最大的優勢是用戶可以在一個線程內同時處理多個socket的IO請求。用戶可以注冊多個socket,然後不斷地調用select讀取被激活的socket,即可達到在同一個線程內同時處理多個IO請求的目的。而在同步阻塞模型中,必須通過多線程的方式才能達到這個目的。
poll的機制與select類似,與select在本質上沒有多大差別,管理多個描述符也是進行輪詢,根據描述符的狀態進行處理,但是poll沒有最大文件描述符數量的限制。也就是說,poll只解決了上面的問題3,並沒有解決問題1,2的性能開銷問題。
下面是pll的函數原型:
poll改變了文件描述符集合的描述方式,使用了 pollfd 結構而不是select的 fd_set 結構,使得poll支持的文件描述符集合限制遠大於select的1024
【參數說明】
struct pollfd *fds fds 是一個 struct pollfd 類型的數組,用於存放需要檢測其狀態的socket描述符,並且調用poll函數之後 fds 數組不會被清空;一個 pollfd 結構體表示一個被監視的文件描述符,通過傳遞 fds 指示 poll() 監視多個文件描述符。其中,結構體的 events 域是監視該文件描述符的事件掩碼,由用戶來設置這個域,結構體的 revents 域是文件描述符的操作結果事件掩碼,內核在調用返回時設置這個域
nfds_t nfds 記錄數組 fds 中描述符的總數量
【返回值】
int 函數返回fds集合中就緒的讀、寫,或出錯的描述符數量,返回0表示超時,返回-1表示出錯;
epoll在Linux2.6內核正式提出,是基於事件驅動的I/O方式,相對於select來說,epoll沒有描述符個數限制,使用一個文件描述符管理多個描述符,將用戶關心的文件描述符的事件存放到內核的一個事件表中,這樣在用戶空間和內核空間的只需一次。
Linux中提供的epoll相關函數如下:
1. epoll_create 函數創建一個epoll句柄,參數 size 表明內核要監聽的描述符數量。調用成功時返回一個epoll句柄描述符,失敗時返回-1。
2. epoll_ctl 函數注冊要監聽的事件類型。四個參數解釋如下:
epoll_event 結構體定義如下:
3. epoll_wait 函數等待事件的就緒,成功時返回就緒的事件數目,調用失敗時返回 -1,等待超時返回 0。
epoll是Linux內核為處理大批量文件描述符而作了改進的poll,是Linux下多路復用IO介面select/poll的增強版本,它能顯著提高程序在大量並發連接中只有少量活躍的情況下的系統CPU利用率。原因就是獲取事件的時候,它無須遍歷整個被偵聽的描述符集,只要遍歷那些被內核IO事件非同步喚醒而加入Ready隊列的描述符集合就行了。
epoll除了提供select/poll那種IO事件的水平觸發(Level Triggered)外,還提供了邊緣觸發(Edge Triggered),這就使得用戶空間程序有可能緩存IO狀態,減少epoll_wait/epoll_pwait的調用,提高應用程序效率。
LT和ET原本應該是用於脈沖信號的,可能用它來解釋更加形象。Level和Edge指的就是觸發點,Level為只要處於水平,那麼就一直觸發,而Edge則為上升沿和下降沿的時候觸發。比如:0->1 就是Edge,1->1 就是Level。
ET模式很大程度上減少了epoll事件的觸發次數,因此效率比LT模式下高。
一張圖總結一下select,poll,epoll的區別:
epoll是Linux目前大規模網路並發程序開發的首選模型。在絕大多數情況下性能遠超select和poll。目前流行的高性能web伺服器Nginx正式依賴於epoll提供的高效網路套接字輪詢服務。但是,在並發連接不高的情況下,多線程+阻塞I/O方式可能性能更好。
既然select,poll,epoll都是I/O多路復用的具體的實現,之所以現在同時存在,其實他們也是不同歷史時期的產物
Ⅵ 常用的多路復用技術有哪些各有什麼特點
有時分復用、頻分復用、波分復用和碼分復用,關於特點- -沒研究
Ⅶ 什麼是多路復用常用的多路復用技術是哪幾種
多路復用-指在同一傳輸介質上同時傳輸多個不同信號源發出的信號,並且信號之間棗薯互不影響.目的是提高介質的利用率.
多路復用分頻分多路復用(把多個信號調制在不同的載波頻率上,從而在同一介質上實橋舉現同時傳送多路信號,即將信道的可用頻帶按頻率分割多路凳消者信號的方法劃分為若干互不交疊的頻段,每路信號占據其中一個頻段,從而形成許多個子信道;在接收端用適當的濾波器將多路信號分開,分別進行解調和終端處理的技術)和時分多路復用(將多路信號按一定的時間間隔相間傳送以在一條傳輸線上實現「同時」傳送多路信號的技術).