所有分类
-
塑胶原材料
- 通用塑料
- PE ABS PP PVC PS LCP PCM LDPE MBS LLDPE GPPS HDPE BMC AAS ASA PHB HIPS UHMWPE DMC EBS K树脂 PPR MS SIS 其他通用塑料
- 工程塑料
- PA66 PA6 PA46 PC POM PPO PET PMMA EVA SAN PA11 PA610 PU POE PPA PSU PA1010 PBT PPS PP-R PA12 PES PEI PF EEA PEN AS PARA PFA AES EPDM MDPE EPS CPVC FEP EVOH PA612 CA PC/ABS SEBS 其他工程塑料
- 塑胶工业品
- 塑胶消费品
- 五金原材料
- 五金工业品
- 五金工具
- 电子工具 手动工具 电动工具 工具包、工具箱 喷涂工具 起重工具 液压工具 园林工具 电力电讯工具 日用五金工具 测量工具 切削工具 气动工具 研磨工具 金刚石工具 磨具、磨料 刀具、夹具 钳工工具 电工工具 管工工具 土木工具 其他未分类 五金工具 组合工具 防爆工具 匠作工具 农、园、林工具 手工工具 美容器具 其它五金工具 热工工具
- 通用配件
- 密封件 零部件 弹簧 滑车 模具 齿轮 铸件 配件五金 葫芦 锻件 钢球 阀门 紧固件、(非)标准件 索具 其他传动件 轴承 链条、链轮 润滑器 焊接设备与材料 电焊机 千斤顶 其他未分类 通用配件 温控器 气动元件 喷嘴 传动件 脚轮、万向轮 滚筒 卸扣 紧固件 液压元件 船用五金配件 管夹 直通 过滤材料 管材及管接头 井盖 吊钩、抓钩 钢珠、滚珠 密封、润滑 专业配件 喷头 液压辅件 起重件 卡箍、抱箍 其它通用配件
- 锁具安防
- 作业保护 防静电产品 军需用品 防身用具 防弹器材 智能卡 锁具 印章设备 信息安全 防雷避雷 防爆防水防尘 消防救援 二手安防产品 公共广播 防伪产品 灾害防护 智能交通 小区安防 建筑安防配件 楼宇对讲 安全标识 安全检查 交通指挥 监控器材 静电测试仪 警报设备 防盗装置 其它安全防护用品
- 仪器仪表
- 车用仪表 包装测试设备 室内环保检测仪器 仪器仪表配件材料 电子元器件 传感器 色谱仪 实验室仪器 试验箱及气候环境设备 试验设备 通用分析仪器 生物仪器 医用仪器仪表 衡器 气象仪器 气体检测分析仪 电子测量仪器 分析仪器 实验室常用设备 计量标准器具 无损检测仪器 粮食水分仪 专用仪器仪表 工业自动化仪表 校验仪器 变送器 环境、环保检测仪器 其它仪器仪表
- 电子电工
- 变频器 电子材料 开关电源 绝缘材料 绝缘材料 输电设备及材料 电子电工产品设计加工 天线 雷达及无线导航 电子电工产品制造设备 电热设备 电子电工项目合作 高压电器 低压电器 配电装置、开关柜、照明箱 显示设备 电子、电工产品代理 半导体材料 电子元器件、组件 工业自动化装置 磁性材料 电工陶瓷材料 电子化学品 插头、插座 充电器 电动机、电机 光电子、激光仪器 UPS与电源 照明与灯具 其他未分类 数码产品 电池 电子电工 开关 电工仪器仪表 电动机 电阻材料 插座 电器成套设备 配电输电设备 电源 电线、电缆 调压器 信息安全产品 电子产品包装 稳压器 变压器 连接器 插头 节电器 电气产品 其它电工设备
- 机械设备
- 裁断机 发泡机 电晕机 热熔机 注塑机 成型机 挤出机 制袋机 吹膜机 吹塑机 压塑机 压延机 造粒机 滚塑设备 包装设备 混炼机 切胶机 硫化机 密炼机 风机、排风设备 压缩、分离设备 印刷设备 整熨洗涤设备 玩具加工设备 机床 化工设备 电脑产品制造设备 家电制造设备 塑料机械 点胶机 混合机 定型机 贴合机 吹瓶机 制杯机 押出机 落砂设备 丝网设备 玻璃加工机械 钣金加工设备 切割设备 选矿设备 焊割设备与材料 造型及制芯设备 石油设备 包装检测设备 包装制造机械 激光设备 农业机械 管型线材加工设备 包装成型机械 清理设备 金融专用设备 工艺礼品加工设备 建材机械 换热、制冷设备 电子产品制造设备 砂处理设备 电镀设备与材料 食品加工机械 工控系统及装备 纸加工机械 纺织设备 医疗器械与设备 直接包装机械 工业锅炉 制氮机 仓储设备
- 五金消费品
- 办公文教光学器材
- 办公家具 计算器 实验室用品 乐器 光学仪器 绘图文具 办公挂摆饰 学习文具 办公用纸 学校家具 打印机耗材 办公文教五金 眼镜及配件 文具配件 其它教学模型、器材 文化办公设备 裁剪用品 光学计量标准器具 文教用橡胶制品 装订用品 教学模型、器材 复读机、学习机 PDA 笔类 其它文具 摄影器材 光学加工机械 书写板、擦 实验室专用设备 其它办公耗材
- 商务服务
- 二手设备转让
- 二手建材设备 二手汽摩 二手交通产品及用具 二手通讯产品 二手机械设备 二手环保产品加工设备 二手工艺礼品加工设备 二手运动休闲用品 二手电脑产品加工设备 二手农副产品加工设备 二手包装设备 二手家居用品加工设备 二手服装鞋帽加工设备 二手家用电器 二手冶炼加工设备 二手办公文教用品 二手电子、电工产品 二手化工产品设备 二手纺织、皮革加工设备 二手汽配加工设备 二手玩具加工设备 二手安全、防护用品加工设备 二手电脑及用品 二手印刷设备 二手食品饮料加工设备 二手医药产品加工设备 其他未分类 二手设备转让 二手工程机械 二手办公设备 二手建材加工设备 二手纸加工设备 二手通信器材 二手交通工具 二手木工机械 二手电工电气产品 二手纺织加工设备 二手橡胶加工设备 二手制鞋设备 二手化工设备 二手电脑及配件 二手矿业设备 二手广电设备 二手皮革加工设备 二手造纸设备 二手仪器仪表 二手环保设备 二手锅炉 二手通用零部件 其它二手设备 二手医疗设备 二手包装机械 二手照明器材 二手物流设备 二手食品机械 二手制药设备 二手电动工具 二手服装加工设备 二手电子加工设备 二手农业机械 二手冶炼设备 二手机床 二手塑料机械 二手安防设备 二手体育休闲设施
- 项目合作
- 能源项目合作 家电项目合作 环保项目合作 能源项目合作 化工项目合作 环保项目合作 注塑加工合作 铸塑加工合作 压塑加工合作 吸塑加工合作 吹塑加工合作 挤塑加工合作 冶金矿产项目合作 安全防护产品项目合作 建筑项目合作 工艺礼品项目合作 办公文教用品项目合作 玩具项目合作 医药、保健项目合作 机械及工业制品项目合作 电子、电工项目合作 交通项目合作 家居用品项目合作 运动休闲用品项目合作 其他未分类 项目合作 建材项目合作 电子项目合作 食品饮料项目合作 电脑项目合作 办公、文教项目合作 医药项目合作 招标、投标 电工电气项目合作 地区、政府招商引资 其它项目合作 机械项目合作 照明器材项目合作 服装项目合作 冶金项目合作 矿业项目合作 交通工具项目合作 五金工具项目合作
- 表面处理
嵌入式操作系统任务切换方法对比分析
0
嵌入式系统在航天、军事、工控以及家电等方面得到了广泛应用。大量的嵌入式系统具有实时性的要求,但是由于体积、能耗、价格等方面的约束,其处理器速度往往比较慢,存储器容量也有限。而传统的实时操作系统难以简单地移植到嵌入式系统中,所以需要重新开发针对嵌入式系统特性的实时操作系统。任务调度策略是实时系统内核的关键部分,如何进行任务调度,使得各个任务能在其期限之内得以完成,是实时操作系统的重要研究领域。而不同的操作系统对任务调度的机制也有所不同,本文对目前比较流行的操作系统――VxWorks、μClinux、μC/OS-II、Windows CE的任务切换机制进行分析和比较。
1 操作系统介绍
1.1 VxWorks
VxWorks是美国WindRiver公司的产品,是目前嵌入式系统领域中应用很广泛、市场占有率比较高的嵌入式操作系统。VxWorks实时操作系统由400多个相对独立、短小精悍的目标模块组成,用户可根据需要选择适当的模块来裁剪和配置系统;提供基于优先级的任务调度、任务间同步与通信、中断处理、定时器和内存管理等功能,内建符合POSIX(可移植操作系统接口)规范的内存管理,以及多处理器控制程序;具有简明易懂的用户接口,在核心方面甚至可以微缩到8KB。
1.2 μC/OS-lI
μC/OS-II是在μC/OS的基础上发展起来的,是美国嵌入式系统专家Jean J.Lal3rosse用C语言编写的一个结构小巧、抢占式的多任务实时内核。μC/OS-II能管理64个任务,并提供任务调度与管理、内存管理、任务间同步与通信、时间管理和中断服务等功能,具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点。
1.3 Linux
Linux是一种自由的Unix类多用户、多任务操作系统,可运行在Intel 80386及更 次的PC、ARM、DECAlpha等多种计算机平台上,已经成为应用广泛、可靠性高、功能强大的计算机操作系统。
1.4 WindOWS CE
微软Windows CE是一个开放且多样化的32位嵌入式操作系统。其设计目的是为符合广泛的智能设备的需求,例如从企业工具(如工业控制器、通信集线器和收款机系统)到电子消费性产品(如摄影机、电话和家庭娱乐设备等),提供自动控制、视听娱乐、行动计算、终端机等各个应用领域一个稳定、实时及多任务的操作系统。
2 任 务
2.1 任务切换概述
上下文切换(context switch),其实际含义是任务切换,或者CPU寄存器切换。当多任务内核决定运行另外的任务时,它保存正在运行任务的当前状态,也就是CPU寄存器中的全部内容。这些内容被保存在任务自己的堆栈中,入栈工作完成后就把下一个将要运行的任务的当前状况从该任务的栈中重新装入CPU寄存器,并开始下一个任务的运行,这一过程就是context switch。
每个任务都是整个应用的一部分,都被赋予一定的优先级,有自己的一套CPU寄存器和栈空间,如图1所示。
2.2 任务的切换与调度
μC/OS-II是可抢占实时多任务内核,它总是运行优先级 的就绪任务,不支持时间片轮转调度法,每个任务的优先级要求不一样,且是 的。它有5种状态,如图2所示。
当一个任务在运行状态中时,如果没有关闭中断,就有可能被中断打断,去执行中断服务子程序ISR。执行完后内核要判断此时是否有更高优先级,新的任务就绪,如果有则原有的任务被抢占,实现了任务的切换。
当一个任务在运行状态中时,调用OSTimeDly()或OSTimeDlyHMSM()函数,该任务进入等待状态,一直到延时时间到,这2个函数立即强制执行任务切换,让下一个优先级 的就绪任务运行。当然,如果运行的任务需要等待某一事件的发生,可以调用一些函数(如OSFlag Pend()、OSSemPend()、OSMutexPend()、OSMboxPend()、OSQPrnd()等)挂起该任务,来实现任务的切换。
实际的任务切换是调用OS_TASK_SW()函数。OS_TASK_SW()是一个宏,是在μC/OS-II从低优先级切换到高优先级任务时须用到的。OS_TA-SK_SW()总是在任务级代码中被调用。另一个函数OSIntExit()用在中断服务子程序ISR中。当中断任务子程序使更高优先级任务进入就绪态时,OSintExit()完成任务切换功能,任务切换只是简单地将处理器的寄存器保存到将被挂起的任务的堆栈中,并且从堆栈中恢复要运行的更高优先级的任务。
μC/OS-II总是运行进入就绪态任务中优先级 的任务,确定哪个任务优先级 ,以及下面该哪个任务运行。这一工作是由调度器完成的,所以任务调度的工作就是:查找准备就绪的 优先级的任务并进行上下文切换。该工作由函数OSSched()完成。中断级的调度由OS-intExt()完成。代码如下:
在Linux系统中,任务的上下文切换和调度比较复杂。Linux的上下文切换功能是由context_switch()函数完成的。代码如下:
context_switch()完成了2个工作:
①切换虚拟内存映射,即负责把虚拟内存从被切换下来的进程映射到新进程中,该功能由函数swi_mm()实现。
②切换进程的寄存器状态,即负责从一个进程的处理器状态切换到新进程的处理器状态,该功能由函数swi_to()实现。
在多任务系统中,都会提供一个系统函数来进行进程(任务)间切换,综合来说,它们有两种进程(任务)切换方式:
①由进程(任务)本身直接调用任务切换函数进行进程(任务)切换。在当前进程(任务)因为不能获得必需的资源而立即被堵塞时,就由进程(任务)本身直接调用进程(任务)切换函数进行进程(任务)间调度。在Linux中可以直接调用schedule()函数来实现。
②延迟调用任务切换函数进行进程(任务)切换。此方式是把当前进程(任务)设置一调度标志而以延迟方式调用任务切换函数进行进程(任务)切换。在Linux系统中,总是在恢复用户态进程执行之前,检查这一调度标志,在这里标志是need_resched,如果有这一标志,就调用调度函数进行进程切换。
此种情况主要包括以下几种:
①当前进程用完了它的CPU时间片,由scheduler_tick()函数完成schedule()的延迟调用。
②当一个被唤醒进程的优先级比当前进程优先级高时,由try_to_wake_up()函数完成schedule()的延迟调用。
③当发出系统调用sched_setscheduler()时。在这些情况中,主要由于系统调用或中断而进入内核态,或者当前进程本来在内核态时,返回用户态时发生的。
在VxWorks系统中,任务的优先级为0~255。任务有4种状态:就绪态、悬置态、休眠态和延迟态,如图3所示。
内核缺省调度机制为基于优先级的抢占式调度。采用这种机制,系统把处理机分配给优先级 的进程,使之执行。一旦出现优先级更高的进程时,该任务被剥夺CPU使用权,而去执行优先级更高的任务。而在相同优先级的多个任务之间,采用时间片轮转调度机制。采用这种机制,当一个任务到达时,它被安排在轮转队列的后面,等待分配给自己的时间片的到来,如果在时间片内没有结束,则在等待属于自己的时间片的到来,直到任务完成。
在VxWorks系统中,对于优先级相同的任务,如果状态为Ready,则可以通过时间片轮转方式公平享有CPU资源。轮转调度法给处于就绪态的每个同优先级的任务分配一个相同的时间片,该时间片的大小由系统调用KernelTimeSlice决定。
在Windows CE系统中,Windows CE 3.0之后,系统支持的优先级增长到256个,0优先级级别 ,255优先级级别 。0~247的优先级属于实时性优先级,248~255的优先级一般分配给普通应用程序。Windows CE采用基于动态优先级的抢占式多任务机制,越重要的任务,优先级越高。Windows CE在任务调度中采用任务优先级制、优先级动态调整机制和抢占式调度,都是为了 大限度地满足系统的实时性要求。对于一个优先级只有一个任务的简单系统内核,上述的3种调度足以满足要求,但对于Windows CE这样复杂、高性能的多任务实时内核,由于多个任务允许公用一个优先级,则相同优先级的任务要采用Windows CE提供的时间片轮转法实现。具体实现如图4所示。
在没有更高优先级任务就绪时,相同优先级的任务依照就绪的先后次序执行。执行一定的时间片后,无论任务完成与否,均转入下一任务运行。未运行完的任务释放处理器的控制权后转入就绪队列的末尾,依次往复。这样的轮转策略保证了具有相同优先级的任务平等地享有控制权的处理权。在Windows CE系统中,一般设置的时间片大小为10 ms。
3 总结
本文对几种操作系统的内核的主要部分(任务切换与调度)进行了分析比较,便于理解其实时性、可靠性等方面的优缺点,为以后进行系统的移植和开发打下基础。由于笔者时间和精力有限,而且目前的操作系统很多,本文只分析了4种系统,还不够完善。未来可以对其他更多的实时操作系统进行分析比较。
本文链接:http://www.sjwj.com/Liter/LiterDetail_21656.html
版权声明:1.塑胶五金网转载作品均注明出处,本网未注明出处和转载的,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性,您同意将自行加以判断并承担所有风险。 2.如转载作品侵犯作者署名权,或有其他诸如版权、肖像权、知识产权等方面的伤害,并非本网故意为之,在接到相关权利人通知后将立即加以更正。联系电话:15014822798
投稿声明:可将稿件直接发至邮箱:234145668@qq.com(主题注明“投稿”),也可直接联系
电话:0769-22305675
传真:0769-23031246




粤公网安备 44190002001993号