Fork me on GitHub
上一页 1 ··· 73 74 75 76 77 78 79 80 81 ··· 99 下一页
摘要: 1. CFS如何选择最合适的进程 每个调度器类sched_class都必须提供一个pick_next_task函数用以在就绪队列中选择一个最优的进程来等待调度, 而我们的CFS调度器类中, 选择下一个将要运行的进程由pick_next_task_fair函数来完成 之前我们在将主调度器的时候, 主调 阅读全文
posted @ 2018-11-18 10:19 yooooooo 阅读(2013) 评论(1) 推荐(1) 编辑
摘要: 1. CFS进程入队和出队 完全公平调度器CFS中有两个函数可用来增删队列的成员: 和`dequeue_task_fair`分别用来向CFS就绪队列中添加或者删除进程 2 enqueue_task_fair入队操作 2.1 enque_task_fair函数 向就绪队列中放置新进程的工作由函数 函数 阅读全文
posted @ 2018-11-12 16:31 yooooooo 阅读(1931) 评论(0) 推荐(1) 编辑
摘要: 1 虚拟运行时间(今日内容提醒) 1.1 虚拟运行时间的引入 CFS为了实现公平,必须惩罚当前正在运行的进程,以使那些正在等待的进程下次被调度。 具体实现时,CFS通过每个进程的虚拟运行时间(vruntime)来衡量哪个进程最值得被调度。 CFS中的就绪队列是一棵以vruntime为键值的红黑树,虚 阅读全文
posted @ 2018-11-12 15:37 yooooooo 阅读(2510) 评论(0) 推荐(0) 编辑
摘要: 1. 负荷权重 1.1 负荷权重结构struct load_weight 负荷权重用struct load_weight数据结构来表示, 保存着进程权重值weight。其定义在 "/include/linux/sched.h, v=4.6, L1195" , 如下所示 1.2 调度实体的负荷权重lo 阅读全文
posted @ 2018-11-10 22:27 yooooooo 阅读(2614) 评论(0) 推荐(1) 编辑
摘要: 1. 唤醒抢占 当在try_to_wake_up/wake_up_process和wake_up_new_task中唤醒进程时, 内核使用全局check_preempt_curr看看是否进程可以抢占当前进程可以抢占当前运行的进程. 请注意该过程不涉及核心调度器. 每个调度器类都因应该实现一个chec 阅读全文
posted @ 2018-11-09 09:55 yooooooo 阅读(2741) 评论(0) 推荐(0) 编辑
摘要: 1. linux优先级的表示 1.1 优先级的内核表示 linux优先级概述 在用户空间通过nice命令设置进程的静态优先级, 这在内部会调用nice系统调用, 进程的nice值在 20~+19之间. 值越低优先级越高. setpriority系统调用也可以用来设置进程的优先级. 它不仅能够修改单个 阅读全文
posted @ 2018-11-08 20:42 yooooooo 阅读(1571) 评论(0) 推荐(0) 编辑
摘要: 在linux内核系统中,各个模块、子系统之间是相互独立的。Linux内核可以通过通知链机制来获取由其它模块或子系统产生的它感兴趣的某些事件。 notifier_block结构体在include/linux/notifier.h中定义: priority用来定义优先级,高优先级的处理例程将被优先执行, 阅读全文
posted @ 2018-11-05 15:11 yooooooo 阅读(4197) 评论(0) 推荐(0) 编辑
摘要: 1 前景回顾 1.1 Linux的调度器组成 2个调度器 可以用两种方法来激活调度 一种是直接的, 比如进程打算睡眠或出于其他原因放弃CPU 另一种是通过周期性的机制, 以固定的频率运行, 不时的检测是否有必要 因此当前linux的调度程序由两个调度器组成:主调度器,周期性调度器(两者又统称为通用调 阅读全文
posted @ 2018-11-04 18:33 yooooooo 阅读(1364) 评论(0) 推荐(1) 编辑
摘要: task_struct进程描述符中包含两个跟进程地址空间相关的字段mm, active_mm, 大多数计算机上系统的全部虚拟地址空间分为两个部分: 供用户态程序访问的虚拟地址空间和供内核访问的内核空间。每当内核执行上下文切换时, 虚拟地址空间的用户层部分都会切换, 以便当前运行的进程匹配, 而内核空 阅读全文
posted @ 2018-11-04 17:30 yooooooo 阅读(4186) 评论(0) 推荐(0) 编辑
摘要: 1 非抢占式和可抢占式内核 为了简化问题,我使用嵌入式实时系统uC/OS作为例子 首先要指出的是,uC/OS只有内核态,没有用户态,这和Linux不一样 多任务系统中, 内核负责管理各个任务, 或者说为每个任务分配CPU时间, 并且负责任务之间的通讯. 内核提供的基本服务是任务切换. 调度(Sche 阅读全文
posted @ 2018-11-01 14:03 yooooooo 阅读(2400) 评论(0) 推荐(0) 编辑
上一页 1 ··· 73 74 75 76 77 78 79 80 81 ··· 99 下一页