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