发布时间:2012-07-25 10:33:49
旗标为所有调用者进行互斥, 不管每个线程可能想做什么. 然而, 很多任务分为 2 种清楚的类型: 只需要读取被保护的数据结构的类型, 和必须做改变的类型. 允许多个并发读者常常是可能的, 只要没有人试图做任何改变. 这样做能够显著提高性能; 只读的任务可以并行进行它们的工作而不必等待其他读者退出临界区.Linux 内核为.........【阅读全文】
发布时间:2012-07-25 10:26:01
旗标在计算机科学中是一个被很好理解的概念. 在它的核心, 一个旗标是一个单个整型值, 结合有一对函数, 典型地称为 P 和 V. 一个想进入临界区的进程将在相关旗标上调用 P; 如果旗标的值大于零, 这个值递减 1 并且进程继续. 相反, 如果旗标的值是 0 ( 或更小 ), 进程必须等待直到别人释放旗标. 解锁一个旗标通过调用 V 完成.........【阅读全文】
发布时间:2012-07-24 21:04:14
参考文章:·Proc文件系统内核proc文件系统与seq接口(4)---seq_file接口编程浅析 点击(此处)折叠或打开/********************* proc文件系统 *************************/static void *scull_seq_start(struct.........【阅读全文】
发布时间:2012-07-24 16:42:42
读和写方法都进行类似的任务, 可以同时介绍它们:ssize_t read(struct file *filp, char __user *buff, size_t count, loff_t *offp);ssize_t write(struct file *filp, const char __user *buff, size_t count, loff_t *offp); 对于 2 个方法, filp 是文件指针, count 是请求的传输数据大小. buff 参数指向持.........【阅读全文】
发布时间:2012-07-24 15:06:58
open 方法open 方法提供给驱动来做任何的初始化来准备后续的操作. 在大部分驱动中, open 应当进行下面的工作:检查设备特定的错误(例如设备没准备好, 或者类似的硬件错误如果它第一次打开, 初始化设备如果需要, 更新 f_op 指针.分配并填充要放进 filp->private_data .........【阅读全文】