w h y ? y o u a r e h e r e ?

概述ucontext系列允许在C中实现高级控制流模式,例如迭代器,纤维和协程。 主要的4个函数 int setcontext(const ucontext_t *ucp) This function transfers control to the context in ucp. Executio ...
Read more »

什么是系统调用系统调用是应用程序(包含运行库)与操作系统内核的接口,它决定了应用程序如何与内核打交道。在现在的操作系统系统里,程序运行的时候,本身是没有权利访问系统的资源,由于系统有限的资源有可能被不同的应用程序同时访问,因此,如果不加以保护,各个应用程序的冲突在所难免。所以现代操作系统都尽可能的把 ...
Read more »

进程的建立从操作系统的角度看,一个进程最关键的特征是它拥有独立的虚拟地址空间,这使得它有别于其他进程,很多时候一个程序程序被执行同时伴随着一个新进程的创建,在有虚拟存储的情况下,创建一个进程,然后加载可执行文件并且执行,需要做三件事: 创建一个独立的虚拟地址空间 读取可执行文件头,并且建立虚拟空间 ...
Read more »

原子操作自增(++i)操作在多线程环境下出现错误是因为这个操作被编译成的代码不止一条指令,因此在执行的时候可能执行到一半被系统调度打乱,去执行别的代码。我们把单指令的操作称为原子的(atomic),因为无论如何,单条指令的执行时不会被打乱的,为了避免出错,很多体系结构都提供了一些常用操作的原子指令。 ...
Read more »

概述一个Timer的实现需要具备以下几个行为: StartTimer(Interval, ExpiryAction) 注册一个时间间隔为 Interval 后执行 ExpiryAction 的定时器实例,其中,返回 TimerId 以区分在定时器系统中的其他定时器实例。 StopTimer(T ...
Read more »

socket是网络协议栈的抽象socket api在tcp中的体现 TCP三次握手后有个accept队列,进到这个队列才能从Listen变成accept,默认backlog 值是50。 如上图所示,这里有两个队列:syns queue(半连接队列);accept queue(全连接队列)三次握手中, ...
Read more »

概述TCP & socket 总结, 网卡 network interface card 网卡需要有驱动才能工作,驱动是加载到内核中的模块,负责衔接网卡和内核的网络模块,驱动在加载的时候将自己注册进网络模块,当相应的网卡收到数据包时,网络模块会调用相应的驱动程序处理数据。 内核如何从网卡接受 ...
Read more »

抽中一张橙卡1234567891011121314151617181920212223/*从N个元素里面随机一个出来,每个的概率不同*/template<class T>bool RandomOne(const std::vector<T>& v, T& re ...
Read more »

IP header UDP header TCP header MTU & MSSMSS=MTU-IP包头长-TCP包头长 三次握手交换初始序列号 交换TCP窗口大小信息 四次挥手可以三次挥手吗,可以,ack+fin一起发就是三次,启用延迟确认就有三次挥手 2MSL等待状态TIME_WAIT ...
Read more »

处理流程当使用 awk 命令处理一个或者多个文件时,它会依次读取文件的每一行内容,然后对其进行处理,awk 命令默认从 stdio 标准输入获取文件内容,awk 使用一对单引号来表示一些可执行的脚本代码,在可执行脚本代码里面,使用一对花括号来表示一段可执行代码块,可以同时存在多个代码块。awk 的每 ...
Read more »