多核对分区操作系统影响研究
扫描二维码
随时随地手机看文章
摘 要: 分区操作系统是综合化航空电子领域中的核心技术。随着单核性能极限的到来,处理器结构向着多核发展。将两者结合起来,在多核分区操作系统的基础上研究分析多核处理器结构为分区操作系统带来的影响。经分析实验数据得出多核处理器结构在多核处理器中共享Cache结构和内核中临界资源并发访问两方面对分区操作系统产生影响。
关键词: 多核;分区;操作系统
综合化航空电子IMA(Integrated Modular Avionics)系统是第四代航空电子的发展方向。综合化航空电子致力于最大化利用计算机硬件资源,减少航空电子设备对飞行器的负载,提高飞行器运载能力。
分区机制是综合化航空电子的核心技术。分区机制是指将系统资源(内存、I/O等)进行配置,建立多个分区,分区中包含系统所分配的资源,分区与分区之间相互隔离。分区包括时间分区和空间分区。时间分区是指系统为分区之间提供时间维度的隔离,分区都有属于自己的处理器独立使用时间,并且时间不受其他分区影响;空间分区是指系统为分区之间提供空间维度的隔离,空间包括内存地址空间及I/O地址空间。通过空间分区隔离技术分区无法访问本分区外的空间资源,而外分区同样无法访问本分区内空间资源。不同应用运行于不同的分区内,应用之间由于分区间的隔离而无法感知到其他分区应用的存在而认为独享整个硬件资源。所以通过分区机制可以实现将运行于不同硬件上的应用运行于同一硬件平台,并且相互之间互不影响,从而实现综合化航空电子系统。
单核处理器已经达到性能瓶颈,无法靠增加频率、带宽带来性能的提升。处理器结构正向多核发展。处理器这种结构上的变化在多方面影响操作系统的设计与实现,比如多核处理器系统中任务并发访问临界资源以及多核处理器结构中Cache一致性等。
多核处理器在硬件层面的变化会影响到操作系统及相关应用,本文通过实验分析了多核结构带来的影响。
1 多核分区操作系统
1.1 LESOS操作系统
LESOS是北航嵌入式实验室一款多核分区操作系统。该操作系统在硬件上支持现在常见的多核处理器SMP(Symmetrical Multi-Processing)结构,在软件上支持线程、进程、虚拟内存管理等功能。系统中相应的参数如表1所示。
本文后续工作都基于此操作系统完成。
1.2 分区模型
分区操作系统中,分区是资源的载体,任务是操作的载体。系统为分区分配其所需的资源,如内存、I/O、处理器执行时间等;分区则通过具体的任务完成相应的功能。一个分区中包含有若干不同的任务,每个任务有不同的任务优先级;分区内部的所有任务共享此分区内部资源。系统中每个任务属于且只能属于一个分区,任务不能脱离分区单独存在。
1.3 分区调度
双层调度模型选择一个要执行的任务,首先需要在分区一级进行调度,选择相应的分区作为候选分区,然后在候选分区的所有任务中选择相应的任务作为候选任务。由于在调度过程中需要在两个级别进行两次选择,所以称为双层调度。
首先在分区内部的调度中,调度器的调度单位是任务。此层调度使用的是基于优先级抢占式的调度算法,目的是使分区内部重要的任务能够及时得到处理。调度器在所需调度的分区内部所有的任务中选择优先级最高的任务作为此次调度的结果。
其次在分区之间的调度中,调度器的调度单位是分区。此层调度使用静态时间片轮转调度算法,目的是使各个分区之间都能够得到相应的运行时间,不会因为某些分区的异常而导致其他分区无法运行。调度器依据当前系统时间以及静态调度表选择适当分区作为此次调度的结果。
最后为了支持多核处理器,调度器为每个处理器核心维护一张静态调度表,这样每个处理器可以在自身的静态调度表中进行调度,从而避免相互影响。每个处理器需要获得一个要执行的任务时,首先通过处理器本身的静态表进行分区调度选择合适的分区,然后在选中的分区中进行分区内部的任务调度选择出合适的任务,此任务就是处理器下一个要执行的任务。
2 测试及数据
多核处理器与单核处理器结构上的不同会影响操作系统及上层应用程序的行为、性能。本文在前述工作的基础上通过以下实验研究分析多核处理器结构为分区操作系统所带来的影响。
2.1 测试环境
本文的实现工作是基于Freescale的HPCNet-8641D平台。平台中两颗PowerPC E600处理器运行于SMP模式。平台基本参数如下:处理器频率1 GHz,系统总线频率400 MHz,内存512 MB。两颗处理器中分别包含指令、数据为32 KB的一级Cache以及共享1 MB的二级Cache。此外,平台还有Dual-UART、千兆以太网卡等外设接口。
2.2 多核分区对Cache的影响
由于多核处理器结构从物理层面上引入了共享Cache,所以本文设计以下实验分析多核处理器结构在Cache方面对上层应用的影响。
首先,在单核分区操作系统上分别执行不同大小数据量的读、写、拷贝任务,测试访问不同大小数据量的相关操作执行时间。因为在多核处理器上,Cache分为两级,一级为32 KB处理器本地Cache,以及共享1 MB的二级Cache,所以在设计实验时将数据量分为两类,一类是一级Cache内不同数据量的访问测试,另一类是大于一级Cache大小数据量访问的测试。其次,在多核分区操作系统上处于不同处理器上的分区同时运行上述任务,收集相关测试数据。最后,将两者同性质的数据进行比较,结果如图1~图6所示。