220 likes | 398 Views
操作系统关键指标 对应用性能的影响. 陈香兰 中国科学技术大学计算机系 2014年9月20日. 提纲. 操作系统关键指标 嵌入式实时操作系统性能测试方法. 操作系统关键指标有哪些?. 最多支持进程 / 线程的个数 是否支持虚拟内存 System call time RTOS 相关指标: 系统响应时间 上下文切换时间 中断延迟时间 中断响应时间 任务切换时间 调度器延迟时间 周期性抖动( jitter ). 系统响应时间. 从系统发出处理要求到系统给出应答信号的时间。 这是 RTOS 一个比较综合的性能指标。. 中断延迟时间.
E N D
操作系统关键指标对应用性能的影响 陈香兰 中国科学技术大学计算机系 2014年9月20日
提纲 • 操作系统关键指标 • 嵌入式实时操作系统性能测试方法
操作系统关键指标有哪些? • 最多支持进程/线程的个数 • 是否支持虚拟内存 • System call time • RTOS相关指标: • 系统响应时间 • 上下文切换时间 • 中断延迟时间 • 中断响应时间 • 任务切换时间 • 调度器延迟时间 • 周期性抖动(jitter)
系统响应时间 • 从系统发出处理要求到系统给出应答信号的时间。 • 这是RTOS一个比较综合的性能指标。
中断延迟时间 Linux2.4内核的中断处理 • 从接收到中断信号到操作系统做出响应,并完成进入中断服务例程(如Linux的do_IRQ)所需要的时间。 • 中断延迟时间Tirq_latency=T1+T2 • T1=最长关中断时间 • T2=硬件开始处理中断到开始执行中断服务例程第一条指令之间的时间 • T2由硬件决定,因此,Tirq_latency主要取决于T1 • 硬实时操作系统的关中断时间通常是几微秒,而Linux最坏可达几毫秒。
中断响应时间 Linux2.4内核的中断处理 • 从计算机接收到中断信号到操作系统作出响应,并完成切换转入用户中断处理程序(即驱动程序注册的ISR)的时间。 • 中断响应时间Tresponse=T1+T2+T3 • T3=从中断服务例程到开始执行驱动注册的ISR的第一条指令时间。 • 在硬RTOS中,Tresponse通常比Tirq_latency多几微秒。 最长关中断时间T1 do_IRQ T3 ISR 实际关中断时间 (不可测) 保存上下文T2 INTR CPU接收到INTR
上下文切换时间Tcontext_switch • 保存当前任务的上下文和恢复被调度任务的上下文的时间。 • Tcontext_switch取决于CPU 有多少寄存器要保存和恢复 • CPU的内部寄存器越多,额外负荷就越重。 • 还与指令周期长度有关 • 实时内核的性能不应该以每秒钟能做多少次任务切换来评价。 • RTOS中通常是1微秒左右
任务抢占时间 • 当一个事件引起更高优先级的任务TaskHigh就绪到这个任务开始运行之间的时间。 • Ttask_preemption=T4+Tsched+Tcontext_switch • T4=从TaskHigh就绪到开始执行调度函数的时间(并且这次调度正好选择了TaskHigh任务) • Tsched=从调度程序开始执行到开始从当前任务Taskany切换到TaskHigh的时间 • Tcontext_switch=上下文切换时间 • 与调度策略有关:是否允许优先级抢占? • 与调度算法相关:常数/可变 时间 • 与硬件有关
调度抖动 • 一个周期任务的周期间隔之间的变化。 • 通常,实时应用以周期性任务的形式,即以一特定的周期被调度,并且在硬件定时器产生一个中断唤醒调度器时开始执行。 • 虽然定时器中断可能发生的跟时钟一样有规律,但是许多不确定因素会导致调度器的运行时间变得不确定,导致接下来的任务的开始时间就会相应地变化,这个影响就叫调度抖动。 • 抖动跟具体的应用紧密相关。
嵌入式实时操作系统性能测试方法 • Rhealstone方法 • 进程分派延迟时间法 • 三维表示法
Rhealstone方法: • 测量ERTOS中六个关键操作的时间,并将它们的加权和称为Rhealstone数 1、任务切换时间(task switching time) :即系统在两个独立的、处于就绪态并具有相同优先级的任务之间切换所需要的时间。 • 包括三个部分: • 保存当前任务上下文的时间 • 调度程序选中新任务的时间 • 恢复新任务上下文的时间。 • 此时间取决于1)保存任务上下文所用的数据结构2)操作系统采用的调度算法的效率。
2、抢占时间(preemption time)即系统将控制从低优先级的任务转移到高优先级任务所花费的时间。 • 系统必须首先识别引起高优先级任务就绪的事件,比较两个任务的优先级,确定发生抢占 • 抢占时间中包括了任务切换时间。 3、中断延迟时间(interrupt latency time)即从中断第一条指令所持续的时间间隔 • 由四部分组成: • 硬件延迟部分(通常可忽略不计) • 关中断时间 • 处理器完成当前指令的时间 • 中断响应周期的时间
4、信号量混洗时间(semaphore shuffling time)即从一个任务释放信号量到另一个等待该信号量的任务被激活的时间延迟。 • 基于信号量的互斥访问保证了任一时刻只有一个任务能访问公共资源。 • 此时间反映了与互斥有关的时间开销 5、死锁解除时间(deadlock breaking time)即系统解开处于死锁状态的多个任务所需花费的时间。 • 死锁解除时间反映了RTOS解决死锁的算法的效率。 6、数据包吞吐率(datagram throughput time)指一个任务通过调用ERTOS的原语,把数据传送到另一个任务去时,每秒可以传送的字节数。
进程分派延迟时间法PDLT • Process Dispatch Latency Time • 这是另一个常用的测量ERTOS性能的方法 • 实时系统中,实时任务总是等待外部事件引发的中断来激活它。当一个中断产生后,系统必须迅速停止当前运行的低优先级任务,将控制权交给被激活的实时任务。 • PDLT:从中断的产生到由中断激活的实时任务开始执行之间的时间间隔。
三维表示法 • 有人将实时系统定义为:能够从外部环境获取输入,处理所获得的数据,并能在足够快的时间内将正确的响应返回给外部环境的系统。 • 可将ERTOS的工作分为三个阶段: • 响应传感器或者其他输入设备的请求,并获取数据; • 对获得的数据进行处理(主要由应用程序进行处理); • 输出处理结果。
CPU计算能力, Millions of Instructions Per Second 中断处理能力, Millions of Interrupts Per Second I/O吞吐率 Millions of I/O Per Second • 据此,ERTOS的性能可用三个特性来描述 • 这三个特性的最大值可分别单独测得,但这三个特性之间并不是相互独立的,如图
注意: • 各种不同的方法或者文献中,关于性能指标的定义可能有细微的差异
Reference • Arnd C. Heursch, etc. Preemption concepts, Rhealstone Benchmark and scheduler analysis of Linux 2.4, Paper for Real-Time & Embedded Computing Conference, Milan, Nov., 2001 • 嵌入式实时操作系统性能测试方法研究。
作业: • 操作系统关键指标有哪些? • 名词解释: • Rhealstone方法 • 进程分派延迟时间法PDLT • 三维表示法
Linux2.4内核的中断处理 • 中断(广义)会改变处理器执行指令的顺序,通常与CPU芯片内部或外部硬件电路产生的电信号相对应 • 中断——异步的:由硬件随机产生,在程序执行的任何时候可能出现 • 异常——同步的:在(特殊的或出错的)指令执行时由CPU控制单元产生 设备 设备 控制器 中断 控制器 CPU INTR IRQ
当一个中断信号到达时,CPU必须停止它当前正在做的事,并且切换到一个新的活动来响应这个中断当一个中断信号到达时,CPU必须停止它当前正在做的事,并且切换到一个新的活动来响应这个中断 • 保存程序计数器PC的当前值 • 把与中断信号处理相关的一个入口地址放入进PC • 中断的处理原则——快! • 中断会随时到来,打断正在运行的代码 • 中断处理程序可能会禁止同级中断 • 中断处理程序对硬件操作,一般硬件对时间也是非常敏感的
保存中断向量 保存上下文 Do_IRQ 中断返回前处理 恢复上下文 返回