关于内核线程调度的问题请教!

284 views
Skip to first unread message

Songwen Liao

unread,
Jul 15, 2011, 10:37:53 PM7/15/11
to Linux-...@zh-kernel.org
Hi,all,
有个问题请教:
今天在看驱动的时候突然想到一个问题,workqueue是将中断下半部的处理移到内核线程中去,“
使中断下半部要执行的任务移到内核线程中去”。因此workqueue在处理中断下半部的时候能够睡眠。


内核线程没有用户进程的环境,内核线程全部由内核分配好的统一的页表和页,那它被调度了之后,是怎么重新运行的?它的运行环境保存在哪里?用户进程是独立的进程空间,所以,页表和页那一套是和每个进程关联,并独立于其他进程的。内核线程是怎么做的??


还有一个问题是,驱动写好后,是怎么和/dev下面的文件关联的,是怎么生成这个/dev下文件的?通过主次设备号,能将驱动程序和某种类型设备的某个具体设备关联起来,可是/dev下面的设备文件是在哪里生成的?mknod??


我是个驱动新手,以前做应用层做了三年,现在想往底层发展发展。多多指教。谢谢。

--
Name: Kyle
-----------------------------------------------------------------------------------------------
Mobile: 15800910495
Msn: liaos...@live.cn
_______________________________________________
Linux 内核开发中文邮件列表
Linux-...@zh-kernel.org
http://zh-kernel.org/mailman/listinfo/linux-kernel
Linux 内核开发中文社区: http://zh-kernel.org

Li Haifeng

unread,
Jul 17, 2011, 12:13:34 AM7/17/11
to Songwen Liao, Linux-...@zh-kernel.org
2011/7/16 Songwen Liao <songwe...@gmail.com>

> Hi,all,
> 有个问题请教:
> 今天在看驱动的时候突然想到一个问题,workqueue是将中断下半部的处理移到内核线程中去,“
> 使中断下半部要执行的任务移到内核线程中去”。因此workqueue在处理中断下半部的时候能够睡眠。
>
>
>
> 内核线程没有用户进程的环境,内核线程全部由内核分配好的统一的页表和页,那它被调度了之后,是怎么重新运行的?它的运行环境保存在哪里?用户进程是独立的进程空间,所以,页表和页那一套是和每个进程关联,并独立于其他进程的。内核线程是怎么做的??
>

运行环境保存在内核栈的上面有4K-16K(根据kernel配制)


>
>
>
> 还有一个问题是,驱动写好后,是怎么和/dev下面的文件关联的,是怎么生成这个/dev下文件的?通过主次设备号,能将驱动程序和某种类型设备的某个具体设备关联起来,可是/dev下面的设备文件是在哪里生成的?mknod??
>

驱动写好后,一般在register模块的时候,通过driver里面的.name <http://xn--hxyx59cu3d.name>去匹配.

/dev/下面的设备号有时候是手动生成的(指定主次设备号),有时候是动态生成的。


>
>
> 我是个驱动新手,以前做应用层做了三年,现在想往底层发展发展。多多指教。谢谢。
>
>
>
> --
> Name: Kyle
>
> -----------------------------------------------------------------------------------------------
> Mobile: 15800910495
> Msn: liaos...@live.cn
> _______________________________________________
> Linux 内核开发中文邮件列表
> Linux-...@zh-kernel.org
> http://zh-kernel.org/mailman/listinfo/linux-kernel
> Linux 内核开发中文社区: http://zh-kernel.org


--
Li Haifeng
Laboratory of Service Computing Technology and System
Home page:http://tek-life.org

Reply all
Reply to author
Forward
0 new messages