Linux系統中的各種運算和處理可以分成兩大類,一種是硬件處理,還有一種是軟件處理,硬件處理和軟件處理的原理是類似的。但是肯定也是有所區別的。本文就來介紹一下Linux系統硬件處理和軟件處理的區別。
我們來看看各種計算機算法,它們在做什麼,以及是怎樣做的。很顯然,總結一句話就是:合理安排先做什麼,再做什麼的一個動作序列。這些序列是發生在一維時間的流逝裡面的,雖然目前有很多的並行算法,讓人看起來好像時間變成了一個平面,但是只要這些算法是CPU實施的,當它們不能在分解的時候,算法還是在先做什麼,再做什麼之間不斷做決策。二分查找,快速排序,這些不都是典范嗎?仔細分析一下冒泡排序,先做什麼,再做什麼,然後做什麼。。。最後得到了結果。一個動作直接就是問題的一部分。這完全符合我們人類的思維,因為我們在做任何事的時候,都是在不斷決策先做什麼,後做什麼。這就是數學上的統籌學。
硬件實現的高效等價方案以另一種完全不同的方式工作,它更加類似我們人類的大腦內部的神經網絡的工作原理。由於對這個大腦工作原理的解釋超出了我的能力范圍,即便我真的懂,也不能指望在一篇周末將要結束的短文中闡釋清楚,所以我還是直接說硬件吧。
硬件工作時更像是勢能的自發釋放,這種釋放的效果是事先確定的,完全自動進行。舉一個例子,洪水泛濫的時候,水流沿著溝壑沖刷大地,造成的效果取決於哪裡高,哪裡低,並且由於這種高高低低的不同,還會出現一些組合效果,比如一流分成兩流,在一個低窪處再次合並,這就會加倍水流的沖擊力,從而越過更高的地方。你可以將這看成萬眾一心的萬馬奔騰。在一個大型的灌溉系統中,事先接好管道,挖好溝渠,然後在水源處放水,一切都是自動完成的,完全無人值守。如果按照CPU的方式,必須事先准備好一些序列-注意不是挖好溝渠,然後依次執行這些序列,比如先澆灌A區,然後再澆灌B區,由於D區離B區更近,因此接下來澆灌D區而不是C區。。。當然在更低的層次,比如具體的澆灌過程,事情是按照硬件的方式執行的。 上一頁12下一頁共2頁