[笔记] 杂乱 - xieyunzi/xieyunzi.github.io GitHub Wiki

学一门编程语言 -> 学多门语言

语言之下的基础

  • 系统相关
    • 程序运行于操作系统之上, 操作系统运行于硬件之上, 了解系统怎样管理 cpu 内存 和各种设备, 可以帮助理解高层抽象的来源和限制
      • 要熟悉操作系统 api, 了解系统怎样管理调度 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

refs