代码编织梦想

CMU 15-213: CSAPP 01-course overview


就是课程的引入,没有正式讲
2023/1/16 记

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zjj8008120308/article/details/128704743

CSAPP(CMU 15-213):Lab3 Attacklab详解-爱代码爱编程

# 前言 本系列文章意在记录答主学习CSAPP Lab的过程,也旨在可以帮助后人一二,欢迎大家指正! tips:本lab主要是利用gets中的不安全(越界,覆盖原栈桢内容),缺陷来进行攻击(缓冲区溢出) Part I : Code Injection Attacks ​ 第一部分是利用代码注入进行攻击,CMU15-213将ctarget关闭了栈随

CSAPP(CMU 15-213):Lab4 Cachelab详解-爱代码爱编程

# 前言 本系列文章意在记录答主学习CSAPP Lab的过程,也旨在可以帮助后人一二,欢迎大家指正! tips:本lab主要是为了深入理解cache的机制!!完成了模拟cache行为的实现以及应用!! Part A: Writing a Cache Simulator 实现一个有关cache行为的模拟器,一开始不知从何做起,还是要注意看文档啊,C

CSAPP(CMU 15-213):Lab6 Malloclab详解-爱代码爱编程

# 前言 本系列文章意在记录答主学习CSAPP Lab的过程,也旨在可以帮助后人一二,欢迎大家指正! tips:本lab主要是为了体验应用程序如何使用和管理虚拟内存,写一个动态存储分配器(dynamic storage allocator) 目标:使用不同方法在内存利用率(memory utilization)和吞吐率(throughput)之中达到t

cmu 15-213 csapp网课学习笔记(lecture1)_yubisco7的博客-爱代码爱编程

CMU 15-213 CSAPP网课学习笔记(Lecture1) Lecture1 Course Overview 课程主题1:花费几个星期的时间讨论数字、数字的表示及其属性 课程主题2:学习关于机器级编程的意义:汇编语言\二进制编码指令 你编写的c语言代码是如何变成机器码并执行的? 本课程更多是关于如何获取c汇编器生成的汇编代码

cmu 15-爱代码爱编程

CMU 15-213 CSAPP (Ch1~Ch3) CMU 15-213 CSAPP (Ch5~Ch7) CMU 15-213 CSAPP (Ch8) CMU 15-213 CSAPP (Ch9) CMU 15-213 C