上一页 1 2 3 4 5 6 7 8 ··· 12 下一页
摘要: FD.io项目介绍 FD.io(Fast data - Input/Output)是Linux基金会旗下的又一开源项目,其成立于2016年2月11日。该项目在通用硬件平台上提供了具有灵活性、可扩展、组件化等特点的高性能IO服务框架,用以迎接下一个网络和存储浪潮。该框架支持高吞吐量、低延迟、高资源利用 阅读全文
posted @ 2020-02-22 23:56 坚持,每天进步一点点 阅读(6088) 评论(0) 推荐(0) 编辑
摘要: 设备驱动层 当一些网络包到来触发了中断,内核处理完这些网络包之后,我们可以先进入主动轮询 poll 网卡的方式,主动去接收到来的网络包。如果一直有,就一直处理,等处理告一段落,就返回干其他的事情。当再有下一批网络包到来的时候,再中断,再轮询 poll。这样就会大大减少中断的数量,提升网络处理的效率, 阅读全文
posted @ 2020-02-22 23:29 坚持,每天进步一点点 阅读(1197) 评论(0) 推荐(0) 编辑
摘要: 解析 socket 函数 SYSCALL_DEFINE3(socket, int, family, int, type, int, protocol) { int retval; struct socket *sock; int flags; ...... if (SOCK_NONBLOCK != 阅读全文
posted @ 2020-02-22 21:24 坚持,每天进步一点点 阅读(1330) 评论(0) 推荐(0) 编辑
摘要: schedule 函数的调用过程 asmlinkage __visible void __sched schedule(void) { struct task_struct *tsk = current; sched_submit_work(tsk); do { preempt_disable(); 阅读全文
posted @ 2020-02-21 19:03 坚持,每天进步一点点 阅读(927) 评论(0) 推荐(0) 编辑
摘要: 抢占式调度 两种情况: 执行太久, 需切换到另一进程; 高优先级进程被唤醒 切换到另一进程实现: 时钟中断处理函数会调用 scheduler_tick()查看是否是需要抢占的时间点 void scheduler_tick(void) { int cpu = smp_processor_id(); s 阅读全文
posted @ 2020-02-21 18:29 坚持,每天进步一点点 阅读(540) 评论(0) 推荐(0) 编辑
摘要: 调度策略与调度类 进程分为实时进程和普通进程,分别对应实时调度策略和普通调度策略 在 task_struct 中,有一个成员变量,我们叫调度策略 unsigned int policy; 它有以下几个定义: #define SCHED_NORMAL 0 #define SCHED_FIFO 1 #d 阅读全文
posted @ 2020-02-21 18:11 坚持,每天进步一点点 阅读(518) 评论(0) 推荐(0) 编辑
摘要: 信号概述 在 Linux 操作系统中,为了响应各种各样的事件,也是定义了非常多的信号 # kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) 阅读全文
posted @ 2020-02-20 15:32 坚持,每天进步一点点 阅读(1190) 评论(0) 推荐(0) 编辑
摘要: Linux/Unix进程创建相关基本知识 linux中的0号、1号进程 1. 进程0 Linux引导中创建的第一个进程,完成加载系统后,演变为进程调度、交换及存储管理进程(也就是说0号进程自从创建完1号进程后就不会再次去创建其他进程了,之后由1号进程负责新子进程的创建) Linux中1号进程是由0号 阅读全文
posted @ 2020-02-19 14:35 坚持,每天进步一点点 阅读(978) 评论(0) 推荐(0) 编辑
摘要: 如何理解“跳表”? 对于一个单链表来讲,即便链表中存储的数据是有序的,如果我们要想在其中查找某个数据,也只能从头到尾遍历链表。这样查找效率就会很低,时间复杂度会很高,是 O(n)。 那怎么来提高查找效率呢?如果像图中那样,对链表建立一级“索引”,查找起来是不是就会更快一些呢? 每两个结点提取一个结点 阅读全文
posted @ 2020-02-18 16:48 坚持,每天进步一点点 阅读(302) 评论(0) 推荐(0) 编辑
摘要: 本文以32位机器为准,串讲一些内存管理的知识点 1. 虚拟地址、物理地址、逻辑地址、线性地址 虚拟地址又叫线性地址。linux没有采用分段机制,所以逻辑地址和虚拟地址(线性地址)(在用户态,内核态逻辑地址专指下文说的线性偏移前的地址)是一个概念。物理地址自不必提。内核的虚拟地址和物理地址,大部分只差 阅读全文
posted @ 2020-02-18 10:03 坚持,每天进步一点点 阅读(336) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 12 下一页