77范文网 - 专业文章范例文档资料分享平台

Linux系统实时响应特性分析与实验验证——基于Ti达芬奇DSP系列TM(5)

来源:网络收集 时间:2018-12-20 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

(李庆诚,等,2005): (1) Rhealstone法

Rhealstone方法对嵌入式实时操作系统(ERTOS,Embedded Real Time Operation System)中六个关键时间量进行测量,并将它们的加权和称为Rhealstone数。这六个时间量分别是任务切换时间(task switch time,也称上下文切换时间)、抢占时间(preemption time)、中断延迟时间(interrupt latency time)、信号量混洗时间(semaphore shuffling time)、死锁解除时间(deadlock breaking time)和数据包吞吐率(datagram throughput time)。 (2) 进程分派延迟时间法

进程分派延迟时间PDLT(Process Dispatch Latency Time)是另一个常用的测量ERTOS 性能的方法。PDLT定义为从中断的产生到由中断激活的实时任务开始执行之间的时间间隔。这段间隔由几个部分组成,如图9所示。

中断延迟硬件延迟中断延迟当前指令中断响应周期PDLT图9 进程分派延迟时间 ISR延迟内核延迟调度延迟实时任务中断产生

不同操作系统中,PDLT 差异的主要部分是内核延迟部分。目前绝大多数ERTOS为了减少内核延迟,采用可抢占式的内核,有效地提高了系统对外部事件的响应速度。 (3) 三维表示法

若将实时系统定义为能够从外部进程获取输入,处理所获得的数据,并能在足够快的时间内将正确的响应返回给外部进程的系统,则可用CPU运算能力(MIIPS1)、中断处理能力(MIIPS2)和I/O吞吐率(MIIPS3)三个特性描述其性能。上述三个特性的最大值可分别单独测得,但这三个特性之间并不是相互独立的。为了直观地表现 ERTOS的实时性能,可以用一个三维的图形来表达三个特性之间的依赖关系,如下图10所示:

16

MIPS1非实时系统实时系统MIPS2MIPS3

图10 系统性能的三维表示法

如果随着一个特性的增加,另外两个特性下降的速度比较缓慢,可以认为所表示的系统是ERTOS;反之,如果随着一个特性的增加,另外两个特性下降的速度超过了一定的范围,就可以认为该系统为非ERTOS,如图中的阴影部分所示。

常用测试工具有Timepegs, Intlat, Schedat, Amlatt和Lmbench等(朱响斌,等,2004): ? Timepegs:用于测试内核中任意两处代码间的执行时间,内核测试补丁由Andrew

Morton,主要实现方法是利用Pentium处理器上的rdtsc指令。

? Intlat:用于测量内核关闭中断时间的一个测试程序,需要Timepegs支持。

? Schedat:用来测量一个进程从进入内核态到其离开的时间,同样需要Timepegs支持。 ? Amlatt:用来测量任务响应时间的工具。

? Lmbench:是一个程序测试套件,在实时系统性能测量方面,主要可用来测试系统的

上下文切换时间,并且能够提供系统调用的相关信息。 4.3 实验平台设计 4.3.1 硬件平台设计

硬件平台由开发主机和目标板组成,下图11描述了整个硬件平台的组成结构。

17

DDR2 SDRAMUART开发主机JTAGDM6446示波器Nand Flash

图11 硬件平台组成示意图

其中示波器作为硬件辅助测试设备。由于测试结果紧密依赖测试环境,现将一些重要的硬件参数详列如下: (1) 开发主机

处理器:AMD Athlon 64 X2 5200+ 内存:2G,威刚DD2 800 MHz 硬盘:希捷320G (2) 目标板

CPU:TMS320DM6441,ARM(ARM926EJ-S 297MHz)+DSP(C64x+ 597MHz) DDR2:三星K4T1G164QE-HCLE6,128M,162MHz Nand Flash:ST NAND512-A,64M JTAG:SEED-XDS560PLUS

串口:RS232电平转换模块,PL2303USB转串口 示波器:Tektronix TDS 1012,100MHz 4.3.2 软件平台设计

软件平台同样也有开发主机和目标板组成,详列如下: (1) 开发主机

操作系统:Windows XP专业版 32位 SP3 虚拟机:VMware-workstation 7.1.2

18

Linux:Ubuntu 8.04,2.6.24

交叉编译工具:arm-linux-gcc 4.3.2和TI提供的arm_v5t_le- (2) 目标板

UBL:DM644x_FlashAndBootUtils_1_50 U-Boot:u-boot-1.3.4

Linux:MontaVista Linux 2.6.18 4.4 测试方案设计 4.4.1 系统运行负载设计

为了使测试数据更客观和更接近实际,设计一定的背景任务来模拟系统实际运行环境,显得非常有必要。同时为了对比有无负载下的系统性能,应该分别测试在有无负载两种情况下的任务切换时间和中断响应时间。无负载是指开机负载,只有测试程序在运行的情况;带负载指除测试程序外,还有其他背景程序在运行,下同。

给合前面提到的系统性能三维表示法,设计一个负载脚本程序,完成以下功能: 1) 创建一个普通进程1反复进行浮点除法运算操作;

2) 创建一个普通进程2反复对Nand Flash中的一个文件进行读写操作; 3) 创建一个普通进程3反复进行动态分配内存、读写和释放操作; 4) 主程序在创建完上述3个进程后,死循环等待。 程序流程如下图12所示,具体实现请看附录B。

19

开始初始化fork()创建进程1fork()创建进程2fork()创建进程3等待浮点运算Nand Flash读写动态内存分配 图12 负载程序流程图

4.4.2 任务切换时间测试方案设计

测试任务切换时间关键要解决两个问题:制造任务切换事件和如何计时。 (1) 制造任务切换事件

本方案配置两个实时进程,分别是一个父进程和子进程。考察不同实时优先级对切换时间的影响,先各设置成最低实时优先级进行测试,再设置成最高实时优先级进行测试。默认的实时优先级范围是从0到99。调度策略采用实时调度策略SCHED_FIFO,先入先出,不可抢占。一旦一个SCHED_FIFO级进程处于可执行状态,就会一直执行,直到它自己受阻塞或显式地释放处理器为止,不基于时间片,可以一直执行下去。 在进程中显式调用schedule()函数,可以发生一次强制调度,如有进程处于就绪状态则会引起任务切换。当然如前面提到,当进程本身受阻塞时,系统会自动进行调度,也会引起任务切换。本文采用阻塞调度的方式。在测试程序中,创建两个实时进程并在它们之间利用管道传送一个令牌,如此往返传送一定的次数。其中一个进程在读取令牌时就会引起阻塞。另一个进程发送令牌后等待其返回时也处于阻塞状态。发送令牌带来的开销与上下文切换带来的开销相比,可以忽略不计(经在开发主机中测试,一次管道传递约用时3ns左右)。假设传递令牌10000次,测量其总耗时,除以总调度切换次数20000

20

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Linux系统实时响应特性分析与实验验证——基于Ti达芬奇DSP系列TM(5)在线全文阅读。

Linux系统实时响应特性分析与实验验证——基于Ti达芬奇DSP系列TM(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/378763.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: