当前位置:  技术问答>linux和unix

内核进程与用户进程间的通信

    来源: 互联网  发布时间:2015-06-26

    本文导语:  在Linux下,用户远程可以方便地与内核进程进行通信(ioctl),但主动权掌握在用户进程手中,用户进程可以向内核进程请求服务,并得到响应。 但如何让内核进程通知用户进程某些事件的发生,并传递一些参数呢?...

在Linux下,用户远程可以方便地与内核进程进行通信(ioctl),但主动权掌握在用户进程手中,用户进程可以向内核进程请求服务,并得到响应。

但如何让内核进程通知用户进程某些事件的发生,并传递一些参数呢?

一种可能的方法是让用户进程定时查询,但效率明显太低,而且实时性也不够,不知各位有没有什么好的办法,请赐教!

|
是否可以考虑通过信号来进行??

|
就像阻塞式i/o操作一样,可先使用户进程阻塞等待,当有数据到达时,内核再让用户进程返回。

|
如果是简单字符设备的做法是实现read/poll操作,另外设一个等待队列,在条件满足时设置好数据并唤醒等待队列。用户态使用select等待通知,有通知时则去读取,具体的读取内容由自己定。其他设备的实现方法类似。

|
只有使用select/poll这样的机制比较适合你的要求,但其实也是由应用程序不断地去轮询。也可以阻塞等待事件返回。

|
linux的设计是按照,服务器/客户端的模式,内核是处在服务的位置,多数情况只能被动的接受响应.在内核驱动中好像可以使用任务队列来完成把

    
 
 

您可能感兴趣的文章:

  • Linux进程的内核栈和用户栈概念,相互关系及切换过程
  • 进程内核栈和操作系统内核栈的关系
  • 请问linux进程的哪些信息保存在内核里?哪些信息又保存在进程空间里?谢谢
  • 内核进程间发送信号用哪个函数,如果没有这东西,那内核里异步通知用哪个东西
  • Linux内核进程与应用进程的通信方式有哪些?
  • linux 内核进程堆问题,大家指教
  • 关于内核进程和用户层命令不是很理解?
  • 如何利用Linux内核线程来保存用户进程
  • 【求助】多进程中 内核信号量无效?
  • 进程系统调用陷入内核的不解
  • 请教一个linux进程内核栈的问题
  • linux内核高手进!关于调用__fork()时0号进程的子进程才能与父进程共享PID的困惑
  • 内核进程线程问题,大家指教
  • 用户进程有自己独立的地址空间,内核线程没有自己的地址空间 该怎样理解: ?
  • “模块”在内核中运行与作为单独进程运行在机制上有什么区别与联系?
  • linux 可不可以编译成一个单进程的内核
  • linux内核缓冲区与进程缓冲区。
  • 请教一下,进程调度时在导入新进程的cr3之后,CPU是怎么区分当前正处于内核而不去使用新的页目录呢?
  • 中断上下文,进程上下文 ,内核抢占,用户抢占,中断
  • 求助: 进程调度内核分析
  • 内核模块编程打印进程信息
  • linux驱动程序是怎样通过内核和应用程序通信,还有是怎样和硬件通信,跪求求解,谢谢高手留言。
  • 初学内核编程,在内核态下怎么用socket通信?
  • 求内核和用户态简单易行的通信方法,用户态只需得到一个内核模块参数
  • netlink怎么与内核通信?
  • linux内核态UDP通信的问题
  • 内核空间和用户空间怎么通信?
  • 内核模块如何与用户进程进行通信??
  • 求助关于内核空间和用户空间通信的问题
  • linux 里有哪些内核与用户进程的通信方法? 请高手指点一下!谢谢!
  • 关于内核空间和用户空间之间的实时通信?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Linux内核中影响tcp三次握手的一些协议配置
  • Fedora Core 2自带的内核升级程序下载下来内核后,要不要再编译一遍内核?
  • TCP协议四次断连过程介绍及Linux内核协议栈中相关设置项
  • Linux中内核线程不访问内核态地址空间?
  • CentOS 6内核升级:下载编译启用新内核版本详细过程
  • 2.6内核下编译2.4内核
  • linux内核中的likely宏和unlikely宏介绍及用法
  • 谁能提供kgdb内核补丁内核模块的下载
  • CentOS 6.5 下载地址及如何升级内核(kernel)版本到 3.10.28
  • 编译新内核后怎么进入原来内核
  • Linux下c/c++开发之程序崩溃(Segment fault)时内核转储文件(core dump)生成设置方法
  • 请问linux中如何判断内核是否已经启动。(在内核中写程序)
  • docker使用的技术之Container内核原理介绍
  • 内核模块跟内核版本不匹配????????
  • 请教:如何安装新内核(rpm包)而不同原来得内核冲突?? 在线等待!!
  • linux为什么要升级内核?升级内核有何作用?
  • 内核升级后,如何在新的内核中加载显卡驱动?
  • 内核源码和结果make过的内核源码有什么区别
  • 操作系统 iis7站长之家
  • 如何学好内核?学了内核能应用于哪方面?
  • 请问在2.6的内核环境下编译2.4的内核有没有什么特殊的要求


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3