计算机网络-BBR拥塞控制算法

为什么需要 BBR 算法

我们将传统的拥塞控制算法称为基于“丢包设计”的,代表为 TCP CUBIC 和 Reno。

TCP Reno:就是我们在教科书上最常见的拥塞控制算法,即线性增、乘性减。为了方便后文展开,先快速温习一边:

OS-进程调度

进程调度算法

调度分为非抢占式 (Non-preemptive) 和 抢占式 (Preemptive):

  • 非抢占式:一旦进程拿到 CPU,它就一直占着,直到它自己执行完,或者因为需要等待 I/O(比如读文件)而主动进入阻塞状态。
  • 抢占式:操作系统更强势,如果给你的时间片用完了,或者有更重要的进程来了,系统会强制剥夺你的 CPU 使用权。

为了防止一个进程“霸占”资源导致系统卡死,现代操作系统大多采用抢占式调度,利用时间片(Time Slice)来强制切换,制造“并发”的假象。

Redis入门:一致性

旁路缓存策略 (Cache Aside)

假设你要把数据库 💾 里的一个值(比如商品库存)从 10 改成 9。为了防止 Redis 🧠 里存的还是 10(脏数据),我们需要操作 Redis。

小范围随机数生成大范围采样

随机数生成器的扩展

题目:

已知一个函数 rand3(),能够等概率地生成整数 1, 2, 3。 现有一个包含 $N$ 个样本的数组 samples($N > 3$)。 请利用 rand3() 实现一个函数,能够等概率地(即概率为 $1/N$)从这批样本中抽取一个元素。