Skip to content

Files

Latest commit

5e2d5b4 · Dec 18, 2021

History

History

ComputerSystems

README.md

「Datawhale 开源 408 计划」——《深入理解计算机系统》(Computer Systems: A Programmer's Perspective)

前言

本部分为「Datawhale 开源 408 计划」首篇,旨在通过计算机科学领域经典丛书:《深入理解计算机系统》(Computer Systems: A Programmer's Perspective,CSAPP)帮助更多的小伙伴理解计算机真实的运行过程与逻辑。Datawhale开源社区将全程支持并提供CSAPP原书习题、lab伴读、课件制作等内容。

本部分为《深入理解计算机系统》原书第一部分内容(前六章)。我们鼓励小伙伴们使用「费曼学习法」:”纸上得来终觉浅,绝知此事要躬行。“课件中提供了相应的ppt教材,您可以尝试给自己讲述相关内容以强化理解;也可以录制自己讲述知识点过程中的视频,作为组队学习的打卡内容。

针对不同基础的同学,我们设置了不同梯度的内容:

  1. 对于只想了解「计算机组成原理」、「计算机系统」与「计算机底层」的同学来说,只需学习CSAPP原课件与参考视频即可。
  2. 对于学有余力的同学,可以根据我们的参考习题与lab进行分析和实现。
  3. 对于想要「应用与进阶」的同学,我们提供了高性能计算知乎专栏-高性能计算翻译计划),可根据配套内容进行探索和打卡。

值得注意的是,「Datawhale 开源 408 计划」旨在为各位同学提供理解计算机相关内容的不同角度,对于需要考研的小伙伴们,本部分仅供参考,具体内容请以教材为主。

任务安排

Task 01:计算机系统漫游(2天)

  • 操作系统的作用、虚拟内存和计算机体系内部的通信
  • 高性能计算领域的定理、并发和并行的概念及模型

Task 02:信息的表示和处理(3天)

  • 计算机中信息存储和表示的模型以及运算
  • 整数的表示与编码、计算机中对整数运算的实现
  • 计算机中浮点数的表示及运算实现

Task 03:程序的机器级表示(5天)

  • 程序的汇编及机器码中字段、寄存器相关的内容、数据的传送
  • 计算机中算术及逻辑操作的实现、指令的控制流、数组的分配和访问
  • 结构体等异质数据结构及其实现、缓冲区溢出

Task 04:处理器体系架构(3天)

  • 指令集体系结构、指令编码
  • 指令执行的各阶段

Task 05:优化程序性能(2天)

  • 数据局部性与循环展开

Task 06:存储器层次结构(2天)

  • 高速缓存的作用、高性能计算中隐式利用缓存编程

参考资料

1.汇编指令集

2.Makefile

3.CSAPP lab

4.CSAPP 课后习题

5.参考视频

贡献者名单

贡献者 贡献内容
李岳昆 知乎,Github 提供全书第一部分1-3章内容pdf、高性能计算教材翻译
易远哲 Github 提供全书第一部分4-6章内容pdf
叶前坤 Github 参考习题与lab
chuxiaoyu 博客 开源贡献,「Datawhale 开源 408 计划」统筹工作

特别鸣谢:蒋志政 Github 提供了高性能计算教材部分翻译内容