后PC时代
后PC时代,计算资源多种多样,如手持式计算机(手机、平板等),背后实际上是通过很多数据中心把所有个人的计算机连成了一个网络。
后PC时代的几个特征:
- 计算资源多样化,I/O设备无处不在,数据中心、PMD与PC共存
- 软硬件协同设计,硬件OS(Operating System)和编译器之间的关联更加密切
- 对应用程序员的要求更高,必需了解计算机底层结构;必需掌握并行程序设计技术和工具;应用问题更复杂,领域更广
主要内容
- 主要研究计算机各个不同抽象层的实现及其相互转换的机制,通过讲解程序开发和执行来构建计算机系统的总体框架
- 培养系统能力,成为一个“高效”程序员,在程序调试、性能提升、程序移植和健壮性等方面成为高手
- 建立完整的计算机系统概念,为后续OS、编译、体系结构等内容的学习打下基础
- 以IA-32+Linux+C+gcc为平台(开源项目平台)
思路:描述程序执行的底层机制,在程序与程序的执行机制之间建立关联,强化理解而不是死记硬背
- 围绕程序展开,理解计算机如何生成和运行可执行文件
重点在高级语言以下个抽象层:
- C语言程序设计层:数据的机器级表示、运算;语句和过程调用的机器级表示
- 指令集体系结构(ISA)和汇编层:指令系统、机器代码、汇编语言
- 微架构及硬件层:CPU的通用结构;层次结构存储系统
初步了解操作系统、编译和链接的部分内容
- 不同数据类型在寄存器或存储器中如何表示和存储
- 指令如何表示和编码/译码
- 存储地址(指针)如何表示,如何生成复杂数据元素的地址
- 高级语言程序对应的机器级代码是怎样的,如何转换并链接生成可执行文件
- 计算机能理解的程序是如何阻值和控制的
- 如何在计算机中组织多个程序的并发执行
- 逻辑控制流中的异常事件及其处理
- I/O操作的执行控制流(用户态—>内核态)