博客
分类
标签
归档
友链
关于
Dark Mode
博客
分类
标签
归档
友链
关于
Dark Mode
Mens et Manus
lex和yacc使用
Abstract 使用lex工具做词法分析 使用yacc做语法分析 Lex Usage编译运行 flex <file.l>默认生成lex.yy.c文件 gcc -lfl lex.yy.c lex源程序三段式: 12345声明部分%%规则部分%%用户自定义函数 1234567891011121314%{ 辅助性C声明%}辅助定义正规式<名> &...
2022-05-03
Read More
MSI缓存一致性协议
Abstract single cache line问题 现代CPU一般都会有三级缓存L1, L2, L3。L1缓存的每个CPU独立的,L2L3是CPU间共享的。cache的存在读时可以提高读取速度,写时可以防止直接写到内存(write back, write through) 12345678910111213141516┌──────┐ ┌──────┐ ┌──────┐│ ...
2022-04-25
Read More
no-scalable lock及其解决方案
Summary 有共享就得考虑哪里有瓶颈 no-scalable问题的本质就是”即共享又私下算账, 最后还要那私账说事” Abstract所谓no-scalable lock就是,并发程序为了实现一致性,需要使用锁对共享资源进行互斥访问。如果使用的是一个no-scalable的锁,那么就会观察到随着cpu核心数量的上升,并发程序的性能并不能得到有效的提高,甚至会有所下降。 要理解这个问题的...
2022-04-25
Read More
多态Tree Easy Pieces
Preface多态Tree Easy Pieces: 强制类型转换 公共前缀 this指针偏移 这里讨论的cpp的多态是指父类虚函数的执行是由指针具体指向的对象而定。下面将围绕如下例子说明: 1234567891011121314151617181920212223242526272829class Shape {public: virtual void area(){...
2022-04-11
Read More
零拷贝
Preface用户态拿到硬件数据再发送需要几步? 首先硬件是归操作系统管理的,所以要想获取到硬件数据得先进入内核态 其次内核态和用户态的地址空间是隔离的,所以需要内核态和用户态直接的数据拷贝 ok,理解了前置基础,let jump into it 最原始的操作理解了上面提到的基础只是那么应该能够想到。以网卡为例 用户读数据 因为网卡(硬件)归操作系统管理,网卡需要先将数据发给内核bu...
2022-03-30
Read More
使用container名再容器之间互ping
使用container名再容器之间互ping创建两个容器: 12docker run -it --name node0 ubuntudocker run -it --name node1 ubuntu 使用docker inspect查看node0的ip 1docker inspect node0 | grep IPAddr 容器内按照ping攻击apt install iputils-...
2022-03-19
Read More
QOM系统的"对象构建"子系统
Preface关于为何需要使用device_class_set_parent_realize()的讨论 1234567void device_class_set_parent_realize(DeviceClass *dc, DeviceRealize dev_realize, ...
2022-03-01
Read More
如何让已经运行的程序到后台运行
<c-z>挂起, 再开tmux, 在tmux里fg jobs fg bg disown <pid>shell退出不影响程序 中途改变想法了想记录日志,可以使用调试器修改描述符,从而记录日志123$ gdb -p <pid>(gdb) P (int)dup2((long)open("path/to/file", ...
2022-02-27
Read More
qemu中设备实例化过程
设备实例化过程:vcpu线程和cpu实例如何对接Abstractqemu设备实例化大致可以分为两个阶段: QOM系统的初始化 具体设备的初始化 纯c编写的qemu为了实现面向对象开发了自己的一套QOM系统(qemu object module)。用户掌握QOM提供的接口后就可以在qemu开发过程中用上一些面向对象的特性。 这里1.2章将先会讨论qemu中用面向对象方式进行实例化的原理,然...
2022-02-24
Read More
DDIA reading note
DDIA reading note存储结构Q 高吞吐量 TODO: 重看 append only SSTables(Sorted String Table) 分制(归并)的思想,合并有序段 有序 => 快找 append only => 磁盘顺序写入 LSM tree(日志结构合并树) 保存一系列在后台合并的SSTables 顺序写 => 写入更快 考虑写放大问...
2022-01-18
Read More
Previous
7 / 25
Next