实时操作系统的内核

实时操作系统的内核

ID:37596196

大小:240.41 KB

页数:20页

时间:2019-05-11

实时操作系统的内核_第1页
实时操作系统的内核_第2页
实时操作系统的内核_第3页
实时操作系统的内核_第4页
实时操作系统的内核_第5页
资源描述:

《实时操作系统的内核》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实时操作系统的内核在实时操作系统中最关键的部分是实时多任务内核。它主要实现任务管理、任务间通信与同步、存储器管理、定时器管理和中断管理等。1任务管理实时操作系统中的任务与操作系统中的进程相似。它具有独立功能的无限循环的程序段的一次运行活动。运行的任务状态有4种:*运行态:获得CPU控制权。*就绪态:进入任务等待队列,通过调度转为运行态。*挂起态:任务发生阻塞,移出任务等待队列,等待系统实时事件的发生而唤醒,从而转为就绪或运行。*休眠态:任务完成或错误等原因被清除的任务,也可以认为是系统中不存在的任

2、务。任何时刻系统中只能有一个任务在运行状态,各任务按级别通过时间片使它获得对CPU的访问权。任务就绪后进入就绪态,等待队列。通过调度程序使它获得CPU和资源使用权,从而进入运行态。任务在运行时因申请资源等原因而挂起,转入挂起态,等待运行条件的满足。当条件满足后,任务被唤醒进入就绪态,等待系统调度程序依据调度算法进行调度。任务的休眠态是任务虽然在内存中,但不被实时内核所调度的状态。任务还有一个状态,即被中断状态,它指任务在运行态时有中断请求到达,系统响应中断,转而执行中断服务子程序,任务被中断后所处

3、的状态。多任务运行的实现是靠CPU在许多任务之间转换、调度。CPU只有一个,轮流服务于一系列任务中的某一个。多任务系统中,内核负责管理各个任务,并负责任务之间的通信。内核提供的基本服务是任务切换。内核对CPU的占用时间一般在2-5%之间。任务要获得CPU的控制权,从就绪态进入运行态是通过任务调度器完成的。任务调度器从当前已就绪的所有任务中,依照任务调度算法选择一个最符合算法要求的任务进入运行状态。任务调度算法的选择很大程序上决定了该操作系统的实时性能,这也是种类繁多的实时内核却无一例外选用特定的几

4、个实时调度算法的原因。调度是操作系统的主要职责之一,它决定该轮到哪个任务运行。往往调度是基于优先级的,根据其重要不同被给于任务不同的优先级。CPU总是让处于就绪态的优先级最高的任务先运行。何时让高优先级任务掌握CPU的使用权,要看用的是什么类型的内核,是非抢占式的还是抢占式的内核。实时操作系统中常用的任务调度算法包括基于优先级的抢占式调度算法、同一优先级的时间片轮转调度算法和单调速率调度算法。1.1基于优先级的抢占式调度算法实时系统为每个任务赋予一个优先级。任务优先级在一定程序上体现了任务的紧迫性

5、和重要性,越重要的任务赋予的优先级就越高。实时系统允许多个任务共享一个优先级,通过同一优先级的时间片轮转调度算法,完成任务的调度。优先级调度原则是让高优先级的任务在得到资源运行的事件上比低优先级的任务更有优先权。这保证了实时系统中紧急的、对时间有严格限制的任务能得到更为优先的处理,而相对不紧急的任务则等到紧急任务处理完后才继续运行。实时操作系统都采用基于优先级的任务调度算法。按照任务在运行过程中是否能被抢占,可以分为抢占式调度和非抢占式调度。1.1.1非抢占式调度非抢占式调度法也称为合作型多任务,

6、各个任务彼此合作共享一个CPU。中断服务可以使一个高优先级的任务由挂起状态变为就绪状态。但中断服务以后控制权还是回到原来被中断的那个任务,直到该任务主动放弃CPU的使用权,那个高优先级的任务才能获得CPU的使用权。非抢占式内核的一个特点是几乎不需要使用信号量保护共享数据。运行的任务占有CPU,而不必担心被别的任务抢占。非抢占式内核的最大缺陷在于其响应高优先级的任务慢,任务已进入就绪态但还不能运行,也许要等很长的时间,直到当前运行的任务释放CPU。内核的任务级响应时间是不确定的,最高优先级的任务什么

7、时候才能拿到CPU的控制权完全取决于应用程序什么时候释放CPU。见P27图1-6。由于其他任务不能抢占该任务的CPU控制权,如果该任务不主动释放CPU,则势必使系统进入死锁。每个任务在设计过程必须在任务结束时释放所占用的资源,它不能是一个无限运行的循环。这是非抢占式内核运行的先决条件。优点:*响应中断快。*可使用不可重入函数。由于任务运行过程中不会被其他任务抢占,各任务使用的子函数不会被重入,所以在非抢占式调度算法中可以使用不可重入函数。*共享数据方便。任务运行过程中不被抢占,内存中的共享数据被一

8、个任务使用时,不会出现被另一个任务使用的情况,这使得任务在使用共享数据时不使用信号量等保护机制。当然,由于中断服务子程序可以中断任务的执行,所以任务与中断服务子程序的共享数据保护问题仍然是设计系统中必须考虑的问题。1.1.2抢占式调度当系统响应时间很重要时,要使用抢占式内核。最高优先级的任务一旦就绪,总能得到CPU的控制权。当一个运行的任务时,另一个比它优先级高的任务进入了就绪态,当前任务的CPU使用权就被剥夺了,或者说被挂起了,高优先级的任务立即得到CPU的控制权。抢占式调度算法

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。