[笔记] 杂乱 - xieyunzi/xieyunzi.github.io GitHub Wiki
学一门编程语言 -> 学多门语言
语言之下的基础
- 系统相关
- 程序运行于操作系统之上, 操作系统运行于硬件之上, 了解系统怎样管理 cpu 内存 和各种设备, 可以帮助理解高层抽象的来源和限制
- 要熟悉操作系统 api, 了解系统怎样管理调度 cpu 内存 等等设备资源
- 进程间通行机制
- 并发模型
- 程序运行于操作系统之上, 操作系统运行于硬件之上, 了解系统怎样管理 cpu 内存 和各种设备, 可以帮助理解高层抽象的来源和限制
- 了解编译, 链接, 程序加载过程, 知道程序怎样和系统配合
语言相关
- 语言的类型系统
- 语法
- 相关的库
- 可用的并发模型
- 内存模型
[疑问]如果只是学习一门语言本身而不考虑实际用途应该关注什么?
- 类型系统
- 语法
- ???
二进制编码
- 正数(符号位为0的数)补码与原码相同.
- 负数(符号位为1的数)变为补码时符号位不变,其余各项取反,最后在末尾+1
编码与进制
- Gray code 格雷码(循环二进制单位距离碼)是任意两个相邻数的代码只有一位二进制数不同的编码,它与奇偶校验码同属可靠性编码。
- 独热码
堆栈平衡
程序经过编译链接,高级语言中的一个语句转换成一段汇编代码。而这段汇编代码执行前后esp、ebp应该保持不变。也就是说每个子程序调用前后esp、ebp不应改变。只有这样,才能让一段代码的执行不影响到以前各次调用的返回地址,从而保证整个程序的正确运行。
_cdecl是有调用者来维护堆栈平衡的,而_stdcall是有子函数负责维护
CPU 是怎么检测外部中断的
CPU对系统内部中断源提出的中断请求必须响应,而且自动取得中断服务子程序的入口地址,执行中断服务子程序。对于外部中断,CPU在执行当前指令的最后一个时钟周期去查询INTR引脚,若查询到中断请求信号有效,同时在系统开中断(即IF=1)的情 况下,CPU向发出中断请求的外设回送一个低电平有效的中断应答信号,作为对中断请求INTR的应答,系统自动进入中断响应周期。
https://segmentfault.com/q/1010000009330782
metrics
- Gauges 最简单的度量指标,只有一个简单的返回值
- Counter 是计数器, Counter 只是用 Gauge 封装了 AtomicLong
- 一般情况下,当我们需要统计某个函数被调用的频率 (TPS), 会使用Meters
- 当需要统计某个函数的执行耗时时,会使用Histograms
- 当既要统计TPS又要统计耗时时,我们会使用Timers