深入理解计算机系统
文章平均质量分 89
杨过爱喝哇哈哈
积极主动,乐观勇敢,无畏突破,享受过程,沟通突破
展开
-
【1.1】系统漫游——信息就是位+上下文
计算机系统发展这么多年,虽然具体的实现方式一直在变,但底层的原理一直都不曾变化。为了更好的理解我们的程序是如何被执行如何被底层影响的,有必要开展一次全新的计算机系统之旅了。 我们学习C语言几乎都是从“helloword”开始的,这么一个简单的程序也需要计算机系统各个部件之间紧密配合、协同工作,才能使程序正确的执行。当程序执行时,我们希望知道内部到底发生了什么,只有真正了解本质,对原创 2012-12-07 22:38:45 · 1957 阅读 · 0 评论 -
【1.3】系统漫游——了解编译系统如何工作的好处
虽然现代编译系统已经发展的相当“智能”,但并不能成为我们不去了解它的理由,它是我们代码转换的工具,要想使用好这个工具,就必须对它有相对全面的了解才行。了解编译系统如何工作可以使我们:1、优化程序性能:真正影响系统执行效率的是编译完成后的“二进制代码”,如果想做的更好,我们就非常有必要知道源代码是如何转换成二进制代码的,以及使用了怎样一种规则。只有从汇编的角度理解机器执行路径才能更好的评估系原创 2012-12-08 11:12:32 · 1562 阅读 · 0 评论 -
【1.2】系统漫游——“程序”被其他程序翻译成不同格式
计算机语言按照层次划分为:机器语言(0/1)、汇编语言(arm、x86、thumb)和高级语言(c++、java、c)。计算机真正执行的“程序流”是机器语言,早期的程序员都是用机器语言编程,后来为方便记忆发明了汇编语言,但仍然需记住很多硬件相关的操作指令,而且代码规模有限,人们又发明了高级语言。高级语言的出现才真正把程序员从千变万化的硬件操作中解脱出来。综上:编程语言越来越“智能”,抽象层次越来越原创 2012-12-08 00:49:50 · 1967 阅读 · 0 评论 -
【1.4】系统漫游——系统硬件结构以及程序执行过程
如果想真正了解软件的执行过程,就必须分析它所依附的硬件平台。“计算机系统”(广义)发展这么多年,但基本模型不曾改变,不管是通用系统还是嵌入式系统等等。1、系统硬件结构一个典型系统的硬件组成如下图所示:总线:连接系统各个部件的电子线路,做信号传输使用,有点类似于城市中的交通网络。总线一次传输的固定位宽大小,称为“字长”,与公路车道数类似字长越大,效率越高(真正发挥效率,需要系统软原创 2012-12-08 20:46:40 · 2324 阅读 · 0 评论 -
【1.5+1.6】系统漫游——高速缓存和金字塔型存储设备
从上一节:【1.4】系统漫游——系统硬件结构以及程序执行过程 中可以看到,hello执行过程中,代码和数据由硬盘copy到内存中,再由内存copy到寄存器中,最后由寄存器copy到显存中。为完成这么一个简单的数据显示动作,竟然需要对”倒腾“这么多次数据,而且根据”木桶理论“,系统的执行效率由最慢的设备决定,有必要对这个过程进行优化一下了。题外话:依稀记得好像有人说过”程序员的工作就是搬数“,计算机原创 2012-12-09 22:33:02 · 2186 阅读 · 0 评论 -
【1.7+1.8】系统漫游——操作系统管理硬件(包括网络)
前面的hello程序中,它并没有直接跟硬盘、内存和显示器诸如此类的硬件直接打交道,而是通过操作系统,操作系统给应用程序提供的统一的接口,应用程序把命令传递给操作系统,由操作系统来直接控制硬件,过程中操作系统充当了中间人(或者说管理者)的角色。如下图所示: 操作系统有两个基本功能:(1)防止硬件被失控的应用程序(因为应用程序来源多样化,并不能保证原创 2012-12-10 22:22:59 · 2125 阅读 · 0 评论 -
【1.9】系统漫游——几个关键概念
为了后期学习方便,这里需要对几个关键概念进行阐述。1、并发和并行 这里以单处理器系统为例进,并发是个宏观概念,指在某一时间段内有超过1个的进程在处于活动状态;并行是个微观概念,指在某一时刻就有超过1个的进程处于活动状态。显然,单处理器系统是无法实现并行的,只能实现并发。处理器只能以时间片为单位,依次执行活动进程。 并发和并行的思想在计算机的多个抽象层次上都原创 2012-12-14 21:37:14 · 1224 阅读 · 0 评论