給孩子解釋什麼是緩衝
緩衝是一種計算機技術,用於高速裝置和低速裝置之間的資料交換。因為有速度差,高速裝置總是要等著低速裝置,有了緩衝之後,可以少等一會兒。舉個例子,去飯店吃飯,跟服務員說:給我拿個筷子,服務員跑到20米外,拿來一根筷子;再跟服務員說:再給我拿個筷子,服務員又跑到20米外拿來第二根筷子,這才拿來了一雙筷子。這個過程很慢,但並不誇張。計算機底層,取100號單元的資料,給100加1,得到101,再取101號單元的資料。
說到這裡才發現,原來服務員一次只能拿一根筷子!這是設計硬體的結果。好像是從圖靈那個年代,還沒有今天這種計算機,人們就憑空研究可計算理論。研究的結果是,一次拿一根筷子,拿N次就能拿來N根筷子,N屬於自然數。這樣一來,對於拿筷子這個課題,就“徹底”解決了,只要製造出拿一根筷子的電路,再讓它重複N次即可。
如果有哪家公司生產出能拿100雙筷子的機器,這時,客人說了,給我拿10000雙筷子!服務員要跑100個來回,共4000米,這就要等幾分鐘了。客人要10000雙筷子幹什麼用呢?原來客人相當於CPU,它也是按照可計算理論製造出來的,它一次只能表達一根筷子,但是它接到一個任務,重複使用筷子10000遍,它就只能麻煩服務員。
被麻煩的服務員發明了緩衝,準備一個盤子,常用的東西就放在裡邊,有一雙筷子、牙籤、餐巾紙等等。盤子就放在客人手邊,可以方便地拿起來用。這個盤子就是緩衝,它是在CPU內部的,用來在高速的CPU和相對低速的記憶體之間進行緩衝。
記憶體和硬碟之間也有緩衝,這約等於飯店裡的儲物臺,而硬碟是2公里外的倉庫,要從硬碟上獲取10位元組資料,硬碟一次讀取4KB資料到儲物臺,並且就儲存在這裡,方便服務員給顧客拿著用。如果儲物臺上沒有客人想要的東西,另一個運貨員就要開著汽車去2公里外的倉庫取貨了,CPU要等很長時間。這個時間大概是0.3秒,以電腦的速度來說,是很長時間了。
相關文章
- 我竟然意外的懂了什麼是“緩衝區”
- 如何給女朋友解釋什麼是RPCRPC
- 漫話:如何給女朋友解釋什麼是HTTPHTTP
- 漫話:如何給女朋友解釋什麼是策略模式?模式
- 千萬不要給女朋友解釋 什麼是 “羊群效應”
- 漫話:如何給女朋友解釋什麼是反向代理?
- 圖文詳解:如何給女朋友解釋什麼是微服務?微服務
- 什麼?無限緩衝的佇列(一)?佇列
- 什麼?無限緩衝的佇列(二)?佇列
- 漫話:如何給女朋友解釋什麼是單例模式?單例模式
- 如何給女朋友解釋什麼是併發和並行並行
- 漫話:如何給女朋友解釋什麼是Git和GitHub?Github
- 如何給女朋友解釋什麼是分散式和叢集?分散式
- 緩衝區溢位攻擊是什麼意思?防禦措施有哪些?
- 如何給女朋友解釋什麼是Linux的五種IO模型?Linux模型
- 孩子長大了能給父母帶來什麼?
- 漫話:如何給女朋友解釋什麼是系統可用性?
- 漫話:如何給女朋友解釋什麼是併發和並行並行
- 漫話:如何給女朋友解釋什麼是分散式和叢集?分散式
- 通過程式碼解釋什麼是API,什麼是SDK?API
- 漫話:如何給女朋友解釋什麼是Linux的五種IO模型?Linux模型
- 給女朋友講解什麼是代理模式模式
- 如何通俗解釋Docker是什麼_1Docker
- 區塊鏈是什麼通俗解釋區塊鏈
- 如何給女朋友解釋什麼是IO中的阻塞、非阻塞、同步、非同步?非同步
- 緩衝管理
- Node.js 中的緩衝區(Buffer)究竟是什麼?Node.js
- 通俗易懂的解釋:什麼是APIAPI
- 給女朋友講解什麼是Optional【JDK 8特性】JDK
- 為什麼node.js要引入buffer?淺析緩衝區bufferNode.js
- 為什麼一定要給孩子找個程式設計師爸爸?程式設計師
- 輸出緩衝
- 對孩子成功的機會影響最大的是什麼?
- Wgpu圖文詳解(03)緩衝區BufferGPU
- Redis緩衝區溢位及解決方案Redis
- 心裡知道知道什麼事情,跟解釋給別人聽還是有很大距離的
- 專案管理中的衝突是什麼?專案管理
- 什麼是 IP 衝突以及如何解決?