LAB评分
所有我的LAB答案都在这里
Data Lab
- 花费时间:5小时
- 难度:偏易
- Total points: 36/36
| Score | Rating | Errors | Function | Operators |
|---|---|---|---|---|
| 1 | 1 | 0 | bitXor | 8 |
| 1 | 1 | 0 | tmin | 1 |
| 1 | 1 | 0 | isTmax | 6 |
| 2 | 2 | 0 | allOddBits | 9 |
| 2 | 2 | 0 | negate | 2 |
| 3 | 3 | 0 | isAsciiDigit | 7 |
| 3 | 3 | 0 | conditional | 8 |
| 3 | 3 | 0 | isLessOrEqual | 5 |
| 4 | 4 | 0 | logicalNeg | 6 |
| 4 | 4 | 0 | howManyBits | 89 |
| 4 | 4 | 0 | floatScale2 | 18 |
| 4 | 4 | 0 | floatFloat2Int | 16 |
| 4 | 4 | 0 | floatPower2 | 9 |
Bomb Lab
- 花费时间:6小时
- 难度:较难
- 通过:6/6
Welcome to my fiendish little bomb. You have 6 phases with
which to blow yourself up. Have a nice day!
Phase 1 defused. How about the next one?
That's number 2. Keep going!
Halfway there!
So you got that one. Try this one.
Good work! On to the next...
Congratulations! You've defused the bomb!Attack Lab
- 花费时间:6小时
- 难度:中等
- 通过:5/5
Cookie: 0x59b997fa
Type string:Touch3!: You called touch3("59b997fa")
Valid solution for level 3 with target rtarget
PASS: Would have posted the following:
user id bovik
course 15213-f15
lab attacklab
result 1:PASS:0xffffffff:rtarget:3:30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 AD 1A 40 00 00 00 00 00 C5 19 40 00 00 00 00 00 AB 19 40 00 00 00 00 00 48 00 00 00 00 00 00 00 DD 19 40 00 00 00 00 00 70 1A 40 00 00 00 00 00 13 1A 40 00 00 00 00 00 D6 19 40 00 00 00 00 00 C5 19 40 00 00 00 00 00 FA 18 40 00 00 00 00 00 35 39 62 39 39 37 66 61Cache Lab
- 花费时间:8小时
- 难度:中等+
- 分数:80/80
Part A: Testing cache simulator
Running ./test-csim
Your simulator Reference simulator
Points (s,E,b) Hits Misses Evicts Hits Misses Evicts
3 (1,1,1) 9 8 6 9 8 6 traces/yi2.trace
3 (4,2,4) 4 5 2 4 5 2 traces/yi.trace
3 (2,1,4) 2 3 1 2 3 1 traces/dave.trace
3 (2,1,3) 167 71 67 167 71 67 traces/trans.trace
3 (2,2,3) 201 37 29 201 37 29 traces/trans.trace
3 (2,4,3) 212 26 10 212 26 10 traces/trans.trace
3 (5,1,5) 231 7 0 231 7 0 traces/trans.trace
6 (5,1,5) 265189 21775 21743 265189 21775 21743 traces/long.trace
27
Part B: Testing transpose function
Running ./test-trans -M 32 -N 32
Running ./test-trans -M 64 -N 64
Running ./test-trans -M 61 -N 67
Cache Lab summary:
Points Max pts Misses
Csim correctness 27.0 27
Trans perf 32x32 8.0 8 288
Trans perf 64x64 8.0 8 1172
Trans perf 61x67 10.0 10 1997
Total points 53.0 53Shell Lab
- 花费时间:4小时
- 难度:较难
- 通过:16/16
> make test16
./sdriver.pl -t trace16.txt -s ./tsh -a "-p"
#
# trace16.txt - Tests whether the shell can handle SIGTSTP and SIGINT
# signals that come from other processes instead of the terminal.
#
tsh> ./mystop 2
Job [1] (3189983) stopped by signal 20
tsh> jobs
[1] (3189983) Stopped ./mystop 2
tsh> ./myint 2
Job [2] (3189986) terminated by signal 2
> make rtest16
./sdriver.pl -t trace16.txt -s ./tshref -a "-p"
#
# trace16.txt - Tests whether the shell can handle SIGTSTP and SIGINT
# signals that come from other processes instead of the terminal.
#
tsh> ./mystop 2
Job [1] (3189992) stopped by signal 20
tsh> jobs
[1] (3189992) Stopped ./mystop 2
tsh> ./myint 2
Job [2] (3189995) terminated by signal 2Malloc Lab
- 花费时间:11小时
- 难度:较难
- 分数:87/100
隐式空闲链表分数:
Results for mm malloc:
trace valid util ops secs Kops
0 yes 99% 5694 0.008513 669
1 yes 100% 5848 0.007585 771
2 yes 99% 6648 0.012653 525
3 yes 100% 5380 0.009373 574
4 yes 100% 14400 0.000125115663
5 yes 92% 4800 0.008175 587
6 yes 92% 4800 0.007601 632
7 yes 55% 12000 0.095317 126
8 yes 50% 24000 0.323989 74
9 yes 54% 14401 0.000225 63919
10 yes 76% 14401 0.000116123720
Total 83% 112372 0.473673 237
Perf index = 50 (util) + 16 (thru) = 66/100分离显式空闲链表分数:
Results for mm malloc:
trace valid util ops secs Kops
0 yes 97% 5694 0.000143 39930
1 yes 95% 5848 0.000211 27689
2 yes 98% 6648 0.000192 34697
3 yes 99% 5380 0.000130 41353
4 yes 98% 14400 0.000153 94056
5 yes 89% 4800 0.000236 20339
6 yes 87% 4800 0.000263 18272
7 yes 54% 12000 0.000266 45198
8 yes 47% 24000 0.077821 308
9 yes 32% 14401 0.042749 337
10 yes 57% 14401 0.000160 90175
Total 78% 112372 0.122322 919
Perf index = 47 (util) + 40 (thru) = 87/100Proxy Lab
- 花费时间:13小时
- 难度:难
- 分数:70/70
*** Basic ***
Starting tiny on 2139
Starting proxy on 16857
1: home.html
Fetching ./tiny/home.html into ./.proxy using the proxy
Fetching ./tiny/home.html into ./.noproxy directly from Tiny
Comparing the two files
Success: Files are identical.
2: csapp.c
Fetching ./tiny/csapp.c into ./.proxy using the proxy
Fetching ./tiny/csapp.c into ./.noproxy directly from Tiny
Comparing the two files
Success: Files are identical.
3: tiny.c
Fetching ./tiny/tiny.c into ./.proxy using the proxy
Fetching ./tiny/tiny.c into ./.noproxy directly from Tiny
Comparing the two files
Success: Files are identical.
4: godzilla.jpg
Fetching ./tiny/godzilla.jpg into ./.proxy using the proxy
Fetching ./tiny/godzilla.jpg into ./.noproxy directly from Tiny
Comparing the two files
Success: Files are identical.
5: tiny
Fetching ./tiny/tiny into ./.proxy using the proxy
Fetching ./tiny/tiny into ./.noproxy directly from Tiny
Comparing the two files
Success: Files are identical.
Killing tiny and proxy
basicScore: 40/40
*** Concurrency ***
Starting tiny on port 3506
Starting proxy on port 3261
Starting the blocking NOP server on port 21780
Trying to fetch a file from the blocking nop-server
Fetching ./tiny/home.html into ./.noproxy directly from Tiny
Fetching ./tiny/home.html into ./.proxy using the proxy
Checking whether the proxy fetch succeeded
Success: Was able to fetch tiny/home.html from the proxy.
Killing tiny, proxy, and nop-server
concurrencyScore: 15/15
*** Cache ***
Starting tiny on port 32391
Starting proxy on port 29991
Fetching ./tiny/tiny.c into ./.proxy using the proxy
Fetching ./tiny/home.html into ./.proxy using the proxy
Fetching ./tiny/csapp.c into ./.proxy using the proxy
Killing tiny
Fetching a cached copy of ./tiny/home.html into ./.noproxy
Success: Was able to fetch tiny/home.html from the cache.
Killing proxy
cacheScore: 15/15
totalScore: 70/70日程
- 2026-05-27
- SETUP: find material
- Lecture: 01 Course Overview
- Textbook: Chapter 1
- 2026-05-28
- Lecture: 02-04 Data Representation
- Textbook: Chapter 2 - Chapter 3.3
- LAB: Data Lab: xor - conditional
- 2026-05-29
- LAB: Data Lab: finished
- 2026-05-30
- Lecture: 05: Machine Level Programming I Basis
- Textbook: Chapter 3.4 - 3.6.5
- Notes: lec05
- 2026-05-31
- Lecture: 06: Machine Level Programming II Control
- Textbook: Chapter 3.6.6 - 3.8.4
- Notes: lec06
- 2026-06-01
- Lecture: 07: Machine Level Programming III Procedure
- Notes: lec07
- Textbook: Chapter 3.8.5 - 3.10
- LAB: Bomb Lab: Phase_1 - Phase_2
- 2026-06-02
- LAB: Bomb Lab: finished
- 2026-06-03
- Lecture: 08-09: Machine Level Programming IV-V Data - Advanced Topics
- Notes: lec08-09
- Textbook: Chapter 3.11 - Chapter 3.12
- 2026-06-04
- LAB: Attack Lab
- 2026-06-07
- Textbook: Chapter 5
- Lecture: 10: Program Optimization
- 2026-06-08
- Textbook: Chapter 6
- Notes: lec10
- Lecture: 11: The Memory Hierarchy
- 2026-06-09
- Textbook: Chapter 7.1 - 7.5
- Notes: lec12
- Lecture: 12: Cache Memory
- LAB: Cache Lab: Part A
- 2026-06-10
- LAB: Cache Lab: finished
- 2026-06-11
- Lecture: 13: Linking
- Textbook: Chapter 7.6 - 7.15
- 2026-06-13
- Lecture: 14: Exceptions Control Flow: Exceptions and Processes
- Textbook: Chapter 8.1 - 8.4
- 2026-06-14
- Lecture: 15: Exceptions Control Flow: Signals and Nonlocal Jumps
- Textbook: Chapter 8.5 - 8.8
- Notes: lec14
- 2026-06-15
- Lecture: 16: System Level I/O
- Textbook: Chapter 10
- Notes: lec16
- 2026-06-16
- LAB: Shell Lab
- Lecture: 17: Virtual Memory Concepts
- Textbook: Chapter 9.1 - 9.6
- 2026-06-17
- Lecture: 18 - 19: Virtual Memory Systems & Dynamic Memory Allocation Basic Concepts
- Textbook: Chapter 9.7 - 9.9
- 2026-06-18
- Notes: lec17
- Lecture: 20: Dynamic Memory Allocation Advanced Concepts
- Textbook: Chapter 9.10 - 9.12
- 2026-06-19
- Notes: lec19
- 2026-06-21
- LAB: Malloc Lab: Implicit Free List Malloc
- 2026-06-22
- LAB: Malloc Lab: Implicit Free List Finished
- 2026-06-24
- LAB: Malloc Lab: Finished
- 2026-06-26
- Lecture: 21: Network Programming Part I
- Textbook: Chapter 11.1 - 11.5
- 2026-06-27
- Lecture: 22: Network Programming Part II
- Textbook: Chapter 11.6 - 11.7
- 2026-06-28
- Lecture: 23-24: Concurrent Programming & Synchronization Basics
- Textbook: Chapter 12.1 - 12.5
- 2026-06-30
- Lecture: 25: Synchronization Advanced
- Textbook: Chapter 12.6 - 12.8
- Notes: lec23
- 2026-07-01
- LAB: Proxy Lab: Part I
- 2026-07-02
- LAB: Proxy Lab: Finished
后记
1个月学完了CSAPP,我感觉我的能力有了极大的提升
这门课与这本书果然名不虚传,补充了很多我在CS61C中不熟悉与不了解的东西
这门课的LAB难度都比较大,但是认真完成,一定可以学到很多知识
如果你看到这里,我想说,加油!与君共勉!
Art is never finished, only abandoned.
—— Leonardo da Vinci