介绍了如何表示进程?进程的生命周期、进程的创建等等?
Linux支持多种调度器(deadline/realtime/cfs/idle),其中CFS调度器最常见。介绍了优先级、权重、虚拟运行时间、CFS调度器类;CFS进程创建以及如何调度;以及基于调度组的调度;最后介绍了PELT算法。简单介绍了实时调度目前进展,以及一个对实时要求高要求的VR实例。
进程是和CPU架构强相关的,不同的CPU架构决定了进程管理和调度。
常见的CPU架构有AMP(Asymmetric Multiprocessing)、SMP(Symmetric Multiprocessing)、BMP(Bound Multiprocessing)和HMP(Heterogeneous Multiprocessing)。
AMP是非对称多处理, 不同CPU可能运行独立的操作系统;SMP是一个操作系统,管理所有CPU核;BMP是一个操作系统管理所有CPU核,但是应用锁定于某个制定核心。
HMP目前主要是ARM big.LITTLE架构在使用。AMP和SMP区别是运行的操作系统可能不止一个;SMP和HMP的区别是HMP内部的CPU核并不完全对等。
介绍了如何在SMP架构下进行负载均衡;。
关于ARM的big.LITTLE架构的调度器经历了IKS(In Kernel Switcher)-->HMP/GTS(Global Task Scheduling)-->EAS(Energy Aware Scheduling)
HMP是ARM特有的架构,虽然已经被淘汰,也进行了介绍。
代表了未来的发展趋势,。
延伸阅读:《》介绍了IKS和GTS,以及两者之间的比较。Linaro的《》详细介绍了EAS的来龙去脉。
NUMA(Non Uniform Memory Access Architecture)是一种截然不同的架构,NUMA将不同SoC纳入一个系统,并且每个SoC都有自己的内存和IO。这在日常PC和嵌入式设备基本遇不到。
介绍了,。
最后对内核的进程调度相关重大进展进行了展望。
目录如下: