Unix编程
德阳凯子哥
小小程序员一枚,内核和应用层都做过,熟悉各个系统调用、网络编程、内核内存管理、虚地址管理、进程调度等。有一个内核算法移植到应用层的项目。微信:crazyherozk
展开
-
最小堆定时器 —— 优化
定时器优化多路复用本质上为了多个任务可以把一个线程作为运行上下文,减少线程的创建,从而减少上下文的切换,有利提高性能。全局容器为了更好的使用多核的性能,我们将在每个核上设置一个全局的变量,然后使用散列方式将排队的定时器分发到响应的堆容器中。/*我们使用一个宏来控制个数,这样很容易通过编译来控制数量*/struct ev_loop ev_loops[NR_CPU];现在需要一个分发的辅...原创 2020-02-05 15:01:23 · 627 阅读 · 0 评论 -
定时器 —— 库的设计
定时器 ———— 设计这是一篇启发式的文章,重在介绍设计一个功能库的步骤。我们在开发一个功能库的时候,不能一开始就胡乱的开始编码。最基本的必须要想清楚,你想让库的使用者如何使用这个库。所以在开始编码前,必须尝试来写一个定时器的应用。定时器语义定时器的作用是在未来某个时刻执行某项任务,在程序里就是运行一个函数;然而当我们启动定时器后,由于各方面的条件影响,需要取消定时,或修改定时(提前或...原创 2020-02-04 00:40:27 · 251 阅读 · 0 评论 -
最小堆定时器 —— 实现
最小堆定时器我们将使用内核现有的数据结构和同步结构的 API 来说明怎样设计一个最小堆定时器,并扩展语义。内核在 2.6.16 就已经使用最小堆实现了一个叫着 hrtimer 的定时器,但是语义较复杂,我们将使用它的一些现成的数据结构和辅助函数来实现 timer_list 定时器。最小堆定时器队列最小堆数据结构的语义是有序的、线性的数据结构,“最小”的成员在容器的前端。在 内核定时器 一文中...原创 2020-02-03 17:29:07 · 805 阅读 · 0 评论