计算机系统
《深入理解计算机系统》笔记
不维护了
这个作者很懒,什么都没留下…
展开
-
深入理解计算机系统(4)——cache lab
Part A:Writing a Cache SimulatorPart B:Optimizing Matrix TransposePart A:Writing a Cache Simulator1. 任务:编写csim.c,模拟cache的命中、不命中与牺牲行。需要牺牲行时,用LRU替换策略进行替换(LRU:最近最少使用)2. 检测方法:nameuseI指令加载,前无空格L数据加载,有空格S数据存储,有空格M数据修改(数据存储之后的 ..原创 2020-05-21 15:54:48 · 1635 阅读 · 0 评论 -
深入理解计算机系统(3)——attack lab
目录用到的指令第一部分:Code Injection Attacksphase 1phase 2phase 3第二部分:Return-Oriented Programming Attacksphase 4phase 5用到的指令名字用途./hew2raw <1.txt> p1.txt将攻击字符串转化为可读取格式gcc -c 1.s编译生成1.o文件objdump -d 1.o(or ctarget)>1.txt反汇编输出含机器码的语句./ct原创 2020-05-08 19:02:15 · 1886 阅读 · 0 评论 -
深入理解计算机系统(2)——bomblab
目录phase_1phase_2phase_3phase_4phase_5phase_6我在过程中用到的命令:名字功能gdb bomb编译文件break +函数名设置断点ni单步调试si进入子函数的单步调试i r查看每个寄存器里的值print *(int*)+地址打印指向地址的整数值x/s +地址打印指向地址的字符串p...原创 2020-04-28 17:15:13 · 1419 阅读 · 2 评论 -
深入理解计算机系统(1)——datalab
目录DATALAB1DATALAB1内容是整数与浮点数的位级操作。bitAnd运用德摩根律。int bitAnd(int x, int y) { return ~(~x | ~y); }getByte先将x右移,用0xFF将左移后置于末尾的目标字节取出即可。int getByte(int x, int n) { int tmp = x >> ((n) ...原创 2020-04-09 11:34:59 · 1637 阅读 · 0 评论