tag 标签: 调度策略

相关博文
  • 热度 2
    2024-1-27 01:43
    740 次阅读|
    0 个评论
    【面试集合】谈谈Linux调度策略 1、常用调度策略 linux内核的三种调度方法: SCHED_OTHER :分时调度策略, SCHED_FIFO:实时调度策略,先到先服务 SCHED_RR:实时调度策略,时间片轮转 实时进程将得到优先调用,实时进程 根据实时优先级决定调度权值 ; 分时进程则 通过nice和counter值决定权值 ,nice越小,counter越大,被调度的概率越大,也就是曾经使用了cpu最少的进程将会得到优先调度。 2、SHCED_RR与SHCED_FIFO的异同 相同点 : SHCED_RR和SHCED_FIFO都只用于 实时任务 。 创建时优先级大于0(1-99)。 按照 可抢占优先级调度算法 进行。 就绪态的实时任务立即抢占非实时任务。 不同点 : 当采用SHCED_RR策略的 进程的时间片用完,系统将重新分配时间片,并置于就绪队列尾 。将进程放在队列尾保证了所有具有相同优先级的RR任务的调度公平。 SCHED_FIFO一旦占用cpu则 一直运行 。一直运行直到有更高优先级任务到达或自己放弃。 如果有 相同优先级 的实时进程(根据优先级计算的调度权值是一样的)已经准备好,FIFO时必须等待该进程 主动放弃 后才可以运行这个优先级相同的任务。而RR可以让每个任务都执行一段时间。 更多面试集合可见: 高级工程师聚集地 ,助力大家更上一层楼! 3、常见问题及场景 3.1 所有任务都采用linux分时调度策略 创建任务指定采用 分时调度策略 ,并指定优先级nice值(-20~19)。 将根据每个任务的 nice 值确定在cpu上的执行时间(counter)。 如果没有等待资源,则将该任务加入到 就绪队列 中。 调度程序遍历就绪队列中的任务,通过对每个任务动态优先级的计算(counter+20-nice)结果,选择 计算结果最大的一个去运行,当这 个时间片用完后(counter减至0)或者主动放弃cpu时,该任务将被放在 就绪队列末尾(时间片用完)或等待队列(因等待资源而放弃cpu)中。 此时调度程序重复上面计算过程,转到第4步。 当调度程序发现所有就绪任务计算所得的权值都为不大于0时,重复第2步。 3.2 所有任务都采用FIFO 创建进程时指定采用FIFO,并设置实时优先级rt_priority(1-99)。 如果没有等待资源,则将该任务加入到就绪队列中。 调度程序遍历就绪队列,根据实时优先级计算调度权值(1000+rt_priority),选择权值最高的任务使用cpu,该FIFO任务将一直占有cpu直到有优先级更高的任务就绪(即使优先级相同也不行)或者主动放弃(等待资源)。 调度程序发现有优先级更高的任务到达(高优先级任务可能被中断或定时器任务唤醒,再或被当前运行的任务唤醒,等等),则调度程序立即在当前任务 堆栈中保存当前cpu寄存器的所有数据,重新从高优先级任务的堆栈中加载寄存器数据到cpu,此时高优先级的任务开始运行。重复第3步。 如果当前任务因等待资源而主动放弃cpu使用权,则该任务将从就绪队列中删除,加入等待队列,此时重复第3步。 3.3 所有任务都采用RR调度策略(轮转法调度) 创建任务时指定调度参数为 RR ,并设置任务的实时优先级和nice值( nice值 将会转换为该任务的 时间片的长度 )。 如果没有等待资源,则将该任务加入到就绪队列中。 调度程序遍历就绪队列,根据实时优先级计算调度权值( 1000+rt_priority ),选择权值最高的任务使用cpu。 如果就绪队列中的RR任务时间片为 0, 则会根据 nice值 设置该任务的时间片,同时将该任务放入就绪队列的末尾。重复步骤3。 当前任务由于等待资源而主动退出cpu,则其加入等待队列中。重复步骤3。 3.4 系统中既有分时调度,又有时间片轮转调度和先进先出调度 RR调度和FIFO调度的进程属于实时进程,以分时调度的进程是非实时进程。 当实时进程准备就绪后,如果当前cpu正在运行非实时进程,则实时进程立即抢占非实时进程。 RR进程和FIFO进程都采用实时优先级做为调度的权值标准,RR是FIFO的一个延伸。FIFO时,如果两个进程的优先级一样,则这两个优 级一样的进程具体执行哪一个是由其在队列中的未知决定的,这样导致一些不公正性(优先级是一样的,为什么要让你一直运行?),如果将两个优先级一样的任务的调度策略都设为RR,则保证了这两个任务可以循环执行,保证了公平。
相关资源
  • 所需E币: 3
    时间: 2019-12-25 22:53
    大小: 59.83KB
    上传者: 978461154_qq
    实时多任务系统的调试有很多困难,TI公司提供的DSP/BIOS-II是运行于高性能DSP上的一款嵌入式实时操作系统.基于该操作系统,本文提出了一种用于HDTV机顶盒的调度策略,经过实验,较好地解决了机顶盒系统中实时多任务调度的关键问题.……
  • 所需E币: 3
    时间: 2019-6-2 15:50
    大小: 1.6MB
    上传者: royalark_912907664
    直流长期非满功率连续运行时,受端电网换相失败及电压风险较直流满功率时降低,而发电机开机增多导致的短路电流超标风险大大增加,给退出调相机提供了可能。针对受端电网直流低功率运行下调相机灵活调度的需求,采用定量评估方法,综合评估退出直流逆变侧调相机后系统换相失败失稳风险、电压失稳风险,以及退出调相机对短路电流及维护损耗费用的贡献,得出受端电网不同运行工况下退出调相机的综合调度排序及策略。实际电网算例表明,直流低功率运行方式下退出部分调相机,相比直流满功率换相失败范围仍减少了20%,故障后电压仍能迅速恢复,且大大限制了系统短路电流水平,提高运行方式安排的灵活性。
  • 所需E币: 3
    时间: 2019-5-27 21:38
    大小: 1.66MB
    上传者: royalark_912907664
    风电具有诸如间歇性、波动性、反调峰特性、预测误差大的特点,其特点弱化了电网电源的可控性。由于热电联产机组“以热定电”的特性,严重限制了电出力的调节,成为供暖期弃风问题高发的导火索之一。采用能量流模型对电热联合系统进行分析,并对调度模型进行优化,可以在供暖期提高对风电的消纳能力。研究结果表明,可通过电加热站的供热来增加低谷时期的电负荷,同时降低机组的电出力,为风电并网扩大空间;此外,热负荷的大小还受到用户室内温度的影响,从而又导致风电消纳总量降低;因此将换热环节的约束考虑在内的调度模型所优化出的结果是更加准确、可信度更高的。