2021年3月15日

摘要: CAS类 CAS 即 compare-and-swap , 下面这两个函数提供原子的比较和交换,如果 *ptr == oldval,就将 newval 写入 *ptr 此函数在相等并写入的情况下返回 true bool __sync_bool_compare_and_swap (type *ptr, 阅读全文
posted @ 2021-03-15 20:08 tycoon3 阅读(1897) 评论(0) 推荐(1)
摘要: pthread使用barrier栅栏方式同步 Linux中提供了多种同步机制,其中使用barrier(栅栏)是多线程之间进行同步的方法之一。 基本原理: 假设多个线程约定一个栅栏,只有当所有的线程都达到这个栅栏时,栅栏才会放行,否则到达此处的线程将被阻塞。 使用场景: 程序启动的时候,需要建立一个独 阅读全文
posted @ 2021-03-15 19:51 tycoon3 阅读(330) 评论(0) 推荐(0)
摘要: 三次握手 三次握手协议的过程: a.客户端 向 服务器端 发送一个 SYN 包,请求一个主动打开。该包携带客户端为这个连接请求设定的随机数A作为消息列号。 b.服务器端接收到一个SYN包后,把该包放入SYN队列中;回送一个SYN/ACK。ACK的确认码应为A+1,SYN/ACK包本身携带一个随机产生 阅读全文
posted @ 2021-03-15 11:33 tycoon3 阅读(782) 评论(0) 推荐(0)
摘要: 思维导图 1、什么是拥塞控制? 拥塞控制是一种用来调整传输控制协议(TCP)连接单次发送的分组数量的算法。它通过增减单次发送量逐步调整,使之逼近当前网络的承载量。 简单易懂的话来说,所谓的拥塞控制,从字面的意思来讲,网络通信就像是一个水管里的水,如果水突然因为水管的赃物阻塞了,那么我们就应该采取一定 阅读全文
posted @ 2021-03-15 11:26 tycoon3 阅读(425) 评论(0) 推荐(0)
摘要: This blog post explains how computers running the Linux kernel receive packets, as well as how to monitor and tune each component of the networking st 阅读全文
posted @ 2021-03-15 11:05 tycoon3 阅读(540) 评论(0) 推荐(0)
摘要: 从网卡收包到上送协议栈有两个模式: 一种是传统的中断模式,即收到一个数据包,执行一次中断处理函数(比如e100_rx),在此函数中分配skb,替换有数据的skb(DMA已经将数据拷贝到初始化的skb),调用netif_rx将有数据的skb放在percpu的队列上(如果开启了RPS,这个队列有可能是本 阅读全文
posted @ 2021-03-15 11:00 tycoon3 阅读(591) 评论(0) 推荐(0)
摘要: Linux SMP 多核调用示例 在多core系统中,系统启动后内核将会在一个core上执行,且会在不同core上进行调度。即内核模块(驱动)加载只会在一个core中执行一次初始化。那么需要在所有core,或某个特殊的core执行那么我们需要smp提供的多核接口。 smp相关api 在linux/s 阅读全文
posted @ 2021-03-15 10:50 tycoon3 阅读(413) 评论(0) 推荐(0)

导航