![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
shell
文章平均质量分 79
suncess1985
这个作者很懒,什么都没留下…
展开
-
ksoftirqd内核线程
每个处理器都有一组辅助处理器软中断(和tasklet)的内核线程。当内核中出现大量软中断的时候,这些内核进程就会辅助处理它们。 引入ksoftirq内核线程的原因: 对于软中断,内核会选择在几个特殊时机进行处理。而在中断处理程序返回时处理是最常见的。软中断被触发的频率有时可能很高,更不利的是,处理函数有时还会字形重复触发,那么就会导致用户空间进程无法获得足够的处理时间,转载 2012-03-12 09:08:23 · 12166 阅读 · 0 评论 -
Linux守护进程
Linux服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户。提供这些服务的程序是由运行在后台的守护进程(daemons)来执行的。守护进程是生存期长的一种进程。它们独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。他们常常在系统引导装入时启动,在系统关闭时终止。linux系统有很多守护进程,大多数服务器都是用守护进程实现的转载 2012-03-12 08:42:15 · 338 阅读 · 0 评论 -
linux软中断的实现
中断服务程序往往都是在CPU关中断的条件下执行的,以避免中断嵌套而使控制复杂化。但是CPU关中断的时间不能太长,否则容易丢失中断信号。为此, Linux将中断服务程序一分为二,各称作“Top Half”和“Bottom Half”。前者通常对时间要求较为严格,必须在中断请求发生后立即或至少在一定的时间限制内完成。因此为了保证这种处理能原子地完成,Top Half通常是在CPU关中断的条件下执行的。转载 2012-03-12 09:10:14 · 289 阅读 · 0 评论 -
linux内核线程创建销毁机制
这个话题乍一听貌似比较大,其实线程创建本身就是一件很平常的事情。下面将要介绍的是,新版linux中创建内核线程的机制做了一些变化(其实本质没变,最终还是调用do_fork()来实现),和控制线程的时候需要注意的地方。 本文引用的几个源码文件:@ kernel/kernel/kthread.c@ kernel/include/linux/kthread.h@ kernel/i转载 2012-03-12 08:43:27 · 369 阅读 · 0 评论 -
关于kthreadd
因为所涉及的话题在代码的实现上是体系架构相关的,所以本贴基于ARM架构。这里所谓的内核线程,实际上是由kernel_thread函数创建的一个进程,有自己独立的task_struct结构并可被调度器调度,这种进程的特殊之处在于它只在内核态运行。在Linux source code中, init/main.c中的rest_init()中就开始调用kernel_thread来构造内核线程了,比转载 2012-03-12 08:45:36 · 922 阅读 · 0 评论