Linux内核工作队列与中断管理详解
1. 工作队列基础
在Linux内核中, schedule_work() 是一个包装函数,它会在系统工作队列 system_wq 上调用 queue_work() ,而 schedule_work_on() 则是 queue_work_on() 的包装函数。同时, system_wq 是通过 alloc_workqueue("events", 0, 0); 创建的。若想了解其他系统级工作队列的创建方式,可以查看内核源码中 kernel/workqueue.c 文件里的 workqueue_init_early() 函数。
另外,内存回收是Linux内核在内存分配路径上的一种机制,它会先将当前内存中的内容转移到其他地方,然后再进行内存分配。
2. Linux内核中断管理概述
Linux内核除了处理进程和用户请求外,还负责管理和与硬件进行通信,这主要通过中断来实现。中断是外部硬件设备向处理器发送的请求立即处理的信号。在中断对CPU可见之前,需要由中断控制器启用,中断控制器的主要任务是将中断路由到各个CPU。
2.1 中断的五种状态
| 状态 | 描述 |
|---|---|
超级会员免费看
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



