嵌入式系统课件 4-embedded opration systmes(1).ppt

嵌入式系统课件 4-embedded opration systmes(1).ppt

  1. 1、本文档共68页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
任务的实现 在多道程序(多任务)的嵌入式操作系统中,任务之间的结构为层状结构,存在着父子关系; 当嵌入式内核刚刚启动时,只有一个任务存在,然后由该任务派生出所有其他的任务。 任务的层次结构 OS初始任务 任务 任务 任务 任务 任务 任务 任务 任务的描述 问题:如果让你来设计OS当中的任务 机制,那么你将如何来描述一个任务? 描述任务的数据结构:任务控制块 (Task Control Block,TCB)。 系统为每个任务都维护了一个TCB,用来保存与 该任务有关的所有信息。 任务控制块的内容 任务ID、任务的状态、任务的优先级; CPU上下文信息:通用寄存器的值、PC寄存器的值、程序状态字、栈指针的值; 如果在该OS中,任务描述的是进程,则还应包括其他的一些内容,如段表地址、页表地址等存储管理方面的信息;根目录、文件描述字等文件管理方面的信息。 任务的创建:为该任务生成一个TCB; 任务的终止:回收它的TCB; 任务的组织管理:通过对TCB的组织管理来实现。 系统用TCB来描述任务的基本情况以及运行变化的过程,TCB是任务存在的唯一标志。 任务的状态 任务的三种基本状态: 任务在生命结束前处于且仅处于三种基本状态之一 不同系统设置的任务状态数目不同。 运行状态(Running):任务占有CPU,并在CPU上运行。处于此状态的任务数目小于等于CPU的数目; 就绪状态(Ready):任务已经具备运行条件,但由于CPU忙暂时不能运行,只要分得CPU即可执行; 阻塞/等待状态(Blocked/Waiting):任务因等待某种事件的发生而暂时不能运行(如I/O操作或任务同步),此时即使CPU空闲,该任务也不能运行。 任务的状态及其转换 Running Blocked Ready 1 3 2 4 任务由于I/O操作 被阻塞; 调度器选择了另一个任务; 调度器选中该任务 任务的I/O操作完成了。 两个任务的状态转换过程 状态队列 由操作系统来维护一组队列,用来表示系统当中所有任务的当前状态; 不同的状态分别用不同的队列来表示(运行队列、就绪队列、各种类型的阻塞队列); 每个任务的TCB都根据它的状态加入到相应的队列当中,当一个任务的状态发生变化时,它的TCB从一个状态队列中脱离出来,加入到另外一个队列。 就绪队列和各种I/O队列 选择谁去运行? 任务的调度 在操作系统中,负责去做这个选择的那 部分程序,称为调度程序或调度器(scheduler); 调度程序在决策过程中所采用的算法, 称为是调度算法; 调度程序是CPU资源的管理者。 何时进行调度? 当一个新的任务被创建时,是执行新任务还是继续执行父任务? 当一个任务运行完毕时; 当一个任务由于I/O、信号量或其他的某个原因被阻塞时; 当一个I/O中断发生时,表明某个I/O操作已经完成,而等待该I/O操作的任务转入就绪状态; 在分时系统中,当一个时钟中断发生时。 两种调度方式 不可抢占(non-preemptive)调度方式:一个进程若被选中就一直运行下去,直到它被阻塞(I/O,或正在等待其他进程),或主动地交出CPU。以上的情形1-3均可发生调度; 可抢占(preemptive)调度方式:当一个进程在运行时,调度程序可以打断它。以上的情形1-5均可发生调度,另外,在其他一些情形下,如就绪队列中有新进程的优先级高于当前正运行的进程,也可能立即进行调度。 嵌入式调度算法的评价指标 响应时间(response time):调度器为一个就绪任务进行上下文切换的时间,以及任务在就绪队列中等待的时间; 周转时间(turnaround time):一个任务从提交到完成所经历的时间; 调度开销(overhead):调度算法在执行时所需要的时间和空间开销; 公平(fairness):大致相当的两个进程所得到的CPU时间也应是大致相同的,防止饥饿(starvation); 均衡:尽可能使整个系统的各部分(CPU、I/O)都忙起来,提高系统资源的使用效率; 吞吐量(Throughput):单位时间内完成的任务数。 先来先服务调度算法 先来先服务(First Come First Served,FCFS; First In First Out,FIFO):按照任务到达就绪队列的先后次序进行调度; 不可抢占方式:当前任务占用CPU,直到执行 完或被阻塞,才让出CPU给另外一个任务; 在任务被唤醒后(如I/O完成),并不立即恢复 执行,而是放在就绪队列的末尾; 优点:简单、公平,易于理解也易于实现。 现实生活中应用广泛:排队。 FCFS算法的问题 平均周转时间取决于各任务到达的顺序,若短任务位于长任务之后,将增大平均周转时间。 例如,三个任

文档评论(0)

卖报的小行家 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档