我正在用IPC进行实验,特别是使用Mutex,Semaphore和Spin Lock.我学到的是Mutex用于异步锁定(具有睡眠(根据我在NET上读到的理论))机制,信号量是同步锁定(具有信号和睡眠)机制,并且自旋锁是同步但非睡眠机制.
任何人都可以帮我澄清这些东西吗?另一个疑问是关于Mutex,当我用线程和互斥体编写程序时,一个线程正在运行另一个线程不处于Sleep状态但它不断尝试获取Lock.所以Mutex正在睡觉或不睡觉???
在搜索调试Linux内核的技术时,其中一种方法是使用dev _*()系列函数.这些函数在/include/linux/device.h文件中定义.
功能列表如下:
pr_emerge()
pr_alert()
pr_crit()
syslog
dmesg
/include/linux/device.h
pr_emerge()
我已经尝试了PR _*() [ pr_alert(),pr_crit(),syslog...]家庭功能,这是类似的printk()以某种方式.使用简单的内核模块完成实验,我正在调用这些函数.此外,我还经历了显示在dmesg和/include/linux/device.h(内核环缓冲区取决于console_loglevel-内核变量)中显示的消息的优先级.
但我无法理解dev _*()系列的使用.我的意思是如何在程序中使用它来调试内核功能.
谁可以帮我这个事??