【深入理解计算机系统随笔】第一章

1、处理器的指令集架构和处理器的微体系结构应当分开

  • 指令集架构描述的是每条机器代码指令的效果,ISA在CPU硬件和软件之间提供了一个抽象层,对于CPU设计者来讲,ISA是一种设计的规范和依据,对于编译器设计者来讲,亦然,知道了CPU采用的ISA,就可以知道自己应该采用何种规范来编写。此外,指令集在物理上并不存储于CPU中,确切来讲,CPU可以认为是ISA 的一种实现。
  • 处理器的微体系结构描述的是CPU的具体物理实现,是偏向硬件的,描述了数字电路如何实现处理器的各个功能。

2、存储器层次结构


在处理器和一个较大的慢速设备(如主存或者磁盘之间插入一个更小更快的设备)的想法已经成为一个普遍概念。实际上,计算机中的存储器被组织成了一个层次结构,如图,程序员可以利用对层次结构的理解来提高程序性能。

3、操作系统管理硬件

操作系统可以看做是应用程序与硬件之间插入的一层软件。有两个功能:

  • 防止硬件被失控的软件滥用
  • 向应用程序提供统一的机制来控制不同层次的硬件设备

4、编译系统

编译器驱动程序读取源文件,并将其翻译成一个可执行的目标文件,这个过程可以分为四个阶段完成,包括预处理、编译。汇编、链接。

  • 预处理阶段:预处理器根据以#开头的命令,修改原有的源文件,如hello.c中的第一行#include<stdio.h>告诉预处理器读取系统文件stdio.h中的内容,并将其直接插入程序源代码中,得到另一个文件,通常后缀为.i,该文件将进入编译器处理。
  • 编译阶段:预处理过后的文件在编译器中被处理为汇编指令,依据为ISA,输出文件后缀为.s。汇编语言为不同的高级程序语言以及不同的编译器提供了一种统一的输出格式。不管是C还是Fortran,编译器输出的文件都是采用一样的汇编语言。
  • 汇编阶段:汇编器将编译器输出的汇编文件翻译成二进制序列,也就是机器代码, 后缀为.o(linux)或者.obj (windows),称为可重定位目标文件。
  • 链接阶段:在hello程序中调用了函数,这些函数的二进制指令单独存在,如print函数存在于一个名为print.o的目标文件中,这个文件必须以某种方式合并到我们的hello.o程序中,这样该函数才有效,链接器负责这种合并,最后将得到一个可执行目标文件,可以被加载到内存中,由系统执行。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值