美章網 資料文庫 多線程對數據通信的重要性范文

多線程對數據通信的重要性范文

本站小編為你精心準備了多線程對數據通信的重要性參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。

作者:李毅程運李秉智單位:四川省郵電管理局成都重慶郵電學院計算機系

在設計數據通信軟件系統的過程中,由于硬件需要與遠程設備進行通信,因此從在通信信道的一端發出命令開始,到收方從通信信道的另一端返回的最終響應為止,必然會出現一個時間上的延遲。

由于時間延遲,如我們仍按以往的習慣實現系統,程序中必然有圖1所示的類似的一個循環。數據通信軟件系統。按以往的習慣實現必然包含有類似的一個小程序,它接受用戶的輸入進行處理并產生輸出結果。戶的輸入而被掛起,也即程序將無限期地等待下去,直到用戶提供了輸入為止。一旦用戶提供輸入就會得到處理,并產生相應的輸出,系統仍舊返回去等待新的輸入。

而作為實現數據鏈路層的一部分,要求軟件在設計上應該能夠相應地進行延時等待,如按以往的習慣實現的通信系統,整個軟件實際上是按一種同步格式進行工作的,同步循環的產生極大地影響了通信系統的性能。如何解決這個問題?為此我們必須重新選擇編程模型,用一個更為恰當的術語——多線程技術,以適應數據通信系統實際需要。

1多線程技術模型的適用場合

假如有一個系統,它的功能上等同于一個同步系統,但是在設計上,程序不應無限期地去等待用戶輸入。在設計上必須考慮下列內容:

有一個主程序循環等待用戶輸入的發生,但這個循環并不是專門為等待某個輸入數據;

提供一個處理用戶輸入的模塊;

提供一套機制,使得當發生用戶輸入時,主程序循環能及時通知處理輸入的模塊。凡是復合上述條件的,均可用多線程技術編程的思想加以解決。圖2所示的為一個多線程技術模型。主循環負責從用戶界面接收用戶輸入事件,并負責通知需要處理這個事件的相應模塊。

這種系統之所以被稱為多線程技術,是因為程序中存在著多個線程(圖中的虛線)。主循環當(且僅當)發生用戶輸入時才作出響應,并負責通知適當的輸入處理模塊。整個系統是按照多線程技術的用戶輸入這一實質來進行設計的。

從圖2中我們看到,即使其中的一個用戶從不響應,則系統也能夠處理另一個用戶的輸入。經過上述轉變,主程序循環可以完全負責調度管理,這其中包括了優先級和數據沖突方面的內容。按照模塊化風格來進行設計,增加額外的用戶時主程序循環就不必發生變化,只需要復制一個用戶界面模塊和一個輸入處理模塊。在了解了軟件系統中的同步和多線程技術操作不同特點后,我們接下來探討,本系統的數據通信設計應該用什么模型進行,選用同步模型編程還是多線程技術模型編程?

2數據通信和多線程技術系統

我們知道在OSI棧式結構的一組協議中,最低層的是物理層,它負責實際的數據傳輸;而頂層的是一些應用層,負責與用戶接口。在本地計算機上的物理層負責把數據傳送到通信鏈路另一端的對等層上。傳送完數據之后,物理層應該處于一種等待狀態,等待接收從上面的數據鏈路層發來的命令,或是從對等層傳來的數據。物理層不能因為服務于這兩個實體中的一個而拒絕另一個。因此在本質上說,物理層是工作于多線程技術模式下。圖3中說明這種操作對于任何層來說都是適用的。給定的任何一層N,在任何一個時刻,都應該能接收來自上層或下層的命令/響應。盡可能不要在為某一層提供服務的同時而把另一層排斥在外。我們的系統也應該按照這種方式進行設計,使其能很好地滿足這些要求。

3多線程技術系統的數據通信設計

通過上述探討,我們已經了解,本數據通信的設計其本質上也是多線程技術模型。為詳細說明有關多線程技術系統的設計框架,下面以一數據通信系統為例,并深入闡述其多線程技術模式編程的框架。

3.1數據通信系統中多線程技術編程要素

我們在數據通信系統中多線程技術編程時所掌握的要素如下:

主循環——通常也叫做主事件循環,因為它負責接收和傳送事件.這個模塊同時還肩負著調度的功能;

為主循環產生事件的模塊,或者說是以某種方式向主循環通知事件;

接收通知的模塊,主事件循環通知它所發生的事件。這個模塊可以稱為“數據處理器”;

一種使主事件循環能夠知道所有它需要監視的事件的機制。這樣,每個EVENTHANDLER就可以分別通知主事件循環,它需要哪些事件。圖4中顯示了一個多線程技術編程的模型,整個多線程技術編程的框架模型可以看成由一個主事件循環、OS事件發生器、事件處理器、回調和事件注冊機制構成的。

3.2線程技術編程框架設計

這里我們著重介紹一組類的設計,這組類構成此數據通信多線程技術模式編程的框架如下。

scheduler——該類實現了主事件循環。事件處理程序要向scheduler聲明它們的存在,以及它們所要監視的事件;而反過來,scheduler在事件發生時要通知事件處理程序。

eventHandler——這是我們系統中所有事件處理程序的基類eventHandler有一個通用的接口SetEven(),這使得scheduler可以知道每個給定的eventHandler實例所監視的是什么事件。接口中還提供了通用的回調函數CheckEven()和Event-Callback(),對scheduler所報告的各種事件進行必要的處理。

inputHandler——這是eventHandler類的一個子類,它提供對文件上輸入的各種處理功能。從這個類可以繼承派生出其他的類,并重寫函數EventCallback()當給定文件上的輸入就緒時執行某種特定的操作。

timerHandler---這是eventHandler類的一個子類,它提供對定時器的各種處理功能。從這個類可以繼續派生出其他的類,并重寫函數Event-Callback(),對發生超時的定時器的定時器采取特定的操作。各類主要操作如下。

SetInput(),屬于inputHandler,這個函數接受一個指向fd-set結構的指針,把代表它的文件描述符的那一位,置1.

SetTimeout(),屬于timerHandler,這個函數接受一個指向timeval結構的指針,并設置該定時器在超時前所需的時間。

InputReadCallback(),屬于inputHandler,這個函數對輸入進行處理。

CheckInput(),屬于inputHandler,這個函數接受一個指向由select返回的指向fd_set結構的指針,并檢查它的文件描述符上是否有數據準備好輸入。它調用InputReadyCallback()取處理所有的輸入。

TimeoutCallback(),屬于timerHandler,這個函數對超時進行處理。

CheckTimeout(),屬于timerHandler,這個函數對比傳遞給它的timeval結構中的當前時間的值,并確定是否已經超時,如果已經超時,它就調用TimeoutCallback.用多線程技術編程模型設計的此數據通信類定義如下,此類的層次結構和相互關系如圖5所示。(如UNIX環境等),輔以人工編碼,經過編譯、測試就可獲得一實用系統。這樣設計出的配置管理系統,由于采用了先進的國際標準,保證了本系統與其它采用相同標準系統的互連和互操作。系統模型設計采用了功能實體設計,這樣便于實現和維護。

4結束語

電信管理網原理解決了電信網管理所面臨的難題,它把網絡的管理與業務和事務的管理統一起來,運用功能實體化和接口標準化的方法,適應了網絡技術的發展和技術先進的電信網的需要。用電信管理網原理管理各種電信網是發展趨勢,本文只是從管理功能角度對電信管理網原理的應用進行分析與設計。但本系統只是從管理功能的角度將電信管理網的概念和標準應用于通信網的一個嘗試,還有許多問題值得探討。

主站蜘蛛池模板: 亚洲伊人久久精品影院| 国产一区中文字幕| 99在线免费观看| 成年人在线播放| 久久这里只精品国产免费10| 欧美激情视频网| 免费在线观看黄色毛片| 色噜噜狠狠狠狠色综合久不| 国产欧美日韩在线观看一区二区 | 91精品国产色综合久久不| 少妇高潮太爽了在线视频| 久久久久九九精品影院| 最近中文字幕免费完整| 亚洲图片欧美在线| 波多野结衣教师6| 免费特级黄色片| 美女尿口免费影视app| 国产乱理伦片在线观看| 黑人边吃奶边扎下面激情视频| 国产精品内射视频免费| 91蝌蚪在线视频| 夜夜揉揉日日人人视频| 一区二区乱子伦在线播放| 我想看一级毛片| 久久久久久亚洲av无码蜜芽| 日韩欧国产精品一区综合无码| 亚洲伊人久久大香线蕉在观| 欧美重口另类在线播放二区| 人妖系列精品视频在线观看| 精品久久洲久久久久护士免费| 国产AV无码专区亚洲AV琪琪| 青青草国产三级精品三级| 国产成人一区二区三区视频免费| 亚洲五月综合网色九月色| 国产精品妇女一二三区| 7777精品久久久大香线蕉| 在线视频你懂的国产福利| jizz老师喷水| 女人张开腿男人猛桶视频| 一本色道久久88加勒比—综合| 成人性生交大片免费看好|