Linux系统中的各种运算和处理可以分成两大类,一种是硬件处理,还有一种是软件处理,硬件处理和软件处理的原理是类似的。但是肯定也是有所区别的。本文就来介绍一下Linux系统硬件处理和软件处理的区别。
我们来看看各种计算机算法,它们在做什么,以及是怎样做的。很显然,总结一句话就是:合理安排先做什么,再做什么的一个动作序列。这些序列是发生在一维时间的流逝里面的,虽然目前有很多的并行算法,让人看起来好像时间变成了一个平面,但是只要这些算法是CPU实施的,当它们不能在分解的时候,算法还是在先做什么,再做什么之间不断做决策。二分查找,快速排序,这些不都是典范吗?仔细分析一下冒泡排序,先做什么,再做什么,然后做什么。。。最后得到了结果。一个动作直接就是问题的一部分。这完全符合我们人类的思维,因为我们在做任何事的时候,都是在不断决策先做什么,后做什么。这就是数学上的统筹学。
硬件实现的高效等价方案以另一种完全不同的方式工作,它更加类似我们人类的大脑内部的神经网络的工作原理。由于对这个大脑工作原理的解释超出了我的能力范围,即便我真的懂,也不能指望在一篇周末将要结束的短文中阐释清楚,所以我还是直接说硬件吧。
硬件工作时更像是势能的自发释放,这种释放的效果是事先确定的,完全自动进行。举一个例子,洪水泛滥的时候,水流沿着沟壑冲刷大地,造成的效果取决于哪里高,哪里低,并且由于这种高高低低的不同,还会出现一些组合效果,比如一流分成两流,在一个低洼处再次合并,这就会加倍水流的冲击力,从而越过更高的地方。你可以将这看成万众一心的万马奔腾。在一个大型的灌溉系统中,事先接好管道,挖好沟渠,然后在水源处放水,一切都是自动完成的,完全无人值守。如果按照CPU的方式,必须事先准备好一些序列-注意不是挖好沟渠,然后依次执行这些序列,比如先浇灌A区,然后再浇灌B区,由于D区离B区更近,因此接下来浇灌D区而不是C区。。。当然在更低的层次,比如具体的浇灌过程,事情是按照硬件的方式执行的。
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
本文地址:/jtjc/Linux/2021-03-08/26996.html