所谓实时操作系统(Real-time Opearting System),是指当外接世界或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,调度一切可利用的资源完成实时任务,并控制所有实时任务协调一致运行的操作系统。相比于分时操作系统有着响应及时和可靠性高的优点。
本文将在QEMU环境下,通过给内核打实时补丁的方式,使Linux成为一个实时操作系统,并使用测试程序判断内核的实时性。
对QEMU不熟悉的朋友可以移步我的上一篇博客:http://blog.csdn.net/baidu_34045013/article/details/78882607
实验环境
ubuntu 16.04.2
QEMU-2.11.0
Linux kernel-4.14.7
Real-time patch-4.14.8
安装Cyclictest
为了比较打补丁前后的性能差异,我们选用Real-Time Linux Wiki提供的基准测试用例Cyclictest
https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/cyclictest
Cyclictest是一个高精度的测试程序,是rt-test下的一个测试工具,也是rt-test下使用最广泛的测试工具,样板主要用来测试使用内核的延迟,从而判断内核的实时性。
从git clone rt-test源码
git clone git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git
cd rt-tests
git checkout stable/v1.0
交叉编译rt-test,修改Makefile中的编译器
CC = arm-linux-gnueabi-gcc
AR = arm-linux