![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
CS:APP
victorika
这个作者很懒,什么都没留下…
展开
-
CS:APP malloc lab 记录
Introduction在本lab中,您将为C程序编写一个动态存储分配器,即您自己的malloc,free和realloc例程版本。 鼓励您创造性地探索设计空间并实现正确,高效和快速的分配器。 How to Work on the Lab您的动态存储分配器将包含以下四个函数,这些函数在mm.h中声明,并在mm.c中定义。我们为您提供的mm.c文件实现了我们可以想到的最简单但仍在功能上正确的malloc程序包。 以此为起点,修改这些函数(并可能定义其他私有静态函数),以使它们遵循...原创 2020-08-10 19:19:46 · 2263 阅读 · 0 评论 -
CS:APP shell lab 记录
Introduction任务目的是使您更加熟悉过程控制和信号通知的概念。 为此,您需要编写一个简单的Unix Shell程序来支持作业控制。Hand Out Instructions首先将文件shlab-handout.tar复制到计划在其中进行保护的受保护目录(实验室目录)。 然后执行以下操作:1.输入命令tar xvf shlab-handout.tar展开tarfile。2.输入命令make进行编译并链接一些测试例程查看tsh.c(tiny shell)文件,您将看..原创 2020-07-26 20:08:52 · 437 阅读 · 0 评论 -
CS:APP cachelab 记录
Overview本lab将帮助您了解缓存对C程序性能的影响。 lab由两部分组成。 在第一部分中,您将编写一个小的C程序(大约200-300行),该程序模拟高速缓存的行为。 在第二部分中,您将优化一个小型矩阵转置函数,其目标是最大程度地减少高速缓存未命中的次数。Reference Trace Files讲义目录的traces子目录包含参考跟踪文件的集合,我们将使用它们来评估您在A部分中编写的缓存模拟器的正确性。跟踪文件由名为valgrind的Linux程序生成。 例如,输入在命令行.原创 2020-05-13 09:40:38 · 1044 阅读 · 0 评论 -
CS:APP archlab 记录
Introduction在本lab中,您将学习流水线Y86处理器的设计和实现,同时优化它和基准程序以最大化性能。 允许您保留对基准程序的任何语义转换,或者对流水线处理器进行增强,或者两者。 完成lab后,您将对影响程序性能的代码和硬件之间的交互的理解有很大的提升。 lab分为三个part,每个part都有自己的练习。 在part A中,您将编写一些简单的Y86程序并熟悉Y86工具。 在part...原创 2020-04-12 10:57:38 · 1783 阅读 · 0 评论 -
CS:APP buflab 记录
Introduction这项任务将帮助您对IA-32调用约定和堆栈组织有详细的了解。 它涉及对lab目录中的可执行文件bufbomb施加一系列缓冲区溢出攻击。Logistics像往常一样,这是一个单独的项目。我们使用gcc的-m32标志生成了实验,因此,即使主机是x86-64系统,编译器生成的所有代码也都遵循IA-32规则。 这足以使您确信编译器可以使用所需的任何调用约定,只要它...原创 2020-03-30 09:37:57 · 410 阅读 · 0 评论 -
CS:APP bomblab 记录
任务就是把bomb这个可执行文件里的炸弹拆掉,他有6组数据,你需要输入6次来拆除这个炸弹。简化流程你可以新建一个文件叫psol.txt,然后通过下面的执行命令./bomb psol.txt即可把psol.txt里的数字自动输入到bomb里。理论上直接重定向输入流<也是可以的吧。Hint1.学会用gdb。2.objdump -t可以打印可执行文件的符号表...原创 2020-03-11 10:54:19 · 543 阅读 · 0 评论 -
CS:APP datalab 记录
CS:APP这本书真的可以说是计算机的内容 给你从头讲到尾了,虽然每个领域方面的深度不够,但是已经足够了,因为每一个领域都不是这么简单就能够说完的,这本书能把这么多东西讲得很清楚真的不容易,所以看完建议挑战一下lab。要求:不允许使用条件语句和循环语句,只允许使用8个运算符:! ˜ & ˆ | + >来完成,某些题目会额外限制运算符数量,最大只能使用8位整数。...原创 2020-02-29 13:03:49 · 537 阅读 · 0 评论