中断 & 时间管理

  • 中断和中断处理
  1. 中断就是由硬件来打断操作系统,内核会随时响应中断。
  2. 中断处理程序就是普通的C函数,不过它们运行在中断上下文中(原子上下文)。中断不能被阻塞,这限制了它们所能做的事情。
  3. 上半部和下半部,中断处理程序是上半部,能够被允许稍后完成的工作会推迟到下半部。例子:网卡接受数据,拷贝最新的数据到内存非常重要,需要在上半部,数据的处理和操作在下半部执行。
  4. 进程上下文可以睡眠,但是中断上下文不可以睡眠,中断上下文的代码应该迅速简洁,尽量把工作从中断中抽离出来放到下半部执行。
  5. 内核提供的接口包括注册和注销中断处理程序,禁止中断,屏蔽中断等
  • 下半部和推后执行的工作
  1. 为什么要工作推后执行以及在什么时候推后执行非常关键,你希望尽量减小中断处理程序需要完成的工作量。
  2. 下半部分可以稍后执行,而且执行期间可以响应中断。
  3. 下半部的实现:软中断,tasklet,工作队列。如果推后执行的任务需要睡眠,那么就选择工作队列,不需要睡眠就选择另外两种。下半部中还相当程度的用到了同步和并发。

 

 

  • 时间概念对计算机来说有些模糊,事实上内核必须要在硬件的帮助下才能计算和管理时间。硬件为系统提供了一个系统定时器,系统定时器以某种频率自行触发,该频率可以通过编程预定,称作节拍率
  • 时钟中断对管理操作系统尤为重要。更高的时钟中断频率能使内核定时器以更高的频率和准确度运行,提高进程的抢占的准确度,但是也会使系统的负担加重
  • 定时器
posted @   stu--wy  阅读(48)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示