• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






hxdoit

 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | 联系 | 订阅 订阅 | 管理

2014年3月23日

linux内核--软中断与tasklet
摘要: 硬件中断通常都需要在最短的时间内执行完毕,如果将所有硬件中断相关的处理都放在硬件中断处理程序中,那么就达不到这个目的。通过linux提供的软中断和tasklet,可以将硬件中断处理程序中可以延迟处理的部分放到软中断和tasklet中处理。1,软中断linux内核定义了软中断的主要数据结构softirg_vec数组,该数组包含类型为softirg_action的32个元素,即0-31,这也代表软中断的优先级。softirg_action数组包含两个字段:一个函数指针,一个参数指针。通过这两个字段,可以执行任何函数。在linux2.6中,只有前六个元素被使用。 如下图。在硬件中断中,可以将可延迟的 阅读全文
posted @ 2014-03-23 21:19 hxdoit 阅读(893) 评论(0) 推荐(0)
 
linux内核--几个上下文(context)
摘要: 为了控制进程的执行,内核必须有能力挂起正在CPU上运行的进程,并恢复以前挂起的某个进程的执行,这种行为叫进程切换(process switch),任务切换(task switch)或上下文切换(context switch)。个人习惯将之称为context switch,因为context这个单词能够比较准确的形容进程运行的环境。一,进程在内核态的context每一个进程都有它自己的内核态上下文。Linux把两个不同的数据结构紧凑的存放在一个单独为进程分配的存储区域内:一个是与进程描述符相关的小数据结构thread_info,叫作线程描述符,另一个是内核态的进程堆栈。这块存储区域通常有8K。这 阅读全文
posted @ 2014-03-23 20:17 hxdoit 阅读(676) 评论(0) 推荐(0)
 
linux内核数据结构--进程相关
摘要: linux里面,有一个结构体task_struct,也叫“进程描述符”的数据结构,它包含了与进程相关的所有信息,它非常复杂,每一个字段都可能与一个功能相关,所以大部分细节不在我的研究范围之内,在这篇文章里面只讲述这些数据结构的组织方式,相当于一个知识点的大的梗概或骨架,如果骨架搞明白了,那么内部的细节就可以抽丝剥茧,搞明白也非难事。一,链表很简单,上面所说的进程描述符以双向链接的形式组织起来,说起来很简单,但还是有一些特色在里面的1,在Linux内核链表中,不是在链表结构中包含数据,而是在数据结构中包含链表节点。在内核中定义了list_head的一个数据结构,struct list_head 阅读全文
posted @ 2014-03-23 19:31 hxdoit 阅读(796) 评论(0) 推荐(0)