Linux实时系统进程管理全解析
1. 调度策略概述
在Linux系统中,存在多种进程调度策略,不同的策略适用于不同的场景,下面为你详细介绍。
- RR类进程调度 :调度器会为每个RR(Round-Robin,轮转)类进程分配一个时间片。当RR类进程耗尽其时间片时,调度器会将其移至该优先级进程列表的末尾。在同一优先级下,RR类进程会以轮转的方式进行调度。若某一优先级下只有一个进程,RR类调度就等同于FIFO(First-In-First-Out,先进先出)类调度。此时,当时间片到期,该进程会继续执行。可以认为RR类进程与FIFO类进程类似,只是RR类进程在耗尽时间片时会停止执行,并移至该优先级可运行进程列表的末尾。
- FIFO与RR调度选择 :决定使用SCHED_FIFO还是SCHED_RR,完全取决于同一优先级内的行为。RR类的时间片仅在同一优先级的进程间起作用。FIFO类进程会持续运行,而RR类进程会在同一优先级内轮转调度。只要存在高优先级进程,低优先级进程就不会运行。
- 正常调度策略(SCHED_OTHER) :这是标准的调度策略,属于默认的非实时类。所有正常类进程的静态优先级都为0。因此,任何可运行的FIFO或RR类进程都会抢占正在运行的正常类进程。调度器会使用之前提到的nice值来对正常类进程进行优先级排序,但nice值对静态优先级(始终为0)没有影响。
- 批处理调度策略(SCHED_BATCH) :这是批处理或空闲调度策略,其行为与实时策略相反。该类进程只有在系统中没有其他可运行进程时才会运行,即使其他进程已耗尽
超级会员免费看
订阅专栏 解锁全文
7万+

被折叠的 条评论
为什么被折叠?



