一種協(xié)議棧設(shè)計(jì)和實(shí)現(xiàn)
基于驅(qū)動(dòng)程序方式的一個(gè)顯著優(yōu)點(diǎn)就在于上下文切換的次數(shù)僅僅是基于控制臺(tái)應(yīng)用程序的函數(shù),并不基于協(xié)議層的數(shù)量。這樣一來(lái)就可以減少實(shí)時(shí)操作系統(tǒng)保存和恢復(fù)任務(wù)上下文的次數(shù),因而空出時(shí)間作更有意義的事,例如執(zhí)行應(yīng)用程序代碼。
另一個(gè)好處在于,數(shù)據(jù)和控制信息更簡(jiǎn)單的在層與層之間傳輸,因?yàn)樗械?a class="contentlabel" href="http://m.butianyuan.cn/news/listbylabel/label/協(xié)議">協(xié)議層都處于同一個(gè)上下文中,所以相關(guān)的數(shù)據(jù)結(jié)構(gòu)自動(dòng)地為上下層所接受,結(jié)果你不必把他們?cè)谌蝿?wù)間隊(duì)列中傳送,由此產(chǎn)生的是,同時(shí)也避免了那些臨界區(qū)系統(tǒng)由此可改進(jìn)中斷和優(yōu)先級(jí)任務(wù)的響應(yīng)時(shí)間。
3 緩沖區(qū)拷貝
緩沖區(qū)拷貝效率不高的第一個(gè)潛在因素在于:當(dāng)數(shù)據(jù)在層與層之間傳輸時(shí),數(shù)據(jù)緩沖區(qū)的分配、拷貝和釋放,這與協(xié)議棧的結(jié)構(gòu)無(wú)關(guān),僅與緩沖區(qū)本身的結(jié)構(gòu)有關(guān)。
一般來(lái)說(shuō),有兩種常用的方式用于協(xié)議棧層與層之間傳送數(shù)據(jù),如圖3所示。然而,這兩種方式均有缺陷,我們假設(shè),應(yīng)用層有一些數(shù)據(jù)需要傳送,通常我們把它稱作消息,消息需被送至協(xié)議棧的最底層,因?yàn)樵诰彌_區(qū)中沒(méi)有多余的空間來(lái)存放頭尾信息,而協(xié)議層必須給數(shù)據(jù)本身加上頭尾信息,協(xié)議層或分配一個(gè)足夠大的緩沖區(qū)得以容納消息本身和頭尾信息,或分配兩個(gè)小緩沖區(qū),一個(gè)用于頭信息,一個(gè)用于尾信息,然后用指針將三個(gè)緩沖區(qū)鏈接起來(lái)。
矢量控制相關(guān)文章:矢量控制原理
評(píng)論