程序员的自我修养chapter1
简介
计算机的硬件最为核心的三部分是:CPU,内存和I/O控制芯片
早期计算机由于需求不高,所以CPU和内存以及各种外设都是连接在一条总线上的,后来由于CPU的核心频率提升,导致内存已经无法跟上CPU的速度了,所以出现了包含南北桥的芯片,北桥处理高速设备和CPU,南桥处理低速设备。
计算机发展到一定程度后,摩尔定律就不再适用,那是因为在制造CPU方面已经达到了人类的物理极限,在频率上CPU短期内是没有提高空间了,基本都在4Ghz以下,所以人们采用了多核CPU来提高上线,也就是__SMP(多核多处理器)__。
这里引用一句话“计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决”。计算机中的每个层次都需要通信,既然通信那就必然要存在一个通信协议,我们一般将其称之为接口。
CPU的资源十分昂贵,那么我们要做的当然就是不能让CPU闲着,从多道程序到分时系统再到多任务系统,都是人们压榨CPU的方法的升级。
不同的计算机硬件是有可能不同的,如果程序员们,要针对不同计算机的硬件来进行编程,那么程序员的应该会成为稀缺物种吧,这是我们不希望看到的,所以针对不同的硬件,一般开发商都会为其生产的硬件提供驱动程序,操作系统的开发者为硬件生产的开发商提供了一些接口和框架,这样这个问题就迎刃而解了
内存不够怎么办?我们现在面临了三个问腿,程序运行地址空间不隔离,内存使用效率低,程序运行的地址不确定。这时候我们的内存分页机制就完美的解决了这一问题。通过分页,我们将物理内存和虚拟内存分成若干个4kb大小的页 ,同时通过MMU来实现虚拟内存和物理内存的映射。
线程部分,这部分理解的不太好,还需要再读读。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 gxh's blog!