任务管理与调度_第1页
任务管理与调度_第2页
任务管理与调度_第3页
任务管理与调度_第4页
任务管理与调度_第5页
已阅读5页,还剩147页未读 继续免费阅读

下载本文档

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

文档简介

1、第11章管理作业和调度,主要内容,管理作业反转作业调度优先级,高优先级作业,低优先级作业,作业,作业,作业,作业/create the first task ostask increate(test task 1,(void *) 11,task demo based on ucos,void test task2 (void *)OSTimeDly(1);void test task 3(void * pdata)while(1)printf(% 4u : * * * * test task 33 * * * * n,OSOSTimeDly(1);void test task 4(void

2、* pdata)while(1)printf(% 4u 3360 test task 10n,OS time);OSTaskSuspend(10);/Suspend yourself,程序运行结果,采用多任务的优点:当任务变小时,可以更轻松地对每个任务进行编码和调试,并提供更高的质量,以确保多个应用程序由多个任务组成。例如,应用程序通过计算、从网络获取数据和刷新显示屏幕多任务处理,使应用程序问题的非常自然的解决方法任务之间的独立性更高,耦合小型化通过添加新任务,使系统功能更容易扩展。可以实时确保费翔事态的优先级。在嵌入式实时系统中,“任务”通常作为进程和线程的统称而调度的基本单位进程主要由多c

3、s设计者在60年代提出,该设计者包括:计算机上运行的程序示例;分配给处理器并可由处理器运行的实体。按序执行线程、当前状态和一组相关系统资源描述的活动单位。流程由代码、数据、堆栈和流程控制块组成。流程控制块包含操作系统控制流程所需的信息,即流程状态CPU寄存器调度信息内存管理信息I/O状态信息等初始流程,它包含以下两个方面的资源:进程是资源分配的基本单元,资源分配包括存储进程映像的虚拟地址空间、主存储、I/O设备和文件等资源。计划运行。进程是操作系统的调度实体,是调度的基本单元。随着操作系统的开发,进程包括轻量进程或线程:执行调度单元进程:资源分配单元线程是进程中相对独立的控制流,由线程上下文和

4、需要执行的程序命令组成,所有线程都可以访问相同数据的相应进程的状态和共享资源的进程。使用线程的优点:生成:从现有进程中创建新线程所需的时间比创建全新进程少。终止:终止一个线程比终止一个进程花费的时间少。切换:线程切换比进程切换花费的时间少。通信:在同一进程中,徐璐其他线程之间的通信效率大大提高。在大多数操作系统中,徐璐其他进程之间的通信需要内核的介入,并可以在同一进程内徐璐的其他线程之间直接通信。引入线程的概念后,进程和线程的使用可以分为以下模型:单进程/单线程模型(例如MS-DOS):整个系统中有一个进程,一个线程单进程/多线程模型:在单进程/多线程模型中,整个系统中有一个进程,多个线程多进

5、程/单线程模型(例如传统UNIX):多个进程/单线程模型每个进程只有一个线程多进程/多线程模型(例如,Windows NT、Solaris、Mach等)。在多进程/多线程模型中,系统中有多个进程,每个进程可以包含多个线程。大多数嵌入式实时核心是单进程/多线程模型,或简称工作模型,将整个应用程序视为未定义的进程。应用程序被拆分为多个作业的形式以进行处理。具有高实时要求、相对简单的应用程序,也有使用多个进程/多线程模型的嵌入式实时操作系统。系统包含多个进程,每个进程包含多个线程,适用于处理复杂的应用程序。第一部分,作业的定义和主要特性作业的内容作业的分类作业参数,作业的定义和主要特性,作业是具有独

6、立功能的无限循环程序段的执行活动,是实时内核调度的单元,具有以下特点:动态:工作状态会持续变更。一般分为就绪状态、运行状态和待机状态。在多任务系统中,任务的状态会根据系统的需要不断变化。并行性:系统中同时存在多个作业,这些作业宏观上同时运行。异步独立性:每个任务徐璐以不可预测的速度运行和停止。多任务、工作内容和工作主要包括:代码:可执行程序数据段:程序所需的相关数据(变量、工作空间、缓冲区等)堆栈程序在其上运行的上下文环境、作业的内容、作业的内容、作业通常是无限循环的程序、/* io task implements data obtaining and handlinginitial();/*

7、 the following sentences get data and handle data continuously */while(true)data=get data();Handledata(数据);void your task(void * pdata)for(;)/* user code */callone of UC/OS-IIS services : osflag pend();OS mbox pend();OS mut expend();osq pend();OS sempend();ostas del(OS _ prio _ self);ostasksuspend(O

8、S _ prio _ self);OSTimeDly();OSTimeDlyHMSM();/* user code */void yourcom task(void * pdata)/* user code */ost asdel(OS _ prio _ self);void test task 2(void * pdata)while(1)printf(% 4u : * * * * test task 22 * * * * * n,OSTimeDly(1);void test task 3(void * pdata)while(1)printf(% 4u : * * * * test tas

9、k 33 * * * * n,OSOSTimeDly(1);void test task 4(void * pdata)while(1)printf(% 4u 3360 test task 10n,OS time);OSTaskSuspend(10);/Suspend yourself,作业的内容,作业和程序之间的差异:作业可以真实地描述作业内容的并发性,而不是程序;程序是操作的一部分,除了程序外,还包括数据、堆栈和上下文环境。程序是静态的,操作是动态的。任务有生命周期,有诞生,有消亡,有短暂。程序比较长。程序可以响应多个任务,反之亦然。任务具有生成其他任务的功能,但在程序中不存在。任务的内容

10、、任务上下文环境(context)包含实时内核管理任务以及处理器执行任务所需的所有信息。作业优先级作业的状态等实时内核所需的信息,以及处理器的各种寄存器的内容:程序计数器、堆栈指针、公共寄存器等的内容作业的上下文环境通过作业控制块(TCB)实现。,根据多任务系统图、任务分类、可访问性可预测性,任务可以分为:周期任务非周期任务取决于重要性,任务关键任务按固定间隔运行,包括非关键任务、任务分类、周期任务和非周期任务周期任务。例如:飞机可能需要以100毫秒的间隔获取有关飞机速度、高度和姿势的数据,控制传感器需要进行周期操作才能获得这些数据。不确定非周期任务的运行时间间隔。例如,仅在需要通信的情况下运

11、行的移动通信设备的通信操作。非周期任务分为以下几个部分:sporadic task:具有最小到达间隔时间限制aperiodic task:没有到达时间限制;任务分类;任务关键型和非任务关键型:对于必须及时完成的任务,否则可能会导致灾难性后果。例如,在处理生命支持系统和稳定性控制系统的飞机上使用的工作并不重要。也就是说,如果不及时执行,则不会产生严重后果,而是会产生作业参数。作业参数:“优先级”(priority)“周期”(period)“计算时间”(computation time)“准备时间”(ready time)“截止时间”(deadline)、作业参数、作业优先级任务在飞机内处理稳定性

12、控制的任务需要优先级越高,如果满足执行条件,则必须将执行任务的优先级区分为静态优先级和动态优先级。静态优先级:确定作业的优先级后,在系统运行时不再更改。动态优先级:允许在系统运行时动态更改任务的优先级。返回、作业参数、周期作业中包含的参数,表示作业定期运行的时间间隔作业的计算时间作业在特定硬件环境下完全运行所需的时间,也称为作业的执行时间。每次运行作业时,由于软件环境的差异,作业的计算时间会因特定的运行进程而异。通常,在最坏情况下,它显示为“运行时间”(worst case time)或所需的最大运行时间,也显示为“统计时间”(statistical time)。返回、作业参数和作业的准备时间

13、作业包括具有在处理器中运行所需条件的时间。任务的期限意味着必须在那个时间到来之前完成任务。基准时间显示为“绝对基准时间”(absolute deadline)和“相对基准时间”(relative time),相对基准时间是任务的绝对基准时间减去任务的准备时间。截止时间可以分为两种情况:“强截止时间”(hard deadline)和“弱截止时间”(soft deadline)。截止时间很长的任务是关键任务,如果未满足截止时间,则会产生严重后果。具有任务关键性的实时系统有时称为强大的实时系统,否则称为弱实时系统(soft real-time)。第二部分任务管理、任务状态和更改空闲任务控制块任务切换

14、工作队列优先级位图算法任务管理机制、任务状态和更改、任务所有权资源状况不断变化,因此任务状态也表示变化的特性。操作状态的定义因实时内核实现而异,但可以概括为操作等待事件发生的三种基本状态。ready(就绪):作业正在等待获取处理器资源。执行:作业获取处理器资源,并且包含的代码内容正在执行。,在单处理器系统中更改作业状态和:在任何时候,如果只有一个作业无法在CPU上执行任何操作,则运行空闲作业null执行作业所有可执行的作业都必须选择就绪状态调度程序应在作业的就绪队列中执行的下一个作业。处于就绪状态的任务具有除CPU之外的所有必需资源。作业也可以处于等待状态。如果作业必须等待I/O设备或其他作业提供的数据,并且数据尚未到达作业,则作业将徐璐处于其他状态:作业状态更改、就绪状态、运行状态、等待状态、CPU回收、优先级高的作业抢占或超时、需要资源、更改作业状态、

温馨提示

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

评论

0/150

提交评论