就是课程的引入,没有正式讲
Instructors: 讲师
Abstraction Is Good But Don’t Forget Reality:
Asymptotic analysis:渐近分析
underlying implementations:底层的实现
int的取值范围为:-2^31 ---- 2^31-1 ,即:-2147483648 - 2147483647,越界溢出了
计算机的整数和浮点数和事实上的不一样
-1e20,这里不是次方,就表示1后接上20个0,然后3.14太小被忽略?没太懂
整数的表示只能是编码一个相对较小的数值范围, 这种表示是精确的
浮点可以编码一个较大的数值范围 , 但表示是近似的
浮点数的表示精度有限,导致了浮点的运算是不可结合的,浮动通常提供价值约7有效数字的精度,和双打提供16位有效数字
(3.14+1e20)-1e20 =0.0
3.14+(1e20-1e20)=3.14
Computer Arithmetic:计算机算术
Assembly:汇编
Compilers :编译器
Memory Matters
unbounded:不受控制的
allocated:分配
memory dominated:内存主导
Memory referencing bugs especially pernicious:和内存有关的bug尤其有害
Possibly out of bounds:可能越界了
Segmentation fault:分段错误
Out of bounds array references :数组引用越界
Invalid pointer values :无效的指针值
Abuses of malloc/free:滥用
nasty:严重的
Action at a distance:远距离操作??
Corrupted:已损坏的
获得更高的性能
performance:性能
asymptotic complexity:渐近的复杂性Constant :常数
matter:麻烦
optimize:优化
bottlenecks:瓶颈
modularity and generality:模块性和通用性
Hierarchical memory organization:分层内存组织
access patterns:访问模式
multi-dimensional array:多维数组
这里是因为:数组是按行存储的
i,j交换一下顺序,效率就不一样了
critical :批判的;至关重要的
Concurrent operations :并发操作
compatibility:兼容性
课程的视角
Most Systems Courses are Builder-Centric:大多数系统课程都是以生成器为中心的
Implement:实现
Implement and simulate network protocols:实现和模拟网络协议
Incorporate :合并
hooks:钩子???
dedicated:专用的
We bring out the hidden hacker in everyone!:我们把每个人隐藏的黑客都激发出来!
命令式编程(Imperative):详细的命令机器怎么(How)去处理一件事情以达到你想要的结果(What);eg:JavaScript
声明式编程( Declarative):只告诉你想要的结果(What),机器自己摸索过程(How)eg:SQL数据库
通常情况下我们常用的大部分编程语言:c,java,c++等都是命令式编程语言。而像正则表达式(regular expressions)或者逻辑语言(Prolog)则为声明式语言。
Cheating:作弊
semester:学期
syllabus:教学大纲
Ignorance is not an excuse:无知不是借口
Consequences:后果
Penalty :惩罚
Removal :结课
sophisticated tools for detecting code plagiarism:检测代码剽窃的复杂工具
expelled:开除
Course Components:课程构成
Lectures:讲座
Higher level concepts:理论
Recitations:复习课
Applied concepts, important tools and skills for labs, clarification of lectures, exam coverage
concepts & mathematical principles:概念和数学原理
We won’t be using Blackboard or Piazza for the course
Blackboard和Piazza(都是外国的一种教学系统)
Staff:员工
CC staff :抄送人员
Autolab:github上的一个开源课程管理系统,支持自动评分(do lab)
network-isolated clusters:网络孤立集群(应该是局域网之类的)
Facilities:设施
我们肯定没的用,自己准备
grace:延期
semester:学期
automatically:应该也还是github上的系统吧
Covers scheduling crunch, out-of-town trips, illnesses, minor setbacks:包括日程安排紧张,外地旅行,生病,小挫折
penalties:惩罚
Catastrophic events:突发的重大事件
Lecture Hall:大教室
Laptops:笔记本电脑
recordings:录制
Final grades based on a straight scale.
嗯,应该是实验和测试做完分数就直接和出来的那种
作业
L1(数据实验室):操作位
L2 (bomblab):拆除二元炸弹
L3 (attacklab):代码注入攻击的基础
作业
L4 (cachelab):构建缓存模拟器并针对局部性进行优化。
学习如何在程序中利用局部性。
作业
L5 (tshlab):编写自己的Unix shell。
第一次介绍并发性
dynamic storage allocation:动态存储分配
作业
L6 (malloclab):编写自己的malloc包
对系统级编程有一个真正的感觉
Concurrency:协议
threads:线程
multiplexing:多路复用
作业
L7 (proxylab):编写自己的Web代理
了解网络编程以及更多关于并发和同步的知识。
Lab Rationale :实验室基本原理
为全额学分设置一个合理的门槛
发布中间结果(匿名)在Autolab记分板的荣耀!
enrolled :登记
Autolab:说是要账户,不过现在Autolab开源了,应该问题不大
-》课程页的web上有实验1