上一页 1 ··· 149 150 151 152 153 154 155 156 157 ··· 280 下一页
摘要: 无论何时你需要调度一个动作以后发生, 而不阻塞当前进程直到到时, 内核定时器是给你 的工具. 这些定时器用来调度一个函数在将来一个特定的时间执行, 基于时钟嘀哒, 并且 可用作各类任务; 例如, 当硬件无法发出中断时, 查询一个设备通过在定期的间隔内检查 它的状态. 其他的内核定时器的典型应用是关闭 阅读全文
posted @ 2019-07-06 11:08 樊伟胜 阅读(868) 评论(0) 推荐(0) 编辑
摘要: 当一个设备驱动需要处理它的硬件的反应时间, 涉及到的延时常常是最多几个毫秒. 在这 个情况下, 依靠时钟嘀哒显然不对路. The kernel functions ndelay, udelay, and mdelay serve well for short delays, delaying exe 阅读全文
posted @ 2019-07-06 11:07 樊伟胜 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 到目前为止所展示的次优化的延时循环通过查看 jiffy 计数器而不告诉任何人来工作. 但是最好的实现一个延时的方法, 如你可能猜想的, 常常是请求内核为你做. 有 2 种方 法来建立一个基于 jiffy 的超时, 依赖于是否你的驱动在等待其他的事件. 如果你的驱动使用一个等待队列来等待某些其他事件, 阅读全文
posted @ 2019-07-06 11:06 樊伟胜 阅读(459) 评论(0) 推荐(0) 编辑
摘要: 如我们已见到的, 忙等待强加了一个重负载给系统总体; 我们乐意找出一个更好的技术. 想到的第一个改变是明确地释放 CPU 当我们对其不感兴趣时. 这是通过调用调度函数而 实现地, 在 <linux/sched.h> 中声明: while (time_before(jiffies, j1)) { sc 阅读全文
posted @ 2019-07-06 11:05 樊伟胜 阅读(408) 评论(0) 推荐(0) 编辑
摘要: 设备驱动常常需要延后一段时间执行一个特定片段的代码, 常常允许硬件完成某个任务. 在这一节我们涉及许多不同的技术来获得延后. 每种情况的环境决定了使用哪种技术最好; 我们全都仔细检查它们, 并且指出每一个的长处和缺点. 一件要考虑的重要的事情是你需要的延时如何与时钟嘀哒比较, 考虑到 HZ 的跨各种 阅读全文
posted @ 2019-07-06 11:04 樊伟胜 阅读(582) 评论(0) 推荐(0) 编辑
摘要: 内核代码能一直获取一个当前时间的表示, 通过查看 jifies 的值. 常常地, 这个值只代 表从最后一次启动以来的时间, 这个事实对驱动来说无关, 因为它的生命周期受限于系统 的 uptime. 如所示, 驱动可以使用 jiffies 的当前值来计算事件之间的时间间隔(例如, 在输入驱动中从单击中 阅读全文
posted @ 2019-07-06 11:03 樊伟胜 阅读(410) 评论(0) 推荐(0) 编辑
摘要: 如果你需要测量非常短时间间隔, 或者你需要非常高精度, 你可以借助平台依赖的资源, 一个要精度不要移植性的选择. 在现代处理器中, 对于经验性能数字的迫切需求被大部分 CPU 设计中内在的指令定时不 确定性所阻碍, 这是由于缓存内存, 指令调度, 以及分支预测引起. 作为回应, CPU 制造 商引入 阅读全文
posted @ 2019-07-06 11:02 樊伟胜 阅读(358) 评论(0) 推荐(0) 编辑
摘要: 这个计数器和来读取它的实用函数位于 <linux/jiffies.h>, 尽管你会常常只是包含 <linux/sched.h>, 它会自动地将 jiffies.h 拉进来. 不用说, jiffies 和 jiffies_64 必须当作只读的. 无论何时你的代码需要记住当前的 jiffies 值, 可 阅读全文
posted @ 2019-07-06 11:01 樊伟胜 阅读(1076) 评论(0) 推荐(0) 编辑
摘要: 管理存取控制的另一个技术是创建设备的不同的私有拷贝, 根据打开它的进程. 明显地, 这只当设备没有绑定到一个硬件实体时有可能; scull 是一个这样的"软件"设备 的例子. /dev/tty 的内部使用类似的技术来给它的进程一个不同的 /dev 入口点呈现的 视图. 当设备的拷贝被软件驱动创建, 阅读全文
posted @ 2019-07-06 10:52 樊伟胜 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 当设备不可存取, 返回一个错误常常是最合理的方法, 但是有些情况用户可能更愿意等待 设备. 例如, 如果一个数据通讯通道既用于规律地预期地传送报告(使用 crontab), 也用于根据 用户的需要偶尔地使用, 对于被安排的操作最好是稍微延迟, 而不是只是因为通道当前忙 而失败. 当设备不可存取, 返 阅读全文
posted @ 2019-07-06 10:47 樊伟胜 阅读(809) 评论(0) 推荐(0) 编辑
上一页 1 ··· 149 150 151 152 153 154 155 156 157 ··· 280 下一页