Mon Jan 13 2025
663 words · 4 minutes

CS:APP课程概览


Table of Contents

课件:15-213: Introduction to Computer Systems / Schedule Fall 2015

视频:2015 CMU 15-213 CSAPP 深入理解计算机系统 课程视频

实验:CS:APP3e, Bryant and O’Hallaron

2015 CMU 15-213: Introduction to Computer Systems Link to 2015 CMU 15-213: Introduction to Computer Systems

Instructors: Randal E. Bryant and David R.O’Hallaron

(深入理解计算机系统 CSAPP作者)

课程主题: Link to 课程主题:

  • 大多数 CS 和 CE 课程都强调抽象
    • 抽象数据类型
    • 非典型分析
  • 这些抽象有其局限性
    • 特别是在存在错误的情况下
    • 需要了解底层实现的细节
  • 学习本课程的有益成果
    • 成为更有效率的程序员
      • 能够有效地发现和消除bug
      • 能够理解并调整程序性能
    • 为以后学习 CS 和 ECE 的 “系统 “课程做准备
      • 编译器、操作系统、网络、计算机体系结构、
      • 嵌入式系统、存储系统等

1:int 不是整数,float 不是实数 Link to 1:int 不是整数,float 不是实数

x20x^2\ge0 但是计算机中存在数值溢出的问题,不总是我们期望的行为 print 50000*50000 输出-1794967296 而print 1e20+(-1e20+3.14) 输出0 print 1e20+-1e20+3.14 输出3.1400000000000001

计算机算术 Link to 计算机算术

  • 不会产生随机数
  • 不能想当然认为它遵守一般的数学性质
  • 需要理解哪些情境下使用哪些抽象
  • 对编译器和严谨的应用程序员的重要话题

2:了解汇编 Link to 2:了解汇编

3:内存很重要 Link to 3:内存很重要

随机存取存储器是一种非物理抽象概念

4:提升性能 Link to 4:提升性能

C
1
2
3
4
5
6
7
void copyij(int src[2048][2048], int dst[2048][2048]) 
{ 
	int i,j; 
	for (i = 0; i < 2048; i++) 
		for (j = 0; j < 2048; j++) 
			dst[i][j] = src[i][j]; 
}

4.3ms

C
1
2
3
4
5
6
7
void copyij(int src[2048][2048], int dst[2048][2048]) 
{ 
	int i,j; 
	for (j = 0; j < 2048; j++) 
		for (i = 0; i < 2048; i++) 
			dst[i][j] = src[i][j]; 
}

81.8ms 这个分层存取的例子说明,性能取决于访问的方式

为什么性能有差异?

本书封面

5:计算机不仅执行程序 Link to 5:计算机不仅执行程序

  • I/O系统
  • 网络服务
Thanks for reading!

CS:APP课程概览

Mon Jan 13 2025
663 words · 4 minutes

© Tan Kimzeg | CC BY-SA 4.0