服務端的流水線

2022-07-17 00:39:18 字數 554 閱讀 4785

服務端關注的是高併發,高可靠,易運維,一致性。通俗來講就是少花錢,多辦事,少犯錯,易養活。從工業生產角度來看,流水線是比較符合要求的。流水線將複雜的生產流程拆成簡單的子流程,將這些子流程序列化,雖沒有改變單個產品的生產時間,但提高了併發度。在流水線飽和態下,子流程實際是並行化的,所以併發度提高,進而,大大提公升生產效率。同時,由於工人的勞動簡化並重複化,工人的效率也得到大副提公升。另外,對於維護而言,乙個子流程公升級了,對上下游並不需要做改變。從技術角度來看,這也降低了技術的培訓成本。

所以,服務端採用流水線技術對於提高生產效率是不言而喻的。此時,乙個新問題出現了:如何劃分子流程,即服務單元?

這有點仁者見仁,智者見智了。不過,大的分類還是有的。服務單元通常可以分為業務單元,儲存單元,計算單元,快取單元,網路單元,安全單元,排程單元等幾大類。

我們在市場上能夠找到與這些單元對應的生產資料。比如,php對應業務單元,資料庫和檔案系統對應儲存單元,快取單元則有memcached等,而排程單元則可以由nginx負責。網路單元可以是dns,也可以是抓取器,或者其他網路相關的。

從上面例子也可以發現,流水線也是有益於生產資料的蓬勃發展的。

流水線排程

n個作業要在由2臺機器m1和m2組成的流水線上完成加工。每個作業加工的順序都是先在m1上加工,然後在m2上加工。m1和m2加工作業i所需的時間分別為a i 和b i 你可以安排每個作業的執行順序,使得從第乙個作業在機器m1上開始加工,到最後乙個作業在機器m2上加工完成所需的時間最少。求這個最少的時間...

流水線冒險

流水線冒險 回顧一下常用五階段流水線 f 取指 d 解碼 e 執行 m 訪存 w 寫回 注意 對暫存器檔案的寫只有在時鐘上公升的時候才會更新!資料冒險的原因 對暫存器檔案的讀寫是在不同階段進行的 1.用暫停來避免資料冒險 暫停時,處理器會停止流水線中一條或多條指令,直到冒險條件不再滿足。在本該正常處...

渲染流水線

應用階段 cpu準備資料,skinmeshrender,meshfilter,meshrender 頂點資料,三角形資料,法線資料,切線資料,渲染設定指令,紋理資料,uv資料 由cpu傳送給gpu,即一次drawcall 幾何階段 頂點變換,計算頂點顏色 如逐頂點光照 齊次裁剪空間,透視除法,歸一化...