美文网首页
计算机系统:笔记二

计算机系统:笔记二

作者: webmrxu | 来源:发表于2017-11-18 14:46 被阅读0次
  1. 计算机的储存和处理信息以二进制表示。

  2. 计算机使用最小的块或字节作为最小的可寻址单位,而不是访问内存中单独的位。

  3. 机器级程序将内存视为一个非常大的字节数组,称为虚拟内存(virtual memory)。

  4. 内存中的每个字节都由唯一的数字进行标识,该数字称为它的地址(address)。

所有可能的地址集合称为虚拟地址空间

  1. C语言中的一个指针的值就是某个存储块的第一个字节的虚拟地址。

与变量类似,指针也有两个方面:值和类型。它的值表示某个对象的位置,而它的类型表示那个位置上所储存对象的类型(比如整数或浮点数)。

  1. 16进制以0x或者0X开头进行表示,字符 A-F 可大写也可小写。

  2. 每台计算机都有一个字长,字长决定的最重要的系统参数就是虚拟地址空间的大小。

字长,也就是一般操作系统位数。例如:32位操作系统,64位操作系统。

  1. 布尔运算 | 和 & 分别对应集合的 并和交, 而 ~ 对应集合的补。

  2. C语言支持多种整型数据类型____表示有限范围的整数。

  3. 汇编代码是机器的代码的文本表示。

  4. 32位机器只能使用大概4GB(2^32字节)的随机访问存储器。

64位机器能够使用多达256TB(2^48字节),且可以很容易就 扩展至16EB(2^64字节)。

  1. 1965年, Intel 公司创始人,Gordon Moore 预测,未来10年,芯片上的晶体管数量每年都会翻一番,这个预测也称为摩尔定律

但事实证明,他的预测过于乐观。 芯片上晶体管的数量每年只以 37% 的速率增加,每26个月就会翻一番。 这个增长率也是很惊人。

  1. 使用gcc 编译 C 代码的过程。
    $ gcc -Og -o p p1.c

-Og 选项作用是告诉编译器使用会生成符合原始C 代码整体结构的机器代码来优化等级。 使用较高级别(-O1, -O2)会使生成的代码严重变形。为了便宜查看生成的代码,而是用这个选项。实际中,出于性能考虑,使用较高级别是比较好的推荐。

    1. C预处理器扩展源码,插入#include 命令指定的文件,并扩展所有用#include声明指定的宏。
    1. 编译器产生源文件的汇编代码。
    1. 汇编器将汇编代码转化成二进制目标代码。
    1. 连接器将目标代码文件与实现库函数的代码合并,并产生可执行代码文件 p。
  1. 机器码只是简单的将内存看成一个很大的、按字节寻址的数组。

相关文章

网友评论

      本文标题:计算机系统:笔记二

      本文链接:https://www.haomeiwen.com/subject/zzfevxtx.html