linux学习之workqueue(Linux学习之workqueue).docVIP

  • 124
  • 0
  • 约1.08万字
  • 约 14页
  • 2017-08-20 发布于河南
  • 举报

linux学习之workqueue(Linux学习之workqueue).doc

linux学习之workqueue(Linux学习之workqueue)

linux学习之workqueue(Linux学习之workqueue) 文件路径:内核/内核/ C队列。 include/linux/h队列。 入口函数:init_workqueues() -创建每个CPU的workqueue -创建每个workqueue的调度员create_worker() -创建系统开机后一系列默认的workqueue。 如默认使用的schedule_work()即使用system_wq这个workqueue。 调用 create_worker() -为调度员工人分配内存 -根据on_unbound_cpu标志位确定采用依赖CPU的kthread_create_on_node() 还是不依赖CPU的kthread_create()来创建worker_thread, ~ 依赖CPU,则再绑定一下。 调用 worker_thread() -通过转到woke_up做死循环,确保该螺纹一直运行。无任务时转至空载(空闲)状态。 -通过need_more_worker()函数来确定当前是否有高优先级任务需要新开螺纹来执行。 -通过manage_workers()进行检查,调整创建工人时必须的两个条件, need_to_create_worker为真和may_start_working为假。 -执行核心process_one_work()。 PS,根据标志位优先执行高优先

文档评论(0)

1亿VIP精品文档

相关文档