首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

linux源码epoll

前言 在linux的高性能网络编程中,绕不开的就是epoll。和select、poll等系统调用相比,epoll在需要监视大量文件描述符并且其中只有少数活跃的时候,表现出无可比拟的优势。...本文就是笔者在探究epoll源码过程中,对kernel将就绪描述符添加到epoll并唤醒对应进程的一次源码分析(基于linux-2.6.32内核版本)。...源码socket的阻塞和非阻塞>>中,博客地址如下: https://my.oschina.net/alchemystar/blog/1791017) 既然知道了tfile->f_op->poll的实现...的软中断机制调用net_rx_action,如下图所示: 注:上图来自PLKA(>) step2: 紧接着跟踪next_rx_action next_rx_action...总结 epoll作为linux下非常优秀的事件触发机制得到了广泛的运用。其源码还是比较复杂的,本文只是阐述了epoll读写事件的触发机制,探究linux kernel源码的过程非常快乐_。

2.2K20

linux源码socket的close

linux源码socket的close 笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情。...上篇博客讲了socket的阻塞和非阻塞,这篇就开始谈一谈socket的close(以tcp为例且基于linux-2.6.24内核版本) TCP关闭状态转移图: 众所周知,TCP的close过程是四次挥手...出现大量close_wait的情况 linux中出现大量close_wait的情况一般是应用在检测到对端fin时没有及时close当前连接。有一种可能如下图所示: ?...总结 linux内核源代码博大精深,阅读其代码很费周折。之前读>的时候由于有先辈引导和梳理,所以看书中所使用的BSD源码并不觉得十分费劲。...直到现在自己带着问题独立linux源码的时候,尽管有之前的基础,仍旧被其中的各种细节所迷惑。希望笔者这篇文章能帮助到阅读linux网络协议栈代码的人。

5.2K80

算法创作|华氏温度与摄氏温度的转换问题

温度转换的计算公式:C=5×(F−32)/9,其中:C表示摄氏温度,F表示华氏温度。输出华氏-摄氏温度转换表 输入:在一行中输入2个整数,分别表示lower和upper的值,中间用英文逗号分开。...输出:第一行输出:“fahr celsius”,接着每行输出一个华氏温度fahr(整型)与一个摄氏温度celsius(占据6个字符宽度,靠右对齐,保留1位小数)。...解决方案 问题是要把华氏温度转化为摄氏温度,所以我们先应该对华氏温度给定一个范围,再在lower和upper限定的范围里进行转换。...先要判断输入的lower和upper的大小关系,进行分类讨论,再循环输出给定范围内的所有华氏温度的摄氏温度。...结语 本次算法创作我们小组就华氏温度与摄氏温度的转换进行了研究,本次我们用到了map函数,if的条件判断与while循环语句,看似很简单的一个问题,其实有多种解法:for循环、while循环。

87920

从无盘启动 Linux 启动原理

但是家里没有找到合适的 U 盘(穷~~),加上前段时间听了同事关于 linux 内核的分享,感慨自己对系统的理解不够。因此我决定使用无盘启动 volumio 顺便研究一下 linux 启动原理。...可以直接通过 Http 协议获取 Linux kernel 和 ramdisk 然后启动 或者加载一块 iscsi 磁盘,将 linux kernel 和 ramdisk 等信息放在 iscsi 磁盘中...引导加载程序:Syslinux 和 GRUB 前文说到 MBR 的 bootloader 主要功能是交棒内核,但是 bootloader 不会直接拉起 linux 内核,400K 太小,它没有能力将 linux...它可以提供选单选择 Linux 内核版本,此外加载程序使得我们可以向 Linux 内核传递参数。这点很重要,在我的案例中 volumio 就是通过 Syslinux 向内核传递启动参数的。...Linux 能够使用硬盘空间作为虚拟内存,因此得名“vm”。vmlinuz 是可执行的 Linux 内核。 initrd 是“initial ramdisk”的简写。

8.1K104

GPU温度的采集

GPU硬件参数越来得到开发人员的关注,对GPU 温度,占用率,显存等参数也纳入监控平台的重要监控指标。本文以温度为例介绍如何监控显卡GPU相关参数。...Windows资源监控管理器,能看到GPU各种占有率参数,但看不到GPU的温度,且通过这UI种方式只能在Windows系统中查看,无法将数据传的传输后台监控。...不足之处如下: 每采集一次温度调一次命令行,相当于启动一个进程,有一定开销。或者该命令行常驻执行,每N秒刷新一次参数,但如果被用户干掉了也就麻烦了,需要写一个守护程序保护这个进程。.../12538530 AMD显卡API采集温度实现: AMD显卡我们通过调用显卡驱动自带的dll库提供的API来完成温度参数的采集(AMD显卡比较坑,库中有几套API,不同显卡API还不一样,如果遇到API...,GPU显存利用率等都可以使用同样思路完成,Linux下也是类似的思路。

96420
领券