计算机系统(吴俊敏) 2021春  课程号:COMP6004P01
2021春  课程号:COMP6004P01
9.0(1人评价)
9.0(1人评价)
  • 课程难度:中等
  • 作业多少:中等
  • 给分好坏:超好
  • 收获大小:很多
选课类别:基础 教学类型:理论实验课
课程类别:研究生课程 开课单位:计算机科学与技术系
课程层次:硕士   学分:3.5
课程主页:暂无(如果你知道,劳烦告诉我们!)
简介 最后更新:

这门课从程序员和架构师的角度来看计算机系统:如何执行程序,如何存储信息,以及如何通讯。这门课会教学生成为更高效的程序员,关注性能、可移植性、鲁棒性等方面。这门课也是很多高级计算机课程的基础,比如说高级体系结构、计算机网络等。课程的内容包括:

  • 机器代码和编译优化
  • 性能测量和优化
  • 计算机算术
  • 计算机体系结构
  • 并行体系结构
  • 存储系统
  • 网络技术和协议
  • 并发系统
排序 学期

评分 评分 1条点评

红领巾 2021春
  • 课程难度:中等
  • 作业多少:中等
  • 给分好坏:超好
  • 收获大小:很多
  • 难度:中等
  • 作业:中等
  • 给分:超好
  • 收获:很多

温馨提示:2021年秋季学期,本课程将由 周学海 老师主讲,课程内容与考核方式可能与本学期并不完全一致,因此以下回答仅供参考。


这门课是2020研究生新版培养方案中新开设的,计算机科学与技术专业的学科基础课, 3.5个学分。本学期由吴俊敏老师主讲。

这门课在计算机学院研究生中是第一次开设,但课程的内容吴老师已经上过很多年了:包括本科生公选课“计算机系统详解”(可看作是本课程的精简版),以及在软件学院(苏州)开设的“程序设计与计算机系统”(与本课程几乎完全相同)。

课程使用的教材是大名鼎鼎的 CSAPP(中译本:《深入理解计算机系统(原书第3版)》,翻译得还算不错)。与其他系统类课程不同,本课程从程序员的角度来看计算机系统,把本科期间学过的组成原理、体系结构、操作系统等知识串了起来。本学期讲授了教材的前10章内容(跳过了第4章),可以说教材的精华部分都覆盖到了。老师上课用得PPT就是原版的PPT,不过我觉得老师上课有些枯燥,所以大部分内容都是自己看书自学的,好在这本书写得很通俗易懂,加上网上有很多资源,所以基本上没太大障碍。

关于课程的考核方式,第一次课说的是:点名10%(2次点名,每次5分),作业15%(5次作业,每次3分),实验25%(5次实验,每次5分),闭卷考试50%。但是这学期最终只布置了4次作业,而点了3次名,可能有一些微调吧。下面具体来说一下每一项:

  • 作业:作业题来自教材每章后面的题目,每次7-8题。老师第一次课说此项为送分项,基本上交了就满分。
  • 实验:本课程共有5次实验,也就是教材配套实验中的5个(如下)。不过老师给的实验材料比较老了,有些地方与上课讲得并不一致,大家也可以从实验的官方网站上下载最新的实验来做。有一说一,这几个实验设计得都很好,也很有意思,如果能认真完成的话对系统的理解一定会上一个台阶。由于助教在苏州,所以实验的检查方式采用的是远程共享桌面的方式。(这学期后3个实验也可提交实验报告代替检查)
    • 实验1:datalab(位操作)
    • 实验2:bomblab(二进制炸弹)
    • 实验3:buflab(缓冲区溢出炸弹)
    • 实验4:perflab(代码优化)
    • 实验5:malloclab(自己动手写一款动态存储分配器)
  • 考试:这学期的期末考试共有7道题。有一说一,我觉得题目出得很有水平:你说难吧,它确实算不上难,但是如果对书上的内容没有一个深入透彻的理解,还真做不出来。(没有开放题,考查的都是固定知识点,但比较灵活) 大致的题目回忆如下:
    1. (15分,第3章)给了一个C语言程序和对应的汇编代码,写出其中 #define 的几个常数(数组维度)的值。本题涉及到结构体的对齐。
    2. (10分,第2章)在机器字长为6位的假设下,填写表格中空缺位置,完成所给的表达式与对应的二进制补码和十进制数之间的转换。
    3. (15分,第6章)给了4个循环和4种 Cache 的情况,说明每个循环在哪一种 Cache 情况下的失效率最低。
    4. (15分,第10章)给了4个程序,写出每个程序的输出。涉及到open(),dup(),dup2()等。
    5. (15分,第3章)给了一个C语言程序和对应的汇编代码,写出其中一个三维数组 A 各维的维度,并给出计算数组元素A [i][j][k] 内存地址的表达式。
    6. (15分,第8章)给了1个程序,写出程序的输出。涉及到fork(),信号处理函数,wait()等。
    7. (15分,第9章)给了一个内存系统的假设,完成虚拟地址到物理地址的映射。

由于这本教材过于经典,网上有很多的资源可以供大家参考,所以整体来说不会特别困难。在复习的时候只要抓住重点,把书上典型的习题做好,其实问题不会太大,最终的期末考试题都是在课后习题的基础上,变得更复杂、灵活一些。

事实上我选这门课就是为了借这个机会逼自己看完 CSAPP 这本书,现在看来这个目标也算是达到了吧,至少了解了书上核心的内容,增进了对计算机系统的认识,我觉得很值。

最后附上一些课程的资源:

官方实验网页:http://csapp.cs.cmu.edu/3e/labs.html

CMU的课程主页:https://www.cs.cmu.edu/~213/index.html

书后习题答案:https://dreamanddead.github.io/CSAPP-3e-Solutions/

3 0 复制链接

吴俊敏

教师主页: 戳这里

其他老师的「计算机系统」课

周学海 9.3 (15) 2023秋 2022秋...

吴俊敏老师的其他课

计算机系统详解 9.2 (33) 2024春 2023春...
程序设计与计算机系统 9.5 (2) 2024春 2023春...
高级计算机体系结构 7.8 (4) 2024春 2023春...
操作系统 2005秋
计算机系统概论 2004秋 2003秋