上回说了Linux内核实现中断会把中断分为两部分进行处理,上回讲了上部分,这回讲下部分的设计思路下半部的实现机制 软中断tasklet:是通过软中断实现的,但和软中断有所不同工作队列讲上面几个实现机制之前先讲一个古老的方法,现在版本的内核虽然已经不再食用了,但是思想还在继续使用最
时钟周期中断函数的调用过程:在 CFS 中,scheduler_tick 会调用 具体实现 task_tick_fair,在task_tick_fair 中会从当前进程开始获取每个调度实体,对每个调度实体进行调用 entity_tick,在 entity_tick 中更新调度实体的实际运行时间和虚拟运行时间,同时检查是否需要重新调度。
显示没有控制终端的进程 root@ubuntu:~# ps -auxUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.0 0.1 159724 3464 ?
阻塞操作是指在执行设备操作时,若不能获得资源,则挂起进程直到满足可操作的条件后再进行操作。wake_up函数可以唤醒处于 TASK_INTERRUPTIBLE和 TASK_UNINTERRUPTIBLE状态的进程,而wake_ up_ interruptible函数只能唤醒处于 TASK_INTERRUPTIBLE状态的进程。