正在加载图片...
数控技术及应用教案及讲稿 上部分:数控技术及编程 31 中断 可中 27 DPe][DPe] 实时优先 阮先 图2-57 Windows NT/2000调度方法示 ①中断服务例程(Interrupt Service Routines,.ISR)被用来处理中断。当中断发生时, 如果CPU的中断请求级别(RQL)低于中断源的RQL,则正在执行的ISR、DPC或线 程将被中断。控制权将被移交给与此中断源相关联的ISR例程。典型的ISR例程只是确 认硬件中断,并使一个DPC事件排入队列。微软建议在ISR中完成的工作尽可能少 以免因耗时过多阻塞其他 的中 可被 高级无 的ISR中 但不 会被DPC或线程抢先(所谓抢先是指在CPU正在执行某任务时,若另一优先级更高的 任务请求执行,CPU将立即中止正在执行的任务,转而响应优先级高的任务的请求)。 ②延迟过程调用(Deferred Procedure Calls,.DPC)被ISR或其他内核模块送入一个 先讲先出(irg过In and Firs过O1tIO)的“DC队”它们通常被用来完成大部分的中 断处理任务。 DPC总是在将控制权交还回线程前被处理。DPC可以被 SR中断, 会被线程抢 ③线程是处理器调度的基本单位,调度系统总是运行优先级最高的就绪线程。 Windows NT2000内部使用32个线程优先级,即16个实时优先级(16-31)和16个可 变优先级(0~15)。属于可变优先级的线程允许操作系统依靠某些因素,如是否为前台 任务,或当前是否被挂起等,以此动态调整它们的优先级,这就增加了线程执行的不确 定性。而实时类型线程的优 及是固定 这给开发者更多的控制权 2)Windows NT/20O0的实时性能分析。Windows NT/2000系统是否满足实时操作系 统的要求,可参照实时操作系统的5项基本要求逐项考察。 ①Windows NT/20O0是抢先式多任务操作系统,因此满足第一项要求。 ②Windows NT/2000有32个线程优先级,但只有16个实时优先级可用于实时应用。 ③Windows NT/2000虽然提供了互斥体、信号量和事件等3种同步对象和相应的系 统调用,但不支持可预测的同步机制,因此不满足第三项要求。 ④大多数实时操作系统采用优先级继承的办法来解决优先级倒置问题,而Windows NT2000采用的解决方案是:己经有一段时间不能运行的线程将得到一个随机的优先级 提升,从而使它们能够运行。这种情况是不可预测的,因而解决方案不能用于实时系多 因此Windows NT/2000不符合第四项要求。 ⑤实时系统通过外部设备与外部事件相联系,外部事件被转化成中断,并被设备驱 动程序处理。在Windows NT/2000中,中断分两个阶段处理。首先,中断被一个很短的 ISR例程处理,完成保存硬件寄存器内容等工作。随后,其余的大部分工作由DPC完成。 DPC被ISR送入一个FHFO的队列,因此在DPC队列没有优先级的概念 。由于DPC执 行之前要在先进先出的DPC队列中排队,所以无法确定DPC在被执 行之前需要 待多 长时间,于是减少了系统的可预测性。因此Windows NT20O0也不符合第五项要求。 综上所述可以判定,标准Windows NT/2OO0不适于实时应用。 (4)Vindows nT2000实时扩展技术 在保持Windows NT/20O0开放性强等优 兰州交通大学机电工程学院 多 数控技术及应用教案及讲稿 上部分:数控技术及编程 兰州交通大学机电工程学院 19 图 2-57 Windows NT/2000 调度方法示意 ①中断服务例程(Interrupt Service Routines, ISR)被用来处理中断。当中断发生时, 如果 CPU 的中断请求级别(IRQL)低于中断源的 IRQL,则正在执行的 ISR、DPC 或线 程将被中断。控制权将被移交给与此中断源相关联的 ISR 例程。典型的 ISR 例程只是确 认硬件中断,并使一个 DPC 事件排入队列。微软建议在 ISR 中完成的工作尽可能少, 以免因耗时过多阻塞其他优先级较低的中断。一个 ISR 可被更高级别的 ISR 中断,但不 会被 DPC 或线程抢先(所谓抢先是指在 CPU 正在执行某任务时,若另一优先级更高的 任务请求执行,CPU 将立即中止正在执行的任务,转而响应优先级高的任务的请求)。 ②延迟过程调用(Deferred Procedure Calls, DPC)被 ISR 或其他内核模块送入一个 先进先出(First In and First Out, FIFO)的“DPC 队列”,它们通常被用来完成大部分的中 断处理任务。DPC 总是在将控制权交还回线程前被处理。DPC 可以被 ISR 中断,但不 会被线程抢先。 ③线程是处理器调度的基本单位,调度系统总是运行优先级最高的就绪线程。 Windows NT/2000 内部使用 32 个线程优先级,即 16 个实时优先级(16~31)和 16 个可 变优先级(0~15)。属于可变优先级的线程允许操作系统依靠某些因素,如是否为前台 任务,或当前是否被挂起等,以此动态调整它们的优先级,这就增加了线程执行的不确 定性。而实时类型线程的优先级是固定的,这给开发者更多的控制权。 2)Windows NT/2000 的实时性能分析。Windows NT/2000 系统是否满足实时操作系 统的要求,可参照实时操作系统的 5 项基本要求逐项考察。 ①Windows NT/2000 是抢先式多任务操作系统,因此满足第一项要求。 ②Windows NT/2000 有 32 个线程优先级,但只有 16 个实时优先级可用于实时应用。 对于复杂的实时应用而言,可用优先级的数目相对较少,因此只能算基本满足第二项要 求。 ③Windows NT/2000 虽然提供了互斥体、信号量和事件等 3 种同步对象和相应的系 统调用,但不支持可预测的同步机制,因此不满足第三项要求。 ④大多数实时操作系统采用优先级继承的办法来解决优先级倒置问题,而 Windows NT/2000 采用的解决方案是:已经有一段时间不能运行的线程将得到一个随机的优先级 提升,从而使它们能够运行。这种情况是不可预测的,因而解决方案不能用于实时系统。 因此 Windows NT/2000 不符合第四项要求。 ⑤实时系统通过外部设备与外部事件相联系,外部事件被转化成中断,并被设备驱 动程序处理。在 Windows NT/2000 中,中断分两个阶段处理。首先,中断被一个很短的 ISR 例程处理,完成保存硬件寄存器内容等工作。随后,其余的大部分工作由 DPC 完成。 DPC 被 ISR 送入一个 FIFO 的队列,因此在 DPC 队列没有优先级的概念。由于 DPC 执 行之前要在先进先出的 DPC 队列中排队,所以无法确定 DPC 在被执行之前需要等待多 长时间,于是减少了系统的可预测性。因此 Windows NT/2000 也不符合第五项要求。 综上所述可以判定,标准 Windows NT/2000 不适于实时应用。 (4)Windows NT/2000 实时扩展技术 在保持 Windows NT/2000 开放性强等优
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有