基于μC/OS-II操作系统的任务调度机制.doc_第1页
基于μC/OS-II操作系统的任务调度机制.doc_第2页
基于μC/OS-II操作系统的任务调度机制.doc_第3页
基于μC/OS-II操作系统的任务调度机制.doc_第4页
基于μC/OS-II操作系统的任务调度机制.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于操作系统的任务调度机制 论文关键词:C/OS-II;多任务;任务调度论文摘要:C/OS-II操作系统之所以在10多年的时间里作为一个嵌入式实时的多任务操作系统得到了广泛的应用,原因之一是它的任务机制存在许多的优点。多任务运行的最大难点就在于多任务的调度。WANGYu-rong,ZHUJian-bin(ComputerScienceCollegeWuhanUniversityofScienceandEngineering,Wuhan430073,China)Abstract:Asamulti-taskembeddedrealtimeoperationsystem,C/OS-IIOperatingSystemshasbeenwidelyusedinmoretenyears.OneofthereasonisthattheOperatingSystemshasmanyadvantages.Thehardestpointisthescheduloftaskswhenwerunmulti-taskOperatingSystems.Keywords:C/OS-II;Multi-task;task-scheduling1引言嵌入式系统是一种应用范围非常广泛的系统。可以这样理解,除了桌面和服务器外所有计算设备都属于嵌入式系统。在短短十多年的时间里,伴随着微技术、软件技术的发展,嵌入式系统被广泛的用于如生物仪器、智能汽车、设备、网络设备、仪器仪表、手持设备等诸多领域。1它是以应用为中心的,而嵌入式操作系统则是嵌入式系统应用中的核心。嵌入式系统是计算机硬件和软件的结合体,或许还加上等其他部分,被设计来完成专门的功能。在一些情况下,嵌入式系统是一个大的系统或产品的一部分,就象汽车上的防抱死装置,与通用计算机相对。最初的嵌入式系统是不带操作系统的,只是用来完成某一个特定的单一功能,随着软硬件技术的发展,完成单一功能的嵌入式系统已经不能适应的需要,因此出现了带操作系统的嵌入式系统。现在嵌入式系统的准确定义是:以嵌入式计算机为技术核心,面向用户、面向产品、面向应用,软硬件可剪裁的,适用于对功能、可靠性、体积、功耗等综合性能有严格要求的专用计算机系统。2C/OS-II操作系统是一个完整的,可移植、固化、裁剪的占先式实时多任务操作系统。它之所以这么受欢迎,其中一个很重要的方面是因为它的实时性和多任务管理机制。由此可见它对任务的管理是成功的。在C/OS-II操作系统中,一个任务,也称作一个线程,就是一个简单的程序,这个程序在执行时可以任务CPU完全属于该程序自己。而多任务的运行实际上并不是有多个CPU让多任务使用,而是靠CPU在多个任务间的转换和调度。2任务状态C/OS-II操作系统的任务状态有五种,分别是睡眠态、就绪态、运行态、等待状态和中断服务态。睡眠态是指程序还在存储设备中,还没有被C/OS-II操作系统管理,此时的任务只能通过任务创建函数才能脱离此状态,调用创建任务函数后,任务才能从睡眠态变成就绪态,在这个意义上来说,睡眠态就是C/OS-II操作系统的入口,而任务创建函数就是入口的钥匙。3任务被建立后,任务就进入到了就绪态,准备运行了。如果新建立任务的优先级高于就绪态中的其他任务的优先级,则新建立的任务就会立即得到CPU的使用权,会被优先执行,从而进入到运行态;而在就绪态的任务也可以通过调用任务删除函数回到睡眠态。由于任何时刻只有一个任务处于运行态,所以一旦运行态中的任务被剥夺了CPU的使用权,它就从运行态回到等待状态。也可以通过人为的控制邮箱、信号量、延迟时间等使正在运行的任务从运行态转到等待状态。如果正在运行的任务是允许中断的,此时若中断服务程序正好到来,正在运行的任务也会进入中断服务状态,而进入中断服务状态的任务只有中断任务把CPU的控制权还给中断前的任务时,才能从中断服务状态退出来。运行态的任务也是可以被删除的,如果此时调用了任务删除函数,运行态的任务也会直接回到睡眠态。一旦正在运行的任务通过将自己延迟一段时间或是由于要等待某一事件的发生而进入到了等待状态,如果延迟时间满,或是等待的某一事件发生了,任务就进入到了就绪态;或者等待状态的任务被删除了,那么它也会进入到睡眠态。由此看来,睡眠态又是C/OS-II操作系统的出口,而出口的钥匙是任务删除函数,与任务建立函数相对。3任务调度C/OS-II操作系统总是运行进入就绪态任务中优先级最高的任务。它可以管理多达64个任务,但目前的版本里已经有两个任务被系统占用。一般来说用户可以使用从优先级4到优先级OS_LOWEST_PRIO-4一共56个优先级。对于多任务的管理,C/OS-II操作系统是通过调度器完成了。其中任务级的调度是由函数OSSched()完成,而中断级的调度是通过函数OSIntExiT()完成。这两个函数是很相似的,所不同的其中一点就是OSSched()调用了任务切换函数OS_TASK_SW(),而退出中断服务子程序OSIntExiT()却调用的是OSIntCtxSw()函数。这是因为中断服务子程序已经将CPU寄存器存入到中断了的任务的堆栈中,所以只需要恢复堆栈中的内容即可。 论文关键词:C/OS-II;多任务;任务调度论文摘要:C/OS-II操作系统之所以在10多年的时间里作为一个嵌入式实时的多任务操作系统得到了广泛的应用,原因之一是它的任务机制存在许多的优点。多任务运行的最大难点就在于多任务的调度。WANGYu-rong,ZHUJian-bin(ComputerScienceCollegeWuhanUniversityofScienceandEngineering,Wuhan430073,China)Abstract:Asamulti-taskembeddedrealtimeoperationsystem,C/OS-IIOperatingSystemshasbeenwidelyusedinmoretenyears.OneofthereasonisthattheOperatingSystemshasmanyadvantages.Thehardestpointisthescheduloftaskswhenwerunmulti-taskOperatingSystems.Keywords:C/OS-II;Multi-task;task-scheduling1引言嵌入式系统是一种应用范围非常广泛的系统。可以这样理解,除了桌面和服务器外所有计算设备都属于嵌入式系统。在短短十多年的时间里,伴随着微技术、软件技术的发展,嵌入式系统被广泛的用于如生物仪器、智能汽车、设备、网络设备、仪器仪表、手持设备等诸多领域。1它是以应用为中心的,而嵌入式操作系统则是嵌入式系统应用中的核心。嵌入式系统是计算机硬件和软件的结合体,或许还加上等其他部分,被设计来完成专门的功能。在一些情况下,嵌入式系统是一个大的系统或产品的一部分,就象汽车上的防抱死装置,与通用计算机相对。最初的嵌入式系统是不带操作系统的,只是用来完成某一个特定的单一功能,随着软硬件技术的发展,完成单一功能的嵌入式系统已经不能适应的需要,因此出现了带操作系统的嵌入式系统。现在嵌入式系统的准确定义是:以嵌入式计算机为技术核心,面向用户、面向产品、面向应用,软硬件可剪裁的,适用于对功能、可靠性、体积、功耗等综合性能有严格要求的专用计算机系统。2C/OS-II操作系统是一个完整的,可移植、固化、裁剪的占先式实时多任务操作系统。它之所以这么受欢迎,其中一个很重要的方面是因为它的实时性和多任务管理机制。由此可见它对任务的管理是成功的。在C/OS-II操作系统中,一个任务,也称作一个线程,就是一个简单的程序,这个程序在执行时可以任务CPU完全属于该程序自己。而多任务的运行实际上并不是有多个CPU让多任务使用,而是靠CPU在多个任务间的转换和调度。2任务状态C/OS-II操作系统的任务状态有五种,分别是睡眠态、就绪态、运行态、等待状态和中断服务态。睡眠态是指程序还在存储设备中,还没有被C/OS-II操作系统管理,此时的任务只能通过任务创建函数才能脱离此状态,调用创建任务函数后,任务才能从睡眠态变成就绪态,在这个意义上来说,睡眠态就是C/OS-II操作系统的入口,而任务创建函数就是入口的钥匙。3任务被建立后,任务就进入到了就绪态,准备运行了。如果新建立任务的优先级高于就绪态中的其他任务的优先级,则新建立的任务就会立即得到CPU的使用权,会被优先执行,从而进入到运行态;而在就绪态的任务也可以通过调用任务删除函数回到睡眠态。由于任何时刻只有一个任务处于运行态,所以一旦运行态中的任务被剥夺了CPU的使用权,它就从运行态回到等待状态。也可以通过人为的控制邮箱、信号量、延迟时间等使正在运行的任务从运行态转到等待状态。如果正在运行的任务是允许中断的,此时若中断服务程序正好到来,正在运行的任务也会进入中断服务状态,而进入中断服务状态的任务只有中断任务把CPU的控制权还给中断前的任务时,才能从中断服务状态退出来。运行态的任务也是可以被删除的,如果此时调用了任务删除函数,运行态的任务也会直接回到睡眠态。一旦正在运行的任务通过将自己延迟一段时间或是由于要等待某一事件的发生而进入到了等待状态,如果延迟时间满,或是等待的某一事件发生了,任务就进入到了就绪态;或者等待状态的任务被删除了,那么它也会进入到睡眠态。由此看来,睡眠态又是C/OS-II操作系统的出口,而出口的钥匙是任务删除函数,与任务建立函数相对。3任务调度C/OS-II操作系统总是运行进入就绪态任务中优先级最高的任务。它可以管理多达64个任务,但目前的版本里已经有两个任务被系统占用。一般来说用户可以使用从优先级4到优先级OS_LOWEST_PRIO-4一共56个优先级。对于多任务的管理,C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论