论文部分内容阅读
当今,处理器系统结构正经历着巨大的变革。其发展已经从单处理器高主频转变到将更多的处理器封装到一个芯片中了,允许在一个处理器中同时运行多个物理线程。各大处理器生产厂商已经相继推出了双核、四核处理器。另外,随着多核时代的来临,处理器同时也向异构方向发展。不同能力、不同功能的异构处理器也相继产生。
SMP和NUMA系统主宰着当今多核处理器领域。在这样的系统中,每个核都被同等对待。支持这类体系结构的对称多线程操作系统(例如Linux)含有大量核心的共享数据结构。为保正正确性,该系统中存在大量的锁用于保护数据的一致性。有锁就不可避免地存在锁竞争。而随着处理器核数量的增加,锁竞争很可能会成为瓶颈。同时,锁竞争也引入大量的cache缺失以及TLB失效。这都严重地影响程序的运行。另外,对称的操作系统并不适合异构系统。
本文基于Linux2.6.25内核,通过少量修改实现了一个非对称、面向多核的非对称操作系统:GenerOS(a General Operating System for multi-core)。GenerOS具有许多优点:1)保持API不变,兼容所有遗产应用。包括Oracle和Apache等大型程序。2)实现了一种新型的调度策略:Slim Schedule。这种调度策略能够消除系统服务核上Linux传统调度的开销。3)将中断路由到单独的核上处理,避免了中断对程序的负面影响。4)串行的请求处理模式以及系统服务提供者数量的可控机制减少了锁竞争。5)系统服务在单独的系统核上运行,排除了对应用程序cache行的影响。
GenerOS运行在16核的AMD处理器上,并对SYSBENCH以及HTTPERF等测试程序和标准Linux进行了对比测试。数据显示GenerOS较Linux具有较好的可扩展性以及较好的性能。