实时系统讲课教案_第1页
实时系统讲课教案_第2页
实时系统讲课教案_第3页
实时系统讲课教案_第4页
实时系统讲课教案_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

实时系统讲课教案 实时系统前后台系统?void main(void)?init_nrf2401();?init_uart();?init_misc();?while (1)?nrf2401_send_data(nrf2401_vehicle_address1,packet,3);?delay_ms (5);?If(cmd_ready)?cmd_process();?代码临界段?代码的临界段也称为临界区,指处理时不可分割的代码。 一旦这部分代码开始执行,则不允许任何中断打入。 ?为确保临界段代码的执行,在进入临界段之前要关中断,而临界段代码执行完以后要立即开中断?对共享资源进行访问的代码通常是临界区MicroOS II中的任务?任务即是一个进程.UCOSII是多任务的可抢占操作系统.当然我们可以把一个复杂的事情分成多个简单的子任务,每个作为一个进程运行,这样可以简化复杂程序的设计.?任务=程序代码+堆栈+使用的CPU寄存器+任务控制块?任务控制块保存着所有与进程相关的信息,包括堆栈的指针和优先级?任务的堆栈则用来保存任务分配的局部变量,此外,当任务被切换出去时,堆栈还保存当前寄存器的值任务状态的转换任务切换(上下文切换)?当多任务内核决定运行另外的任务时,它保存正在运行任务的当前状态(Context),即CPU寄存器中的全部内容。 这些内容保存在任务的当前状况保存区(Tasks ContextStorage area),也就是任务自己的栈区之中.入栈工作完成以后,就是把下一个将要运行的任务的当前状况从该任务的栈中重新装入CPU的寄存器,并开始下一个任务的运行。 这个过程叫做任务切换?任务切换一定要快,否则将严重影响系统性能进程调度?操作系统内核中有一个称为调度器的模块,负责选择适合的进程(任务)运行.?一旦选出适合的进程,调度器将进行任务切换.?UCOSII基于优先级进行调度.任何时候调度器都选择就绪的最高优先级任务来运行不可抢占与可抢占内核?不可剥夺型内核:要求每个任务自我放弃CPU的所有权。 不可剥夺型调度法也称作合作型多任务,各个任务彼此合作共享一个CPU。 异步事件还是由中断服务来处理。 中断服务可以使一个高优先级的任务由挂起状态变为就绪状态。 但中断服务以后控制权还是回到原来被中断了的那个任务,直到该任务主动放弃CPU的使用权时,那个高优先级的任务才能获得CPU的使用权。 ?可抢占内核:当一个运行着的任务使一个比它优先级高的任务进入了就绪态,当前任务的CPU使用权就被剥夺了,或者说被挂起了,那个高优先级的任务立刻得到了CPU的控制权。 如果是中断服务子程序使一个高优先级的任务进入就绪态,中断完成时,中断了的任务被挂起,优先级高的那个任务开始运行。 不可抢占内核的优点?响应中断快?任务级响应时间比前后台系统快得多?可以方便的调用非可重入性函数?几乎不需要使用信号量保护共享数据不可抢占内核的缺点?不可剥夺型内核的最大缺陷在于其响应时间。 高优先级的任务已经进入就绪态,但还不能运行,要等,也许要等很长时间,直到当前运行着的任务释放CPU。 与前后系统一样,?不可剥夺型内核的任务级响应时间是不确定的,不知道什么时候最高优先级的任务才能拿到CPU的控制权,完全取决于应用程序什么时候释放CPU。 可抢占内核的优缺点?优点:系统响应时间快?缺点:实现复杂,需要专门的同步机制和互斥机制;不可调用非重入函数可重入函数?可以被一个以上的任务调用,而不必担心数据的破坏?应该尽量只使用局部变量?如果确实需要使用全局变量,则必须利用互斥机制来保护对全局变量的访问void strcpy(char*dest,char*src)while(*dest+=*src+);*dest=NUL;不可重入函数Int Temp;void swap(int*x,int*y)Temp=*x;*x=*y;*y=Temp;MicroCOS-II的进程调度算法?只提供基于优先级的调度算法?每个任务的优先级必须不同?最多支持64个任务?UCOS-II的调度算法很简单,每次选择处于就绪状态下的具有最高优先级的任务?UCOS-II的任务优先级是创建任务时指定的,操作系统本身并不去动态调整,除非调用OSTaskChangePrio函数改变优先级内核同步机制?常常碰到多个任务访问同一共享资源的问题,这个时候就必须保证相互之间的互斥性即任何时刻该资源只能被一个任务占用,且一个任务在访问该共享资源时,保证不被打断?Ucos-ii没有linux和windows nt那么复杂,它只是用在简单的微控制器系统中,不存在多处理器的问题?UCOS-II提供的基本同步机制是关中断,禁止任务切换,信号量关中断?void Function(void)?OS_ENTER_CRITICAL();?.?./*在这里处理共享数据*/?.?OS_EXIT_CRITICAL();?禁止任务切换?void Function(void)?OSSchedLock();?.?./*You canaess shareddata inhere(interrupts arerecognized)*/?./*在这里处理共享数据(中断是开着的)*/?OSSchedUnlock();?注意这种办法只能保证多个任务之间的互斥,不能保证任务与中断服务程序之间的互斥信号量(Semaphores)?什么是信号量简单说就是为了保证互斥访问一共享资源的一个计数器。 所有的任务要想访问该资源就必须先检查这个信号量,只有当信号量的值大于0才能访问资源?三个操作初始化,down,up?down-就是将信号量的计数减1,如果信号量为0则该任务block(获取信号量)?up-相反操作,释放信号量进程间通信(IPC)?UCOS-II提供两种IPC机制消息邮箱和消息队列?消息邮箱实际上就是个数据结构,里面有个成员变量是个指针,该指针指向一条消息,另外还有些成员变量表示有哪些任务正在等待接受该消息?消息队列和消息邮箱基本相同,只是它可以放入多条消息,而邮箱通常只有一条消息使用RTOS的得失?得更方便开发复杂系统(通过将复杂任务分解为简单子任务,且每个任务的开发相对独立,逻辑关系简单);提供更好的实时性,更强大的功能?失运行操作系统本身需要占用一定的RAM,操作系统代码也要占用一定程序ROM(flash);此外,运行内核也会需要一定的CPU时间讨论面向嵌入式的RTOS与通用OS的区别?如UCOS-II和FreeRTOS这类小型的RTOS和linux,solaris,windows nt这些通用OS的区别有哪些??又与uclinux,windows ce,vxworks,QNX等嵌入式操作系统有什么区别??这些区别导致了各自设计与实现的哪些不同??通用操作系统主要用在PC和小型机,大型机上,他们最关心的是整体的效率和公平性,也即最大限度的利用CPU,榨干CPU的处理能力,使得在单位时间内干尽可能的多的事情,同时对于多个任务来说要尽可能的让大家公平,平均的分配处理器时间。 另外就是用户的响应度要好。 因为这类系统的资源(内存,硬盘)均较宽裕,操作系统要实现尽可能丰富的功能网络,文件系统,各种设备,总线的支持?UCOS-II这类小型RTOS主要是用在面向控制和功能有限资源受限的微控制器系统中。 他们最关心的是按时完成任务和确定性。 同时因为资源有限,OS应该尽可能的小,此外,通常无需文件系统等复杂的功能。 ?Wince,uclinux等嵌入式操作系统通常运行在较高性能的处理器上,而且内存等资源相对也还比较大(比如16MB)。 通常需要文件系统,网络等功能。 因此他们适合用在需要完整较多计算,或者较多功能的场合,也常常需要用户交互。 提供一个基础平台?Ucos-ii则基本不需要用户交互,且几乎不需要文件系统等。 内存等资源很小(几kB)。 适合用在功能比较单一,处理器性能比较差(单片机)的场合讨论设计RTOS与设计通用OS的差别?硬件平台小型RTOS通常运行在RISC处理器上;因为RISC比CISC更容易满足确定性的要求?内核结构小型RTOS更适合采用微内核,而通用OS适合宏内核,单纯的微内核性能太差?WHY?RISC优点?指令系统小指令集小+简单的指令?指令的格式相同,执行长度与寻址方式相同?几乎所有的指令都具有相同的长度,相同的寻址方式和相同的执行时间?大量的通用寄存器,没有特殊寄存器?能够更好的发挥流水线的性能?结构简单,开发容易,速度快,成本低RISC的缺点

温馨提示

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

评论

0/150

提交评论