CSAPP Lab 8 Proxy lab

终于到最后一个 Lab 啦! 这个 Lab 的任务是实现一个代理服务器,将客户端发送的请求转发到服务端。 这个 Lab 分为三个任务,第一个任务需要实现这个代理服务,第二个任务支持处理并发请求,第三个任务需要实现缓存。 Part I: Implem...

学习笔记

CSAPP Lab 7 Malloc Lab

本次实验的内容也比较清晰,只需要完成一个手写的 malloc 动态内存分配器即可。 书上第 999 章第 999 节介绍了这样的分配器的实现方法。 实验要求 本次实验提供了基本的框架,需要完成下面几个函数: 1234int mm_init(void...

学习笔记

CSAPP Lab6 Shell Lab

本次实验的任务很清晰,实现一个简单的 Unix Shell。需要用到基础的进程控制、信号处理等知识。 简单来说,实验已经提供了一些简单的功能,我们需要在此基础上,实现下面的功能: eval:解析和解释命令行的主例程。[70行] builtin_cm...

学习笔记

CSAPP Lab5 Cache Lab

到实验 5 啦! 这次的实验是有关高速缓存的。 让我们先来复习一下高速缓存的基础知识吧! 复习 高速缓存的结构 在一个存储器地址有 mmm 位的系统上,一共有 M=2mM = 2^mM=2m 个地址。假设高速缓存被组织成一个有 S=2sS = ...

学习笔记

CSAPP Lab-4 Architecture Lab

本次实验是有关书上第四章设计的 Y86-64 处理器的,实验分为三个部分,分别是编写几个简单的 Y86-64 程序、使用一条新指令扩展 SEQ 模拟器以及优化 Y86-64 的基准测试程序和处理器设计。 实验准备 需要简单复习一下 Y86-64 的...

学习笔记

CSAPP Lab-3 ATTACKLAB

书接上回,这次做到了第三个 Lab 啦。 任务描述 这一个 Lab 的任务就更有意思了,实验给了我们两个程序,每个程序都会让我们输入一行字符串,而它们是通过下面这个函数来读取的: 12345unsigned getbuf() { char...

学习笔记

CSAPP Lab-2 BOMBLAB

第二个 Lab 就比较有趣了。 这一个 Lab 的任务是,我们得到了一个 bomb 炸弹程序,这个炸弹程序有 666 个 phase,每个 phase 都会读取我们的输入,判断我们的输入是否符合要求,如果正确这个 phase 的炸弹就会被拆除,否则炸...

学习笔记

CSAPP Lab-1 DATALAB

最近看完了 CSAPP 整本书,发现官网上还有 11 次实验可以做。 UPD:好像只有 9 个,因为有两个是旧版本的,可以被新版的替代掉。 UPD:好像只有 8 个,performance 也算是旧的实验了,但是没有明确指出。 Lab 地址: htt...

学习笔记