- 博客(4)
- 收藏
- 关注
翻译 linux中的信号处理机制
简介:信号本质上是一种向一个进程通知发生异步事件的机制,是在软件层次上对中断的一种模拟。这种通知机制可以用于通知硬件消息,也可以用来进行进程间通信,还可以用来通知一些程序错误如除0、非法内存访问。异步是说进程没有对信号进行实时监控,不必等待信号到来,事实上进程也根本不知道信号什么时候会来。信号的运行,当信号发送到程序时并不是立即执行而是等待某个时机再执行,在这个时机还没到来的时
2015-12-17 10:37:57 1064
翻译 Linux中的中断处理
中断处理例程运行方式的不同,它们所能执行的动作将会受到不同的限制。内核维护了一个中断信号线的注册表,该注册表类似于I/O端口的注册表。模块在使用中断前要先请求一个中断通道(或者中断请求IRQ),然后在使用后释放该通道。在很多场合下,模块也希望可以和其他的驱动程序共享中断信号线。接口实现在头文件中声明:int request_irq(unsigned int ir
2015-12-09 13:12:40 532
翻译 Linux中的并发与竞态
场景:正在运行的多个用户空间进程可能以一种令人惊讶的组合方式访问我们的代码。我们的驱动程序代码可能在任何时候丢失对处理器的独占,而拥有处理器的进程可能正在调用我们的驱动程序代码。内核还提供了许多可延迟代码执行的机制,比如workqueue(工作队列)、tasklet(小任务)以及timer(定时器)等。这些机制使得代码可在任何时刻执行,而不管当前进程在做什么。避免策
2015-12-08 13:59:27 438
翻译 Linux中的completion使用
内核编程中常见的一种模式是,在当前线程之外初始化某个活动,然后等待该活动的结束。这个活动可能是:创建一个新的内核线程或者新的用户空间进程、对一个已有进程的某个请求,或者某种类型的硬件动作。可以使用信号量进行同步,但如果存在针对该信号量的严重竞争,性能将受到影响。如果使用信号量在任务完成时进行通信,则调用down的线程几乎总是要等待,这样性能也同样会受到影响。comple
2015-12-08 12:18:48 2539
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人