無阻塞服務

無阻塞服務

非阻塞,就是調用(函式),(函式)立即返回,通過select通知調用者。無阻塞服務是指系統對於用戶或者進程的請求或調用快速反應。要實現無阻塞服務一般要求系統反應較快,系統能滿足進程或用戶對某種資源的需求。與無阻塞服務相反的是阻塞服務。

基本介紹

  • 中文名:無阻塞服務
  • 外文名:Non-blocking service
  • 學科:計算機
  • 定義:系統快速返回請求
  • 有關術語:阻塞服務
  • 領域:作業系統
簡介,系統調用,一種TBGP協定無阻塞路由通告技術,

簡介

在計算機中,服務一般是通過系統調用獲得的。系統調用相關函式提供回響的服務。無阻塞服務是指系統能快速滿足系統或用戶的請求,與之相反即阻塞服務,進程或用戶要等待一段時間才能得到系統恢復。引起阻塞原因有:請求過多,系統回響較慢。無阻塞服務是指衡量一個系統性能重要指標之一,例如在伺服器和交換機中,無阻塞服務能確保用戶請求能快速得到相應,和能保證在網路中傳輸的數據不會丟失。無阻塞服務一般可以分為:I/O無阻塞服務、網路無阻塞服務、一般進程無阻塞服務。

系統調用

通常,在 OS的核心中都設定了一組用於實現各種系統功能的子程式(過程),並將它們提供給應用程式調用。 由於這些程式或過程是 OS 系統本身程式模組中的一部分,為了保護作業系統程式不被用戶程式破壞,一般都不允許用戶程式訪問作業系統的程式和數據,所以也不允許應用程式採用一般的過程調用方式來直接調用這些過程,而是向應用程式提供了一系列的系統調用命令,讓應用程式通過系統調用去調用所需的系統過程。
當應用程式中需要作業系統提供服務時,如請求 I/O 資源或執行 I/O 操作,應用程式必須使用系統調用命令。由作業系統捕獲到該命令後,便將 CPU 的狀態從用戶態轉換到系統態,然後執行作業系統中相應的子程式(例程),完成所需的功能。執行完成後,系統又將CPU 狀態從系統態轉換到用戶態,再繼續執行應用程式。

一種TBGP協定無阻塞路由通告技術

BGP( border gateway protocol)作為實際的域間路由協定標準,決定著網際網路的實際性能,其路由震盪、鄰居會話重啟、鏈路失效以及策略修改等事件都會造成大量 BGP路由更新的生成,從而消耗巨大的路由器控制平面計算資源 ,甚至造成報文丟失及網路擁塞. 目前 ,已經有部分研究致力於改善 BGP 協定處理性能。TBGP 協定實現了不同鄰居會話的並行處理,能夠有效提高BGP 協定處理效率。但是頻繁且低效的執行緒間路由通告卻阻礙了TBGP協定並行性能和可擴展性的進一步提升。為此,本文提出一種新的執行緒間路由通告方法,每個執行緒為所有鄰居會話維護一個路由播報佇列,將更新後路由僅寫入本執行緒所有播報佇列,避免了與其餘執行緒並發寫共享佇列引入的大量衝突。當進行外部鄰居播報時,各執行緒根據自身的鄰居會話編號從所有執行緒匹配的鄰居播報佇列中讀取路由,使得多個執行緒可以並發讀取而互不干擾,加快了執行緒間路由通告速度。同時,鄰居播報佇列被設計為 SCLF 無鎖佇列,消除了鎖操作引入的大量開銷,有效提高了播報佇列操作速度。
本文結合TBGP特點設計了一種新的執行緒間路由通告方法,並改進現有共享佇列為無鎖結構,以實現快速無阻塞全局路由通告。圖給出了無阻塞路由通告結構圖。每個執行緒為所有鄰居會話維護一個鄰居播報佇列,這些播報佇列為所有執行緒共享使用。本執行緒的更新路由將直接寫入本地鄰居播報佇列,而不再向其他執行緒傳播,這樣,所有執行緒寫本地鄰居播報佇列時可以互不干擾地並發執行。各執行緒的鄰居播報過程與傳統 BGP協定類似,同時不僅從本地執行緒的播報佇列中讀取路由,還會從所有執行緒匹配本地鄰居會話編號的播報佇列中讀取路由 ,從而實現路由更新的全局播報。圖中執行緒 k 為m 個鄰居會話相應維護了一個鄰居播報佇列 , 且處理的鄰居會話編號分別為 k 1 , k 2 , …, k s 。當鄰居播報事件被觸發時, 它將從執行緒 1 至執行緒 n 中所有匹配本地鄰居會話編號的鄰居播報佇列中讀取路由並進行播報。實驗結果顯示,該方法有效改善了TBGP協定的路由通告耗時,具有更好的執行緒與鄰居會話規模可擴展性。

相關詞條

熱門詞條

聯絡我們