随笔分类 - 课程--计算机系统基础与实现 / csapp
摘要:
from pixiv 资料 为 Bare-Metal 编程:编译、链接与加载 Klib: 操作系统内核最小的运行库 CSAPP 第 7 章:链接 x86-64 下函数调用及栈帧原理 DEBUG Makefile make -nB ARCH=x86_64-qemu 可以查看完整的编译、链接到 x86-
阅读全文

摘要:
from pixiv 优化程序性能 消除不必要的工作 循环不变式外提 减少循环函数调用 减少循环访存 理解编译器的能力和局限性 编译器只对程序进行保守的,安全的优化 编译器会假设最坏的情况,若优化在此种情况下可能导致程序结果改变,编译器不会执行优化 如指针,指针可能同时指向同一个地址 在超标量乱序执
阅读全文

摘要:
from pixiv 基于LMbench测试LLC perf-book -- 内存延迟和带宽 工具与术语 LLC延迟(Last Level Cache Latency) 是指处理器访问最后一级缓存(通常是L3缓存)中的数据所需的时间延迟。 LMbench LMbench是Intel旗下的内存测试工具
阅读全文

摘要:
from pixiv 系统级I/O 文件 所有的 I/O 设备(例如网络、磁盘和终端)都被模型化为文件,而所有的输入和输出都被当作对相应文件的读和写来执行。这种将设备优雅地映射为文件的方式,允许 Linux 内核引出一个简单、低级的应用接口,称为 Unix I/O Linux 文件有主要有三种类型:
阅读全文

摘要:
from pixiv 前置知识 进程 逻辑控制流(简称逻辑流) CSAPP P508: 一系列的程序计数器PC的值唯一地对应于包含在程序的可执目标文件中的指令或包含在运行时动态链接到程序的共享对象指令。这个PC值的序列叫逻辑控制流。 一个逻辑流的执行在时间上与另一个流重叠,称为并发流,这两个流被称为
阅读全文

摘要:
桜が散る 知识点 Physical Address (PA) Virtual Address (VA) Memory Management Unit (MMU):利用存放在主存中的查询表来动态翻译虚拟地址。 Virtual Page (VP):VM系统通过将虚拟内存分割为若干大小固定的块,称为虚拟页
阅读全文

摘要:
sakura🌸 框架 实验框架 本实验目的是通过Linux信号函数实现简单的Shell main: 在main程序中,主要是使用`signal`注册当内核向Shell程序发送信号时,应该调用的处理函数 然后使用while循环,每一次循环打印shell提示符tsh>,以及等待用户输入,用户输入完成后
阅读全文

摘要:
春が来る 知识点 在这里我会回答以下几个问题: 计算机的访问内存的整个流程是什么?计算机中虚拟地址,物理地址(P573),以及访问缓存的地址(P426) 他们之间的关系是什么,又是如何进行转换的? 我们在两个C语言程序中打印某个变量的内存,发现他们的内存显示是一样的,难道不会冲突吗? PS:图均来自
阅读全文

摘要:
from pixiv 吐槽 首先不得不说说官网的WriteUp了,看了半天看不懂他在讲啥,好吧其实是我菜 我的输出与官网演示的不一样: 而我的是 查了一下,说是默认连接评分服务器,要用-q关闭 我都没输入任何字符串呢,就直接让我Segmentation fault了 我用gdb调试进去,发现只要没有
阅读全文

摘要:
from pixiv 知识点 在上一章"程序的机器级表示"中,我们可以知道所谓ISA(指令集体系结构)定义了机器级程序的格式和行为: P113 定义了指令的格式(编码方式) 定义了处理器状态 定义了每条指令对状态的影响 软件设计师和硬件设计师以ISA为规则,分别编写出合法的汇编程序,制造出实现ISA
阅读全文

摘要:
from pixiv 参考博客 手把手教你拆解 CSAPP 的 炸弹实验室 BombLab GDB调试-从入门实践到原理 Linux上分屏软件 Tmux 使用教程 知识点 gdb jump 函数名 / * 地址名 jump 能够很灵活地在gdb调试汇编代码时跳转 当一不小心错过了关键信息时,我们便可
阅读全文

摘要:
from pixiv 实验官方地址 环境配置 问题 当我按照官网Lab1中的WriteUp对项目进行make时,出现如下错误: 很快我找到了问题的原因: from there 但是在apt install时又出现了问题: 查找网络,说是Ubuntu版本太高,但是apt的源太低,要apt update
阅读全文
