正在加载图片...
数控技术及应用数案及讲癌 上部分:数控技术及编程 点的基础上提高它的实时处理能力,最常用的办法就是使Windows NT/2OO0和RTOS共 一个处理器中,也就是为Windows NT/2OO0提供实时扩展。目前己有许多厂商提供 这类商用软件, 如VenturCom 公司的RTX5.1、Rad 司的Intimel.20和Imaginatio System公司的Hyperkemel14.3。下面仅以RTX5.1为例,简要介绍Windows NT20O0的 实时扩展技术。RTX5.1是Windows NT/2000的子系统,它是Windows NT/20O0的实时 扩展,为完成实时任务的线程,它提供了一个核心态执行环境。从前面的论述可知, Windows NT2O00不能完成实时任务,其主要原因是它的线程优先级太少:调度决策相 当含糊,而且具有某种不确定性:它的中断活动不遵循线程优先级。另外,wd NT2000的同步对象,如事件、信号量和互斥体等缺 乏必要的实时语义(实际上,它们 既不支持就绪线程按优先级顺序等待对象,也不阻止优先级倒置).RTX5.1针对Windows NT2000存在的上述问题,进行了有效的实时扩展。 I)RTX5.I结构。RTX5.1由实时硬件抽象层(Hardware Abstraction Layer,.HAL)扩 展、实时子系统(Real-Time Subsystem,RTSS)以及函数库组成,如图2-58所示。 Win32 RTSS程 RTX API 函数库 Wim32子系统 实计子系统RTss Vindows内 Windows HAL 实时HAL扩展 2-58RTX5.1软件结构示意图 实时HAL扩展。HAL是 )系统的 一部分。它的源代码可以得到, 并能被修改和扩展。RTX已经修改了HAL,以达到下述3个目的。 I.在NT和RTSS线程之间加入中断隔离。即RTX线程运行时Windows的中断被 屏蔽,但Windows不能屏蔽RTX管理的中断。 Ⅱ.实现高速时钟和定时器。实时HAL扩展提供1s分辨率的时钟和100心的定时 器。在不用RTSS时,实时HAL和Windows NT/2 000HAL在定时上没有区别 Ⅲ实现Windows停机处理。保护RTSS线程免受Windows NT/20O0崩溃的影响。 b.实时子系统RTSS。RTSS在概念上和其他的Windows NT/2000子系统(如Wi32、 POSX等)相似,也支持它自己的执行环境和API。但RTSS和其他的Windows NT/20O0 子系统有一个很重要的不同,即RTSS执行自己的实时线程调度方法,不使用Windows NT2000调度程序。它的线程管理器采用抢先式调度,共有128个优先级 个RTSS 线程在任何Windows NT2000的线程之前运行,直到它被挂起或被更高优先级的RTSS 线程抢先。RTSS线程是完全抢先式的。 c.函数库。函数库提供实时API(RTX API)。通过RTX API可以访问RTSS子系统。 RTX API既可以在RISS环境中被调用,也可以在标准Wi32环境中被调用。在RTSS 环境中使用RTX API可以保证实时性能,而在W32环境中使用RTX API,则无法保 证时性能 2)RX5.1性能。RTX5.1具有128个线程优先级,且执行自己的完全抢先式线程 调度程序;任何RTX中断的优先级都高于Windows NT/2OO0中断,消除了因Windows NT2000中断机制而产生的延迟。另外为了解决优先级倒置的问题,RTX采用了优先级 提升的经典解决方法。当一个较高优先级的线程等待一个较低优先级线程正在使用的资 源,则这个较低优先级线程的有效优先级被提升到那个较高优先级线程的水平。 兰州交通大学机电工程学院数控技术及应用教案及讲稿 上部分:数控技术及编程 兰州交通大学机电工程学院 20 点的基础上提高它的实时处理能力,最常用的办法就是使 Windows NT/2000 和 RTOS 共 存于一个处理器中,也就是为 Windows NT/2000 提供实时扩展。目前已有许多厂商提供 这类商用软件,如 VenturCom 公司的 RTX5.1、Radisys 公司的 Intime1.20 和 Imagination System 公司的 Hyperkernel14.3。下面仅以 RTX5.1 为例,简要介绍 Windows NT/2000 的 实时扩展技术。RTX5.1 是 Windows NT/2000 的子系统,它是 Windows NT/2000 的实时 扩展,为完成实时任务的线程,它提供了一个核心态执行环境。从前面的论述可知, Windows NT/2000 不能完成实时任务,其主要原因是它的线程优先级太少;调度决策相 当含糊,而且具有某种不确定性;它的中断活动不遵循线程优先级。另外,Windows NT/2000 的同步对象,如事件、信号量和互斥体等缺乏必要的实时语义(实际上,它们 既不支持就绪线程按优先级顺序等待对象,也不阻止优先级倒置)。RTX5.1 针对 Windows NT/2000 存在的上述问题,进行了有效的实时扩展。 1)RTX5.1 结构。RTX5.1 由实时硬件抽象层(Hardware Abstraction Layer, HAL)扩 展、实时子系统(Real-Time Subsystem, RTSS)以及函数库组成,如图 2-58 所示。 图 2-58 RTX5.1 软件结构示意图 a.实时 HAL 扩展。HAL 是 Windows NT/2000 系统的一部分。它的源代码可以得到, 并能被修改和扩展。RTX 已经修改了 HAL,以达到下述 3 个目的。 Ⅰ.在 NT 和 RTSS 线程之间加入中断隔离。即 RTX 线程运行时 Windows 的中断被 屏蔽,但 Windows 不能屏蔽 RTX 管理的中断。 Ⅱ.实现高速时钟和定时器。实时 HAL 扩展提供 1 us 分辨率的时钟和 100 us 的定时 器。在不用 RTSS 时,实时 HAL 和 Windows NT/2000HAL 在定时上没有区别。 Ⅲ.实现 Windows 停机处理。保护 RTSS 线程免受 Windows NT/2000 崩溃的影响。 b.实时子系统 RTSS。RTSS 在概念上和其他的 Windows NT/2000 子系统(如 Win32、 POSIX 等)相似,也支持它自己的执行环境和 API。但 RTSS 和其他的 Windows NT/2000 子系统有一个很重要的不同,即 RTSS 执行自己的实时线程调度方法,不使用 Windows NT/2000 调度程序。它的线程管理器采用抢先式调度,共有 128 个优先级。一个 RTSS 线程在任何 Windows NT/2000 的线程之前运行,直到它被挂起或被更高优先级的 RTSS 线程抢先。RTSS 线程是完全抢先式的。 c.函数库。函数库提供实时 API(RTX API)。通过 RTX API 可以访问 RTSS 子系统。 RTX API 既可以在 RTSS 环境中被调用,也可以在标准 Win32 环境中被调用。在 RTSS 环境中使用 RTX API 可以保证实时性能,而在 Win32 环境中使用 RTX API,则无法保 证实时性能。 2)RTX5.1 性能。RTX5.1 具有 128 个线程优先级,且执行自己的完全抢先式线程 调度程序;任何 RTX 中断的优先级都高于 Windows NT/2000 中断,消除了因 Windows NT/2000 中断机制而产生的延迟。另外为了解决优先级倒置的问题,RTX 采用了优先级 提升的经典解决方法。当一个较高优先级的线程等待一个较低优先级线程正在使用的资 源,则这个较低优先级线程的有效优先级被提升到那个较高优先级线程的水平
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有