IO
文章平均质量分 66
Joe.Smith
这个作者很懒,什么都没留下…
展开
-
volatile实现原理
可见性实现主要借助汇编lock前缀指令来实现。lock前缀会发出LOCK#信号指令执行分为两种情况:变量所在内存缓存行(cache line)对齐:不加锁,直接修改主存值变量所在内存缓存行(cache line)没有对齐:锁缓存行,修改主存值MESI协议:当CPU写数据时,如果发现操作的变量是共享变量,即在其它 CPU 中也存在该变量的副本,会发出信号通知其它CPU将该内存变量的缓存行设置为无效。原创 2022-10-14 16:32:04 · 158 阅读 · 0 评论 -
TCP/IP相关
RTT:Round-Trip Time,往返时延,即从发送方发送数据开始,到发送方接收到来自接收方的确认消息所经过的时间。ssthresh:全称为 slow start threshold,即满开始阈值。MSS:Maximum Segment Size,最大报文长度。RWND :(Receiver Window) 滑动窗口。2、关于慢启动、拥塞避免、超时重传、快速重传、快速恢复。CWND:Congestion Window)拥塞窗口。原创 2024-10-10 17:10:20 · 158 阅读 · 0 评论 -
select、epoll相关
如上图,假设进程A同时要监听socket文件描述符3、4、5,如果这三个连接都没有数据到达时,则进程A会让出CPU,进入阻塞状态,同时会将进程A的文件描述符和被唤醒时用到的回调函数组成等待队列加入到socket3、4、5的进程等待队列中。①wq:等待队列链表,如果当前进程没有数据需要处理,会把当前进程描述符和回调函数default_wake_function构造一个等待队列项,放入当前wq队列,软中断数据就绪的时候,会通过wq来找到阻塞在epoll对象上的用户进程;③rdlist:就绪的文件描述符链表。原创 2024-10-10 16:31:56 · 455 阅读 · 0 评论