微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > MS Windows CE的实时系统

MS Windows CE的实时系统

时间:05-02 来源:互联网 点击:

)

1最高线程优先级

2高于通常的线程优先级

3通常线程优先级

4低于常规线程优先级

5最低线程优先级

6高于IDLE的线程优先级

7

(最低)IDLE线程优先级

(最低优先级)

级别0和1通常做为实时过程和设备驱动器,级别2-4做为线程和通常功能,级别5-7做为是低于其它功能级别,注意级别6是目前状态并有稳定联接。

优先权唯一的取决于线程优先级,拥有高级优先权的线程安排优先运行,同一优先级的线程,以循环优先先级方式运行,即每个线程接受定制的时间或时间片,定量时间默认值为25毫秒(WindowsCE2.0支持在MIPS平台更改定量时间)。较低优先权的线程,要直到较高级线程完成之后再运行,也即直到他们或者放弃或停止。一个重要的例外是最高优先级的线程(级别0,关键时间优先级)不与其它的线程共享时间片,这些线程连续执行直到他们完成。不象其它的微软窗操作系统,WindowsCE是固定不能改变,它不匹配基于这引进优先级的中断,他们能够暂时改动,但仅能通过WindowsCE内核以避免所谓的的“优先权倒置”。

优先权倒置指的是当它们同时竞争同一资源时,低优先级的线程,阻碍了高优先权线程对资源的利用。为了改正这种局面并解放较高优先权的线程,WindowsCE允许低级优先权继承,严格的线程优先权,并且运行较高优先级直到它释放所用资源。

例如,如果一个线程在最高优先权运行试图莸取由低级优先权占有的互斥体,低级优先权的线程变成高级优先权,并且运行直到它释放互斥体。优先权倒置适用于系统的所有线程。例如,甚至在优先级别1运行的内核线程能转成级别0,如果优先级0线程运行内存分页代码,将引起块失误。

基于优先级的多任务设计,保证运行在最低级的线程在一个预所知时间段执行。本论文在后面讨论设定响应,对于指定的平台和公式,并由其它的平台获取数字。在DAK和SDK的工具,显示了线程状态和优先级别,并描绘指定实时系统操作轮廓。

线程同步

实时系统必须保证进程和线程同步,例如,如果实时应用的一部分在另一部分获得最多当前数据前即完成,此应用的管理进程可能不稳定,同步将确保在应用线程间交换正确。

如同其它的Windows操作系统一样,WindowsCE为线程同步提供了一个丰富的“等待对象”,这包括关键部门、事件、互斥体,些等待对象,允许一个线程减缓它的运行并且等待直到指定事件发生。

WindowsCE将互斥体、关键部分、事件请求按“先入先出,优先级(FIFO)”顺序排列:不同的先入先出顺序序列定义成八个不同的优先级,在给定的优称级的线程请求,将被放在优先级列表末尾,当优先级倒置出现时,调度程序调整这些序列。

除了等待对象,WindowsCE支持标准的Win32时间API函数,这些来自内核的应用,软件中断将获得时间间隔,它被用来管理实时应用。通过调用GetTickCont函数,它能够返回几毫秒,线程能够使用系统间隔时间。关于更详细的分时信息,WindowsCE内核也支持Win32API函数QueryPerformanreCounter和QueryPerFormanteFrequency。OEM必须为这些调用提供硬件和软件支持,它提供一个较高的时间分辨力和OAL界面其它方面。

其它方面考虑

WindowsCE提供了一个重要的存储系统,例如,当目前某些运行WindowsCE的平台提供4MB的物理内存,WindowsCE支持一个重要的2GB的地址空间,每个进程联接在它自己的32MB物理空间上,当它需要产生内存分页中断(这可能影响线程执行时间),物理内存进行线程代码或数据内存分页。

内存分页输入输出,将比实时进程优先级低。在实时进程中内存分页仍可自由出现,但这要确保后台的实际内存管理赢得实时系统优先权。

实时线程应该锁存在内存中,以防止这些无关紧要的内存分页阻碍其运行,它们可能会占用实际内存管理系统。

WindowsCE允许映射,这将阴止多个进程共享同一物理内存,结果将会导致协同进程间或驱动器与映射快速的数据传送,内存映射能够戏剧性的增强实时操作。

中断处理:IRQSISRS和ISTS

实时应用被设立在指定的时间间隔内,对外部事件做出反应,实时应用使用中断做为一种确保外部事件由操作系统获知的方式。在Windows中,内核和OEM适应层(OAL)被设定成使系统其它部分的中断和调度最优化。WindowsCE平衡操作,并通过把中断过程分成两部分而使执行更加容易:它分为中断服务程序(ISR)和中断服务线程(IST)两部分。

每条硬件中断申请线(IRQ),与一个ISR相连。当中断成立和中断出现时,内核为此调用寄存的ISR,ISR为中断处理的内核模式部分尽可能短的保存。它首先将内核放在适合的IST上。

ISR执行它的最小处理并返回一个ID号到内核,内核

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top