Linux kernel 進程問題
小弟想請教個問題,目前寫了kernel module並且藉由insmod將此模組放入kernel。
module內容包含中斷處理程序(isr)以及tasklet,就是當有外部中斷到來時
首先會執行isr接著在執行tasklet。
現在是希望當沒中斷進來的時間有閒置行程(idle task)可以起來執行。
請問是要去創建kernel thread嗎??? 還是???
回复 1# pigergirl
创建一个不屏蔽中断的kthread就可以了,只要中断一来就进入你的isr处理流程,中断返回后就之前创建的kthread中运行
BTW:看你的繁体字好累的说
本帖最后由 pigergirl 于 2014-05-16 06:29 编辑
谢谢您的回答,想在请问说,我在此kernel module写入函式让用户态的进程可经由ioctl调用这些函式
1. 如果现在用户态进程调用函式完成后,是会返回用户态进程还是去执行内核态的kthread而再也不返回用户态进程吗???
2. 如果现在用户态进程调用函式遇到阻塞,是去执行内核态的kthread而不返回用户态进程吗???? 你的用户进程调用ioctl调用进入到了内核态
那么当前进程还是 你的用户进程,这个过程不会发生进程切换
无非就是你的进程原来是用户态,现在变成内核态了,还是同一个进程
如果你的函数遇到阻塞,那么你的进程就被切换出去,内核会调度一个别的进程去运行
页:
[1]