深入理解计算机系统——2

  • 信息就是:位数据+上下文
  • 编译的过程:

这里写图片描述

  • 总线:贯穿系统的一组电子管道,携带信息字节并在各个部件中传递
  • IO设备:系统与外部联系的通道
  • 主存:临时存储设备,用来存储程序和程序处理的数据。一般是动态随机存取存储器(DRAM)。
  • CPU:中央处理器单元,用来解释执行存储在主存中的程序的引擎。
    其核心是大小为一个字的程序计数器(PC)。
    CPU通过总线和主存以及IO设备连接。

  • SRAM:静态随机访问存储。
    较大的存储设备运行较慢,较快的设备造价较高,在寄存器中存取比在主存中存取快100倍甚至更高。这就有两个方向,加快处理器运行速度或者加快主存运行速度是两个方向,前者更容易且便宜。系统设计者 设计了高速缓存存储器(cache)来存放近期可能需要的信息。所以设计了类似如下的存储器结构,L1速度和寄存器差不多,L2速度会慢几倍。

这里写图片描述

  • 操作系统的抽象表示:

    这里写图片描述

  • 文件是对IO设备的抽象表示,虚拟内存是对主存和IO的抽象表示,进程是对处理器、主存和IO的抽象表示。

  • 虚拟内存:为每个进程提供假象,每个进程面对的地址都是固定的。

这里写图片描述

  • 程序代码和数据:对所有程序(进程),代码是从同一固定位置开始的,紧接着是C全局变量对应的位置,代码和数据区是按照可执行目标文件进行初始化的。
  • 堆:运行时malloc和free这样申请的空间,可以变化的空间。
  • 共享库:存放C标准库或者数学库这样的共享库代码和数据区域。
  • 用户栈:来实现函数的调用,和堆一样,也是可以动态变化大小的。没调用一个函数,栈就会增加,返回时,栈就会收缩。
  • 内核虚拟地址:为内核保留,不允许程序读写这个区域。
  • 阿姆达尔定律描述一般的性能提升。

这里写图片描述

  • 超线程:同时多线程,允许一个CPU执行多个控制流的技术。

  • 32位系统和64位系统的在数据类型上的差异主要是在long和指针的大小不一样.

  • 小端的意思是低位存储在低地址,大端相反.
  • 有符号数到无符号数的隐身转换会导致很多问题,杜绝的方法就是尽量不使用无符号数,除了C之外很少有语言支持无符号数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值