免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2929 | 回复: 6
打印 上一主题 下一主题

内核层向用户层发送信号,该用什么函数啊? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-07-04 15:02 |只看该作者 |倒序浏览
谢谢

论坛徽章:
0
2 [报告]
发表于 2006-07-04 15:04 |只看该作者
kill_proc() ?

论坛徽章:
0
3 [报告]
发表于 2006-07-04 15:59 |只看该作者
linux下内核层和用户层异步通讯一直是很困难的。在2.6内核中加入了一个内核事件层,对某些事件提供内核层与用户层之间的通讯。
函数接口:
int kobject_uevent(struct kobject *kobj, enum kobject_action action,
                       struct attribute *attr);

[ 本帖最后由 richardhesidu 于 2006-7-4 16:08 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2006-07-05 09:53 |只看该作者
我现在用的2.4.26的

现在要做一个事情就是
我需要一个1ms的精确定时

我现在的做法是:写了一个module
通过 硬件的实时时钟 分频得到,
1ms后 会发生一次中断
然后发送一个信号给用户层 用户收到这个信号之后
再 进行相应的处理

没有把处理程序放在module里面
是因为处理程序太复杂了

大家有什么好的建议吗?
albcamus 建议的kill_proc() 我还没有去调试
现在在调试其他的部分

谢谢

论坛徽章:
0
5 [报告]
发表于 2006-07-05 18:55 |只看该作者

可不可以采用等待-唤醒机制呢?

当没有信号的时候线程睡眠,内核产生信号后唤醒等待线程。参见 poll、poll_wait 的实现,供参考吧。

这样肯定是能够进行通信,就是不知道能不能实时,呵呵。

论坛徽章:
0
6 [报告]
发表于 2006-07-05 22:13 |只看该作者
2.4内核中poll()好像没有select()效率高

论坛徽章:
0
7 [报告]
发表于 2006-07-06 15:11 |只看该作者

kill_proc

kill_proc(pid_t pid,int sig,int priv)
这里pid是接受信号进程的号,sig是信号的号,那末priv是什莫呢?
是不是为真信号由内核发送,假由普通进程发送,
若要由内核给一个进程发信号的话,这个值直接赋为1就行了对吧??
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP