实时操作系统的内核.ppt
《实时操作系统的内核.ppt》由会员分享,可在线阅读,更多相关《实时操作系统的内核.ppt(20页珍藏版)》请在三一办公上搜索。
1、实时操作系统的内核,在实时操作系统中最关键的部分是实时多任务内核。它主要实现任务管理、任务间通信与同步、存储器管理、定时器管理和中断管理等。1 任务管理实时操作系统中的任务与操作系统中的进程相似。它具有独立功能的无限循环的程序段的一次运行活动。运行的任务状态有4种:*运行态:获得CPU控制权。*就绪态:进入任务等待队列,通过调度转为运行态。*挂起态:任务发生阻塞,移出任务等待队列,等待系统实时事件的发生而唤醒,从而转为就绪或运行。*休眠态:任务完成或错误等原因被清除的任务,也可以认为是系统中不存在的任务。,任何时刻系统中只能有一个任务在运行状态,各任务按级别通过时间片使它获得对CPU的访问权。
2、任务就绪后进入就绪态,等待队列。通过调度程序使它获得CPU和资源使用权,从而进入运行态。任务在运行时因申请资源等原因而挂起,转入挂起态,等待运行条件的满足。当条件满足后,任务被唤醒进入就绪态,等待系统调度程序依据调度算法进行调度。任务的休眠态是任务虽然在内存中,但不被实时内核所调度的状态。任务还有一个状态,即被中断状态,它指任务在运行态时有中断请求到达,系统响应中断,转而执行中断服务子程序,任务被中断后所处的状态。多任务运行的实现是靠CPU在许多任务之间转换、调度。CPU只有一个,轮流服务于一系列任务中的某一个。多任务系统中,内核负责管理各个任务,并负责任务之间的通信。内核提供的基本服务是任务
3、切换。内核对CPU的占用时间一般在2-5之间。,任务要获得CPU的控制权,从就绪态进入运行态是通过任务调度器完成的。任务调度器从当前已就绪的所有任务中,依照任务调度算法选择一个最符合算法要求的任务进入运行状态。任务调度算法的选择很大程序上决定了该操作系统的实时性能,这也是种类繁多的实时内核却无一例外选用特定的几个实时调度算法的原因。调度是操作系统的主要职责之一,它决定该轮到哪个任务运行。往往调度是基于优先级的,根据其重要不同被给于任务不同的优先级。CPU总是让处于就绪态的优先级最高的任务先运行。何时让高优先级任务掌握CPU的使用权,要看用的是什么类型的内核,是非抢占式的还是抢占式的内核。实时操
4、作系统中常用的任务调度算法包括基于优先级的抢占式调度算法、同一优先级的时间片轮转调度算法和单调速率调度算法。,1.1 基于优先级的抢占式调度算法,实时系统为每个任务赋予一个优先级。任务优先级在一定程序上体现了任务的紧迫性和重要性,越重要的任务赋予的优先级就越高。实时系统允许多个任务共享一个优先级,通过同一优先级的时间片轮转调度算法,完成任务的调度。优先级调度原则是让高优先级的任务在得到资源运行的事件上比低优先级的任务更有优先权。这保证了实时系统中紧急的、对时间有严格限制的任务能得到更为优先的处理,而相对不紧急的任务则等到紧急任务处理完后才继续运行。实时操作系统都采用基于优先级的任务调度算法。按
5、照任务在运行过程中是否能被抢占,可以分为抢占式调度和非抢占式调度。,1.1.1 非抢占式调度,非抢占式调度法也称为合作型多任务,各个任务彼此合作共享一个CPU。中断服务可以使一个高优先级的任务由挂起状态变为就绪状态。但中断服务以后控制权还是回到原来被中断的那个任务,直到该任务主动放弃CPU的使用权,那个高优先级的任务才能获得CPU的使用权。非抢占式内核的一个特点是几乎不需要使用信号量保护共享数据。运行的任务占有CPU,而不必担心被别的任务抢占。非抢占式内核的最大缺陷在于其响应高优先级的任务慢,任务已进入就绪态但还不能运行,也许要等很长的时间,直到当前运行的任务释放CPU。内核的任务级响应时间是
6、不确定的,最高优先级的任务什么时候才能拿到CPU的控制权完全取决于应用程序什么时候释放CPU。见P27图1-6。,由于其他任务不能抢占该任务的CPU控制权,如果该任务不主动释放CPU,则势必使系统进入死锁。每个任务在设计过程必须在任务结束时释放所占用的资源,它不能是一个无限运行的循环。这是非抢占式内核运行的先决条件。优点:*响应中断快。*可使用不可重入函数。由于任务运行过程中不会被其他任务抢占,各任务使用的子函数不会被重入,所以在非抢占式调度算法中可以使用不可重入函数。*共享数据方便。任务运行过程中不被抢占,内存中的共享数据被一个任务使用时,不会出现被另一个任务使用的情况,这使得任务在使用共享
7、数据时不使用信号量等保护机制。当然,由于中断服务子程序可以中断任务的执行,所以任务与中断服务子程序的共享数据保护问题仍然是设计系统中必须考虑的问题。,1.1.2 抢占式调度,当系统响应时间很重要时,要使用抢占式内核。最高优先级的任务一旦就绪,总能得到CPU的控制权。当一个运行的任务时,另一个比它优先级高的任务进入了就绪态,当前任务的CPU使用权就被剥夺了,或者说被挂起了,高优先级的任务立即得到CPU的控制权。抢占式调度算法满足在处理器中运行的任务是已就绪任务中优先级最高的任务。任务在执行过程中允许更高的优先级任务抢占该任务对CPU的控制权。与非抢占式调度算法不同的是当任务被中断,中断服务子程序
8、运行完成后,不一定返回被中断的任务,而是执行新的任务调度,看就绪队列中是否有比被中断的任务拥有更高优先级的任务就绪。如果有,更高优先级的任务就调入并运该任务;否则,继续运行被中断的任务。如P28图1-7。,抢占式调度算法的特点是任务级响应时间得到最优化,而且是确定的,因而中断响应较快。由于任务在运行过程中可以被其他任务抢占,所以任务不应直接使用不可重入函数,只有对不可重入函数进行加锁保护才能使用。同理,对共享数据的使用也需要互斥,信号量等保护机制。绝大多数的实时内核使用基于优先级的抢占式调度算法。在实时系统中,使用基于优先级的抢占式调度算法时,要特别注意对优先级反转问题进行处理。优先级反转问题
9、体现的是高优先级的任务等待,属于被低优先级任务占有系统资源而形成的高优先级任务等待低优先级运行的反常情况。如果低优先级在运行时又被其他任务抢占,则系统运行情况会更糟。见P28实例。解决优先级反转的问题有优先级继承和优先级封顶两种方法。,(1)优先级继承,优先级继承要点如下:*设C为正占用某项共享资源的进程P以及所有正在等待占用此资源的进程的集合。*找出这个集合中的优先级最高者P_h,其优先级为P。*把进程P的优先级设置为P。见图P1-9。,(2)优先级封顶,优先级封项要点如下:*设C为所有可能竞争使用某项共享资源的进程的集合。事先为这个集合规定一个优先级上限P,使得这个集合中所有进程的优先级都
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实时 操作系统 内核
链接地址:https://www.31ppt.com/p-6113143.html