摘要:
驱动中的内存分配#include void *kmalloc(size_t size, int flags);这个函数是内核中使用的malloc特点就是1)速度快2)不清零,分配的区仍然持有它原来的内容3)物理内存中连续4)用于分配的小内存,不能用于分配大内存5)使用kfree释放分配的内存#inc... 阅读全文
摘要:
继续向后面学习,接下去要看的就是阻塞和非阻塞编程。我在书上看到这么一段程序,但我觉得好像哪里有点不对。最后看过内核源代码后才豁然开朗。主要是down_interruptible()这个函数,网上普遍的解释如下 int down_interruptible(struct semaphore *sem)... 阅读全文
摘要:
##驱动程序中的并发控制##当一段驱动程序的代码同时被多个进程使用到时,这时就要考虑并发了。控制并发的最好手段就是使用信号量,即在任何一个给定的时间,只有一个可执行的线程可以执行这段代码。在Linux中这被称之为临界操作。是使用信号量和P、V操作来保护临界区的。P操作:信号量减一V操作:信号量加一其... 阅读全文