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