阅读清单
UNIX环境高级编程(APUE) TCP-IP详解卷2:实现 TCP&IP网络编程
UNIX环境高级编程(APUE) TCP-IP详解卷2:实现 TCP&IP网络编程
[!note] 篇幅比较短的小节就直接列入章节下的有序列表中,节省整篇笔记的篇幅 unix标准及实现 unix标准化 ISO C:国际标准化组织 C程序设计语⾔国际标准⼯作组,这个标准旨在提供C程序的可移植性,而不只适用于unix系统。 IEEE POSIX:电气和电子工程师学会 可移植操作系统接口,这个标准旨在提升应用在各种unix系统环境之间的可移植性...
思路 被这个实验折磨了两天,可能是2024新出的一个实验内容,网上资料少,参考了一篇仅有的博客,吭哧吭哧分析出来了个大概吧…在此记录一下,以便帮助有需要的人。 attack xv6的ans只有几行代码,根据实验描述,大概能猜到是secret程序结束之后,attack程序复用了它的物理内存,然后读取之前写入内存中的密码。难点在于我们如何定位到那段内存。 在开始之前直接先给出ans,可以看...
primes 比较容易想到的是递归的做法:主进程生产2~280这些自然数通过管道传输给子进程,子进程读取并将第一个数作为素数输出,剩下的数用该素数作为筛子来筛选,没有被筛除的数就输入管道,输入给下一个子进程,下一个子进程重复上述步骤。 #include "kernel/types.h" #include "user/user.h" void sieve(int in_fds[2]) _...
本篇博客详细解析 LeetCode 204(Count Primes)的三种解法,包括枚举法、埃氏筛和欧拉筛(线性筛),并分析其时间复杂度与空间复杂度。
[!note] 基于nsq v1.3.0 执行流程 在第一篇中,主要对nsq中涉及到的主要组件,以及数据流在这些组件中的流动进行了简单说明。在本篇中,我们跟随上一篇最后给出的demo,对应到nsqd的代码中,看一下执行流程是怎么样的。 上篇最后我们向4151端口发起http请求来发送消息: curl -d "test message" "http://127.0.0.1:4151/...
开篇 DiskQueue 是 NSQ 中的持久化组件,承担着将消息存储到磁盘的任务,它以高效、可靠的方式在内存与磁盘之间进行切换。在开始分析 nsq 那几个大件之前,先深入分析下 DiskQueue 的核心设计和实现,解密其背后的关键技术点,包括写入机制、读取逻辑以及在异常场景下的恢复策略。 设计 nsq将diskqueue抽取出来作为一个库来维护:https://github.com...
[!note] 基于nsq v1.3.0 简介 NSQ是类似kafka、rabbitmq那样的消息队列系统,关于他怎么高性能,怎么好上手这些都不必多说,都是吹逼。这篇主要介绍一下nsq的整个大致架构,建立一个概念,方便后续的源码分析有迹可循。 架构 NSQ由三个守护进程组成: nsqd:接收、排队、分发消息 nsqlookupd:管理拓扑,提供最终一致的服务发现 n...
[!note] 这篇几乎是https://juejin.cn/post/6844903785744056333的转载-简略版 伯努利实验 在认识为什么HyperLogLog能够使用极少的内存来统计巨量的数据之前,要先认识下伯努利试验。 伯努利试验是数学概率论中的一部分内容,它的典故来源于抛硬币。 硬币拥有正反两面,一次的上抛至落下,最终出现正反面的概率都是50%。假设一直抛...
负载均衡算法 常见的负载均衡算法如下: RoundRobin(轮询) Weight-RoundRobin(加权轮询) 不同的后端服务器可能机器的配置和当前系统的负载并不相同,因此它们的抗压能力也不相同。给配置高、负载低的机器配置更高的权重,而配置低、负载高的机器,给其分配较低的权重,降低其系统负载,加权轮询能很好地处理这一问题,并将请求顺序且按照权重分配到...